Skip to main content
Secret files are arbitrary, project-relative files — a .env, a service-account JSON, a TLS certificate — stored encrypted and written into your workspace when a task starts. Use them when a tool expects an actual file on disk rather than a value in the environment.

Secret Files vs Environment Variables

These are two separate features. Pick by where your tooling expects the value:

How It Works

Each secret file is stored encrypted at rest against your project. When a task starts, the file is decrypted and written into the project working directory (PROJECT_CWD) inside the workspace VM with owner-only permissions (0600). Paths are project-relative. A path must not be absolute and must not contain ... Nested paths are allowed — config/service-account.json lands at config/service-account.json under the project root.
Listing secret files shows paths and update times only — never the decrypted contents.

Uploading a File

The aether secret command manages secret files (aliases: secrets, secret-file, secret-files).
The first argument is the path the file will have inside the workspace; --from is the local file to read. You can also pipe content on stdin, in which case the local file is not needed:
If you omit both --from and stdin, the CLI reads the local file at the same path as the argument.

Listing Files

Reading a File

Prints the decrypted contents to stdout.

Deleting a File

Pass --force to skip the confirmation prompt.

Bulk Upload

Upload every file in a local directory as secret files in one call:
Files keep their paths relative to the directory you point at. Add --prefix to nest them under a path inside the workspace:

API Endpoints

Secret files are also available through the REST API. See the API reference for request and response shapes: