This guide shows you how to set and manage environment variables in CWSandbox instances. Use environment variables to pass non-sensitive configuration values, such as log levels or project identifiers, into your sandboxes. You can set them on individual sandboxes, share them across sandboxes in a session, or scope them to remote functions.
Don’t hardcode API keys, passwords, or other credentials in environment_variables, or print them to logs. Prefer secret references over passing raw credentials. Keep sensitive values in a secret manager, even when W&B secret injection isn’t available. This guidance applies to both serverless and CKS sandboxes.
Basic usage
To make values available to processes running inside the sandbox, pass an environment_variables dictionary to Sandbox.run:
Session-level defaults
When you need the same variables in several sandboxes, define them once on a session instead of repeating them per sandbox. Individual sandboxes can override session defaults or add their own variables:
Remote functions
Remote functions inherit environment variables from the session and can declare their own through the @session.function decorator. The SDK merges function-level variables with session defaults at call time:
Environment variables are passed by reference. Subsequent function calls reflect mutations to the dictionary after decoration, as shown in the following example.