# Review Environments

Review environments are a crucial component in the CI/CD workflow of flxbl projects. They provide isolated, ephemeral environments (either scratch orgs or sandboxes) for validating deployments, running tests, and performing acceptance testing during the pull request process.

### Key Benefits

1. **Isolation**: Each pull request gets its own environment, preventing conflicts between different features or bug fixes.
2. **Reproducibility**: Environments are created from consistent pool configurations, ensuring predictable testing conditions.
3. **Early Validation**: Catch deployment issues early in the development process.
4. **Automated Testing**: Run tests against review environments to verify changes and prevent regressions.
5. **Collaboration**: Provide a shared space for team members to perform acceptance testing and provide feedback.
6. **Compliance**: Enforce governance policies and organizational standards before merging changes.

### How It Works

1. **Environment Pools**: Review environments are managed in pools, which can be either sandbox or scratch org pools.
2. **Fetching**: When a pull request is opened or updated, a review environment is fetched from the appropriate pool. If an environment is already assigned to the issue, it may be reused if its lease hasn't expired.
3. **Usage**: The environment is populated with the pull request changes and used for automated checks, manual testing, and review processes.
4. **Leasing**: Environments are leased for specific durations to manage resource usage efficiently. While an environment is valid for 24 hours, it can be leased for shorter periods for specific processes.
5. **Status Management**: Throughout its lifecycle, an environment's status can be transitioned between 'InUse', 'Available', and 'Expired' to reflect its current state and availability.
6. **Extension**: If needed, an environment's overall validity can be extended beyond the initial 24-hour period.
7. **Unassignment**: When no longer needed, environments are unassigned from issues and either returned to the pool or marked for deletion.

This lifecycle is managed through a set of `sfp reviewenv` commands, which automate the process of fetching, checking, transitioning, extending, and unassigning review environments.


---

# 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://docs.flxbl.io/flxbl/sfp/environment-management/overview.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.
