The Backend Management API lets you list, inspect, test, rotate credentials on, and disconnect storage backends registered with the Hoody Files system. Use these endpoints to audit connections, verify reachability, rotate passwords and tokens without a full reconnect, and tear down backends you no longer need.
Note
Identity fields such as host, user, port, and backend type cannot be changed with an update. To change those, disconnect the backend and reconnect it with the new values.
Returns all backends currently registered with the system, including their connection state and active mount paths.
This endpoint takes no parameters.
curl -X GET https://api.hoody.com/api/v1/backends \
-H " Authorization: Bearer <token> "
const result = await client . files . backends . list ();
"id" : " a1b2c3d4e5f67890 " ,
"mount_paths" : [ " /mnt/storage/ssh-a1b2 " ],
"created_at" : " 2024-01-15T10:30:00Z "
"id" : " b2c3d4e5f6789012 " ,
"created_at" : " 2024-02-01T14:22:18Z "
Field Type Description backendsarray List of backend objects backends[].idstring Unique backend identifier (16-char hex) backends[].backend_typestring Backend type (e.g., ssh, s3, mega, drive) backends[].serverstring Server identifier (e.g., ssh:generic, s3:generic) backends[].userstring Username used for connection (if applicable) backends[].connectedboolean Whether the backend is currently connected backends[].mount_pathsarray Filesystem paths where this backend is mounted (empty if not mounted) backends[].created_atstring ISO 8601 timestamp when the backend was connected countinteger Number of backends returned
Returns detailed information about a single backend, including the last-used timestamp when available.
Name In Type Required Description idpath string Yes Backend ID (16-character hex string)
curl -X GET https://api.hoody.com/api/v1/backends/a1b2c3d4e5f67890 \
-H " Authorization: Bearer <token> "
const result = await client . files . backends . getDetails ( " a1b2c3d4e5f67890 " );
"id" : " a1b2c3d4e5f67890 " ,
"mount_paths" : [ " /mnt/storage/ssh-a1b2 " ],
"created_at" : " 2024-01-15T10:30:00Z " ,
"last_used" : " 2024-03-22T09:14:51Z "
Field Type Description idstring Unique backend identifier (16-char hex) backend_typestring Backend type (e.g., ssh, s3, mega, drive) serverstring Server identifier (e.g., ssh:generic, s3:generic) userstring Username used for connection (if applicable) connectedboolean Whether the backend is currently connected mount_pathsarray Filesystem paths where this backend is mounted (empty if not mounted) created_atstring ISO 8601 timestamp when the backend was connected last_usedstring Last usage timestamp (if available)
Verifies that a backend connection is still working by probing the remote.
Name In Type Required Description idpath string Yes Backend ID (16-character hex string)
curl -X GET https://api.hoody.com/api/v1/backends/a1b2c3d4e5f67890/test \
-H " Authorization: Bearer <token> "
const result = await client . files . backends . testConnection ( " a1b2c3d4e5f67890 " );
"message" : " Connection successful "
Field Type Description successboolean Whether the connection probe succeeded messagestring Human-readable result of the test
Rotates credentials on an existing backend. Use this to update passwords, OAuth tokens, S3 keys, passphrases, and similar secrets without tearing down the connection.
Note
Some backends (e.g., S3 with strict IAM policies) may reject the credential probe even with valid credentials if root listing is disallowed. In that case, use testBackendConnection or disconnect and reconnect.
Name In Type Required Description idpath string Yes Backend ID (16-character hex string)
The body is a JSON object containing the credential fields to update. Values must be strings, or null to delete a field. Common keys include pass, password, key, passphrase, 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. No-op rotations (sending the same value already stored) succeed without contacting the remote.
"pass" : " new-strong-password "
curl -X PUT https://api.hoody.com/api/v1/backends/a1b2c3d4e5f67890 \
-H " Authorization: Bearer <token> " \
-H " Content-Type: application/json " \
"pass": "new-strong-password"
const result = await client . files . backends . update ( " a1b2c3d4e5f67890 " , {
pass: " new-strong-password "
"message" : " Backend credentials updated "
Field Type Description successboolean Whether the update succeeded (also true when no changes were detected) messagestring Human-readable result
"error" : " Invalid request: only credential fields are allowed "
"error" : " Backend not found "
"error" : " Backend has active mounts; unmount first "
"error" : " Request body exceeds 16 KB limit "
"error" : " Internal server error "
"error" : " Credential validation failed against the remote backend "
Removes a backend connection from the registry. After this call, the backend will no longer appear in listBackends and its stored credentials are deleted.
Name In Type Required Description idpath string Yes Backend ID (16-character hex string)
curl -X DELETE https://api.hoody.com/api/v1/backends/a1b2c3d4e5f67890 \
-H " Authorization: Bearer <token> "
const result = await client . files . backends . disconnect ( " a1b2c3d4e5f67890 " );
"message" : " Backend disconnected "
Field Type Description successboolean Whether the disconnect succeeded messagestring Human-readable result