Secrets
Secrets store sensitive values – credentials, API tokens, passwords – securely at the team level, so labs can use them without the values ever appearing in lab configuration or content.
Secrets are write-only: once saved, the value can’t be read back by anyone. Labs reference a secret by name, and the platform resolves the value at runtime.
Team Owners create and manage secrets. Content creators use them in labs.
View your team’s secrets
Section titled “View your team’s secrets”In the sidebar, click Building blocks → Secrets.
The table shows each secret’s name, when it was last modified, who modified it, and where it’s used – never the value.
Add a secret
Section titled “Add a secret”- In the sidebar, click Building blocks → Secrets.
- Click Create.
- In the Name field, enter the secret’s name. Names accept letters, numbers, and underscores (for example
MY_API_KEY). - In the Description field, describe what the secret is for. Keep it brief but clear – this is what tells content creators how to use it.
- In the Value field, enter the secret value.
- Click Save changes.
Update a secret
Section titled “Update a secret”- In the sidebar, click Building blocks → Secrets.
- Click ••• on the secret and select Update.
- Enter the new value – the value is always required when updating. To change only the description, re-enter the current value.
- Click Save changes.
Delete a secret
Section titled “Delete a secret”- In the sidebar, click Building blocks → Secrets.
- Click ••• on the secret and select Delete.
- Click Confirm.
Use a secret in a lab
Section titled “Use a secret in a lab”A lab references a secret by name through a secret resource. In the lab editor, open the Dynamic values tab, add a Secret, give it an internal name, and pick the team secret from the list. The lab stores a reference to the secret, not its value.
In lab configuration, the same looks like this:
resource "secret" "api_key" { reference = "MY_API_KEY"}
resource "container" "app" { image { name = "myapp:latest" }
environment = { API_KEY = resource.secret.api_key.value }}For all fields and more examples – injecting secrets into containers, exec scripts, and private registry credentials – see the Secret resource reference and Dynamic values.
