Skip to main content
Real apps need credentials and durable storage. Capsule separates those into three primitives:
  • integrations for credentials that belong to the app user
  • secrets for credentials that belong to the workspace or app operator
  • filesystems for mounted durable files

1. Create workspace resources

Secrets and filesystems are workspace resources. The app opts into them in code.

2. Inject secrets and mount filesystems

Inside the runtime, /data behaves like a normal mounted directory.

3. Declare user integrations

Use integrations when the credential belongs to the signed-in app user.
Known secret-form integrations can be declared directly:

4. Prompt at runtime

Use show_integration(...) instead when the connection is optional and you only want to render a non-blocking card.

5. Save files

Use collections for queryable records and filesystems for durable files, generated artifacts, uploads, and large intermediate outputs.

Next steps