The LucidLink portal supports management, self-service and automation via Restful APIs. This allows service providers to integrate LucidLink into existing offerings where file storage may be required. 

By provisioning object storage via Lucidlink as a file system as a service offering, service providers are able to provide better functionality at a fraction of the cost of traditional file storage offerings.

The management and provisioning of Filespaces can be automated via the LucidLink Service API and client connectivity to a Filespace can be automated via the LucidLink Client CLI.


Creating an Account and Requesting API Access

To become a LucidLink Service provider sign up for an account. To enable API access to your account please contact support to request an Oauth2 API key.

The LucidLink Service API uses Swagger and is fully documented. As customers come on board you can automatically create new filespaces and report on usage for billing purposes. Once provisioned via the LucidLink Service API, you can use the LucidLink Client, which is downloaded and installed on your system, to manage your Filespace.



An example on how to create a Filespace using the Service API and a brief summary of the Client CLI follow below.


Using the LucidLink Service API

Once you have your API key you can use this to authenticate to https://auth.lucidlink.com/oauth2. To generate a new access_token based on your API key you'll need the following parameters:

Access token url: https://auth.lucidlink.com/oauth2/token
Client id: <...>
Client secret: <...>
Grant type: Client Credentials

You will need your domain_id to continue. To do this GET https://api.lucidlink.com/v1/domains, remembering to add the access_token we generated in the previous step to the header of your HTTP request.

You can then POST to https://api.lucidlink.com/v1/filespaces to create a new Filespace. The body of your request (application/json) will look something like this, where the domain matches the one you created when initially creating your LucidLink account. The Filespace name must be unique and region information must be valid. Endpoint information is optional for some public cloud providers. Buckets can be created by LucidLink upon provisioning so this is always optional.

{  
  "domain": "string",
  "name": "string",
  "storage": {
    "customer": "string",
    "provider": "AWS",
    "region": "string",
    "endpoint": "string",
    "bucket": "string"
  }
}

If done correctly you should get a 201 HTTP status code in return with a body that looks like this:

{ "domain":"string", "name":"string", "status":"provisioning", "storage": { "owner":"customer", "provider":"AWS", "region":"region"}, "id":"string" }


Using the LucidLink Client CLI

Once your Filespace is provisioned, and the LucidLink Client is installed on your system you can manage it via the command line. This allows for bulk management, scripting and integration with existing solutions.

First you need to initialize your filespace.

lucid init-s3 --fs <filespace_name.domain_name> --password <root_filespace_password> --https --endpoint <ipaddress_or_url:port> --access-key <s3_access_key> --secret-key <secret_key> --region <region> --block-size <KiB> --provider <vendor>` and connect to it by running `lucid link --fs <filespace> --user root --password <password>

After this you can provision users with lucid user --create <username> --password <root_password>, create snapshots with lucid snapshot --create <snapshotname> --password <root_password> for backup purposes, as well as change the filespace cache size with lucid cache --off and lucid cache --on --size <MiB> and mount point location on your local system with lucid unmount and lucid mount.