# Values Per Environment

Each flag can have a different value in each environment. This lets you enable a feature in development while keeping it off in production, or serve different configurations to different stages.

## How It Works

When you create a flag, it starts with a default value in every environment. You then customize the value per environment as needed.

For example, a boolean flag called `new-checkout` might be configured as:

| Environment | Value   | Notes                    |
| ----------- | ------- | ------------------------ |
| Development | `true`  | Always on for developers |
| Staging     | `true`  | Enabled for QA testing   |
| Production  | `false` | Not yet released         |

## Setting a Value

1. Open the flag detail page.
2. You will see a row for each environment.
3. Click the value for the environment you want to change.
4. Enter the new value and click **Save**.

For flags with targeting rules, the value you set here is the **default value** -- it applies to any user who does not match a targeting rule.

## Enabling and Disabling Per Environment

Each environment has an independent toggle:

* **Enabled**: The flag is evaluated according to its rules and values.
* **Disabled**: All users receive the flag's off/default value, regardless of targeting rules.

This gives you a quick kill switch for any environment without modifying targeting rules.

## Approval Workflows

If an environment has **Require approval** enabled:

1. When you change a flag value, the change enters a **Pending** state.
2. An authorized approver reviews and approves (or rejects) the change.
3. The new value takes effect only after approval.

This is recommended for production environments to prevent accidental changes.

## Best Practices

* Keep development environments permissive so teams can test new features quickly.
* Use staging to validate flag behavior before promoting changes to production.
* Enable approval requirements on production to add a safety net.
* Review and clean up flags that have the same value across all environments -- they may be ready to remove.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://accessiq.gitbook.io/accessiq-docs/feature-entitlements/values-per-environment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
