divergent/docs

This guide shows how to give runs a credential, such as a Hugging Face or Weights & Biases token.

1. Store the secret

Pipe the value in on stdin, or read it from a variable of the same name in your shell:

printf %s "$HF_TOKEN" | div secrets set HF_TOKEN
div secrets set WANDB_API_KEY --from-env

div secrets set does not accept the value as an argument, because shell history would keep it.

A new secret goes in the default environment and is available to runs and sandboxes. To keep it from sandboxes, pass --products runs:

div secrets set WANDB_API_KEY --from-env --products runs

2. Read it in the run

Every run in the org gets, as environment variables, every secret in the default environment whose products include runs:

import os

token = os.environ["HF_TOKEN"]

The run’s log lists the secrets it received. If the run prints a secret’s value, the log shows •••• in its place.

Do not use --env for credentials

--env values are saved with the run and shown in the dashboard. Use --env for settings, and secrets for credentials. If both set the same name, --env wins.

Rotate or remove a secret

Setting an existing name replaces the value and keeps its products. div secrets rm HF_TOKEN deletes it. Runs that have already started keep the value they received.

Secrets in other environments

Runs read only the default environment. Secrets you set with --environment reach only sandboxes created in that environment. See Keep each customer’s credentials in its own environment.

esc