Vaults and vault access

Vaults connect storage to handlers and can be managed by multiple principals. All routes on this page require a consumer token and use vault membership for authorization.

Routes

Route Required fields Optional fields and behavior
ANY /v1/vault/search id limits results to one accessible vault.
ANY /v1/vault/view handler id updates; omit it to create. action: "refresh" returns a record without saving.
ANY /v1/vault/delete id action: "refresh" reports whether deletion is possible.
ANY /v1/vault/handler/search vault restricts options to a vault; standard pagination fields.
ANY /v1/vault/manage/add vault, principal, role
ANY /v1/vault/manage/remove vault, principal
ANY /v1/vault/manage/search vault role and standard pagination fields.
ANY /v1/vault/manage/update vault, principal, role
ANY /v1/vault/manage/view vault, principal
ANY /v1/vault/bucket/add vault, bucket, role role must be member.
ANY /v1/vault/bucket/remove vault, bucket
ANY /v1/vault/bucket/search vault Standard pagination fields.
ANY /v1/vault/bucket/update vault, bucket, role role must be member.
ANY /v1/vault/bucket/view vault, bucket

Create or update a vault

/v1/vault/view creates a vault without id and updates one with id. New vaults create a membership group with the caller as owner. Updating requires owner or admin membership. A handler is always required; a new vault may use a private handler only when called by a root principal.

Field Required Type Description
id No UUID Existing vault ID for update or refresh.
handler Save UUID Handler selected for the vault. It must be an allowed option for an existing vault.
host Save value String Vault host value to store.
name Save value String Vault name to store.
config Save value JSON object or JSON object string Vault configuration. Native JSON objects are accepted.
meta Save value JSON object or JSON object string Vault metadata. Native JSON objects are accepted.
priority Save value Number Vault priority.
expires No String Accepted by the request path but not persisted by the current save operation; do not rely on it changing the vault.
action No String refresh returns a template or existing record and skips saving.
curl -sS https://api.bigfs.m7.org/v1/vault/view \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "name":"primary-vault",
    "host":"vault.example.invalid",
    "handler":"HANDLER_UUID",
    "config":{},
    "meta":{},
    "priority":10
  }'

The response data contains record with the saved vault and log. Vault records contain id, name, host, config, meta, handler, priority, created, modified, and expires; config and meta are returned as JSON objects.

/v1/vault/search returns only vaults for which the caller has membership. When id is supplied, it is returned only if accessible.

Delete a vault

Only a vault owner or admin may delete a vault. Send action: "refresh" to check the number of associated remote assets. Deletion is rejected while remote assets remain; a successful delete removes the vault's access relationships.

Field Required Type Description
id Yes UUID Vault to inspect or delete.
action No String refresh reports deletion status instead of deleting.

Find available handlers

/v1/vault/handler/search returns public handler options. Supplying vault requires owner or admin access and returns the options available to that vault, including its assignments. The paged items entries include source, handler_assignment when assigned, and a handler summary with id and name.

Field Required Type Description
vault No UUID Vault whose available handler options to list.
limit, cursor, offset, page_number No Pagination fields See pagination.

Manage vault principals

Vault-management records use only the exact roles owner and admin.

Route Caller requirement Result
/v1/vault/manage/add Vault owner Adds an active principal.
/v1/vault/manage/remove Vault owner Removes a management entry.
/v1/vault/manage/search Vault owner or admin Returns management entries.
/v1/vault/manage/update Vault owner Changes the role.
/v1/vault/manage/view Named principal, vault owner, or vault admin Returns one entry.

The final owner cannot be removed or demoted.

Field Required Type Description
vault Yes UUID Vault ID.
principal Add, remove, update, view UUID Principal ID.
role Add and update Enum owner or admin; filters search when supplied.
limit, cursor, offset, page_number No Pagination fields Accepted only by search.

add, update, and view return data.management (id, principal, role, timestamps) and a data.principal summary.

Link buckets to a vault

Vault bucket routes manage the buckets linked to a vault. Vault owner or admin access is required. The only accepted role is member; it must be supplied for add and update.

Field Required Type Description
vault Yes UUID Vault ID.
bucket Add, remove, update, view UUID Bucket to link.
role Add and update Literal Must be member.
limit, cursor, offset, page_number No Pagination fields Accepted only by search.

The data for add, update, and view contains bucket_access (id, bucket, role, timestamps) and a bucket summary with id and name.