Skip to content
Hoody.com

Use these endpoints to list, inspect, test, update, and disconnect storage backends connected to a container’s files service. A backend represents a remote filesystem or object store (such as SSH, S3, MEGA, or Google Drive) that has been provisioned for the container. These operations cover the full lifecycle after a backend has been connected: viewing all backends, retrieving details, verifying connectivity, rotating credentials, and removing the connection.

Returns every backend currently registered with the files service, along with its mount paths. connected is always true for a registered backend; to check that the remote answers, use the test endpoint.

This endpoint takes no parameters.

Terminal window
curl -X GET "https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends" \
-H "Authorization: Bearer <token>"

Returns detailed metadata for a single backend, including its type, server, user, and mount paths.

NameInTypeRequiredDescription
idpathstringYesUnique backend identifier (16-character hex)
Terminal window
curl -X GET "https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/a1b2c3d4e5f60718" \
-H "Authorization: Bearer <token>"

Verifies that a backend connection is working. The service connects (or reuses the open connection) and reports whether the remote responds.

NameInTypeRequiredDescription
idpathstringYesUnique backend identifier (16-character hex)
Terminal window
curl -X GET "https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/a1b2c3d4e5f60718/test" \
-H "Authorization: Bearer <token>"

Rotates credentials (passwords, tokens, OAuth refresh tokens, S3 keys, passphrases) for an existing backend connection. Identity fields (host, user, port, type) cannot be changed through this endpoint; disconnect and reconnect to alter those. The backend must have no active or in-progress mounts; unmount first. No-op rotations that supply the same values as currently stored succeed without contacting the remote.

NameInTypeRequiredDescription
idpathstringYesBackend ID (16-character hex string)

The body is a free-form object of credential fields. Allowed keys include pass, password, key, key_pem, passphrase, key_file_pass, token, refresh_token, auth_token, bearer_token, session_token, secret, secret_key, secret_access_key, access_key_id, client_secret, client_id, service_account_credentials, and private_key. Values must be strings or null; passing null deletes the field. On sftp, key, passphrase and password are other names for key_pem, key_file_pass and pass; a null under the other name removes nothing, so send key_pem: null to remove a key. The request body must not exceed 16 KB.

Terminal window
curl -X PUT "https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/a1b2c3d4e5f60718" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"password":"new-rotated-secret"}'

Removes a backend connection. The uploads query parameter controls what happens to any data that was written through the backend’s mounts and has not been uploaded yet: keep (the default) continues uploading, while discard deletes the pending uploads immediately.

The mounts of the backend are removed first. There is no wait mode on this endpoint; to wait for uploads to finish, remove the mounts with uploads=wait first, then delete the backend.

NameInTypeRequiredDescription
idpathstringYesUnique backend identifier (16-character hex)
uploadsquerystringNoWhat becomes of what was written on the backend’s mounts and is not uploaded yet: keep uploading it (keep) or delete it (discard). Default: keep
Terminal window
curl -X DELETE "https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/a1b2c3d4e5f60718" \
-H "Authorization: Bearer <token>"