fatima

Environments and providers

How Fatima chooses an environment and loads variables from provider chains.

A Fatima environment is a named configuration context such as development, staging, or production. Each environment has its own provider chain under providers.

Provider chains

A provider chain is an ordered list. Each provider returns variables. Fatima merges them into the current environment map, so later providers can override earlier values.

{
  "providers": {
    "development": [
      { "provider": "file", "file": ".env" },
      { "provider": "file", "file": ".env.local" }
    ]
  }
}

In this example, values from .env.local override values with the same key from .env.

Loaded environment result

The runtime returns two maps:

MapMeaning
envThe complete environment after merging process variables and provider output.
loadedEnv / loaded_envOnly the variables loaded from configured providers.

Commands such as fatima run pass the complete env map to the child process. Commands such as fatima secrets print the provider-loaded values.

Built-in providers

ProviderAliasesPurpose
filelocalLoad dotenv-style files.
process-envnoneLoad the current process environment from the host.
envnoneReturn the current merged map.
fatimafatima-vaultLoad from the local Fatima Vault using a user key.
infisicalnoneLoad secrets through the Infisical HTTP API.
vercelnonePull variables through the Vercel CLI.

Provider-specific options are documented in the Integrations chapter.

Missing provider chain

If the active environment has no provider chain, Fatima returns the current process environment and reports zero providers used. This is useful for deployments where the platform already injects variables.

Process-only mode

The CLI command fatima run --process-env skips configured providers and uses only the current process environment. Use it when you want Fatima to preserve command behavior but avoid file, network, or Vault loading.