# Environment Variables


## Environment variables

You can add environment variables to your manifest files, either globally or per environment. For example:

```yaml
environment_variables:
  SOME_VARIABLE: value
  ANOTHER_ONE: another_value
  THIRD_ONE: AUTO_GENERATE
  LONG_ONE: AUTO_GENERATE_15

```

If you need to auto generate a value, you can use the `AUTO_GENERATE` keyword. It generates a 10 character long random string unless you specify the length after it: `AUTO_GENERATE_15` which generates a 15 character random string.

Environment variables set in your manifest file will only apply during the initial build of your application. Please refer to our documentation on [environment variables](/:product/:version?/build-and-config/env-vars) if you'd like to set them beyond this point.

Any environment variable that is generated by the result of the code analysis (like database addresses) will override any value specified in the manifest file. In other words, you cannot specify a value like `MYSQL_ADDRESS` in your manifest file as it will be ignored.

## Per-environment variables

You can also specify environment variables for specific environments:

```yaml
production:
  environment_variables:
    SOME_VARIABLE: production_value
    API_ENDPOINT: https://api.production.example.com

staging:
  environment_variables:
    SOME_VARIABLE: staging_value
    API_ENDPOINT: https://api.staging.example.com
```

## Important Notes

- Environment variables in the manifest only apply during the **initial build**
- System-generated variables (like `MYSQL_ADDRESS`) cannot be overridden
- Use `AUTO_GENERATE` for secure random values
- For runtime environment variable management, use the Cloud 66 Dashboard or Toolbelt