RaseefDocs
Configure

Variables

Environment variables, encrypted secrets and references between services.

Add variables

Open a service's Variables:

  • + New variable adds one.
  • Raw editor edits all of them as text, one NAME=value per line. Paste a .env file to add many at once: export, quotes and comments are understood, and when a name appears twice the last value is used. Saving applies the text as it is: a line you removed deletes that variable.
  • For a service built from GitHub, Suggested from the repository lists the variables declared in files such as .env.example, .env.sample or .env.template. Nothing is added until you import it.

Variables apply on the next deployment. Saving them does not restart the running version.

Rules

NameCapital letters, digits and _, starting with a letter, up to 64 characters: ^[A-Z][A-Z0-9_]{0,63}$
Reserved prefixesRASEEF_, SAUDI_, KUBERNETES_, DB_RUNTIME_
Variables per service256
One value4,096 bytes
All variables of a service32 KiB, names included

Secrets

Every value is encrypted at rest (AES-256-GCM). People who can edit a service can show its values with Show values; each time is recorded in the audit log. Viewers cannot.

Values of variables are masked in your app's logs when they are at least 4 characters long and are not a common word like true or production; so are values after Bearer and after password=, token=, secret= or authorization=. In build logs, values of 8 characters or more are masked, except values made only of letters. Masking is a safety net: do not print secrets in your logs.

Variables Raseef sets

For services built from GitHub, Raseef sets:

VariableValue
PORTThe service's port (8080 by default).
HOME/tmp

If you set PORT yourself, your value wins. Image services do not get PORT.

Reference another service

A value can use another service's variable:

DATABASE_URL=${{ db.DATABASE_URL }}
API_URL=https://${{ api.RASEEF_PRIVATE_DOMAIN }}:${{ api.RASEEF_PRIVATE_PORT }}

The form is ${{ service.VARIABLE }}, where service is the other service's name. The reference is kept by the service's identity, not its name, so renaming a service does not break it.

What you can reference:

  • any plain variable of another service;
  • RASEEF_PRIVATE_DOMAIN and RASEEF_PRIVATE_PORT of a service with a private port: its address and port on the private network;
  • the connection variables of templates, like DATABASE_URL, REDIS_URL or MONGO_URL.

Rules:

  • Only services in the same environment, and never the service itself.
  • One level only: a variable that other services reference must be a plain value, not a reference.
  • Up to 256 references per service.

When references are resolved

A reference is resolved when your service deploys, from the last deployed version of the other service. If that service has not been deployed yet, the deploy says so. RASEEF_PRIVATE_DOMAIN and RASEEF_PRIVATE_PORT are available as soon as the other service has its port set.

The resolved values are kept with the deployment: rolling back uses the values it had, and a restart keeps the current ones. When a referenced value changes, your service is not redeployed; the console shows which sources changed, and you deploy when ready.

On this page