peace 0.0.15

zero stress automation
Documentation
# Scopes

The scope of a command determines:

* If it has access to zero, one, or many `Profile` directories.
* If it has access to zero, one, or many `Flow` directories.
* Whether it can deserialize profile params.
* Whether it can deserialize flow params.
* Whether it can deserialize states from each flow directory.

**Scenario:** `envman` is an example tool that manages server environments.

In the following directory structure:

* `internal_dev_a`, `customer_a_dev`, `customer_a_prod` are all separate **Profile**s.
* `deploy`, `config`, and `benchmark` are separate **Flow**s.
* Each flow tracks its own `flow_params.yaml`, `states_goal.yaml`, and `states_current.yaml`

```bash
# peace app dir
path/to/repo/.peace/envman
|- 📝 workspace_params.yaml
|
|- 🌏 internal_dev_a
|   |- 📝 profile_params.yaml
|   |
|   |- 🌊 deploy
|   |   |- 📝 flow_params.yaml
|   |   |- 📋 states_goal.yaml
|   |   |- 📋 states_current.yaml
|   |
|   |- 🌊 config
|   |- 🌊 benchmark
|
|- 🌏 customer_a_dev
|   |- 📝 profile_params.yaml
|   |
|   |- 🌊 deploy - ..
|   |- 🌊 config - ..
|
|- 🌏 customer_a_prod
    |- 📝 profile_params.yaml
    |
    |- 🌊 deploy - ..
    |- 🌊 config - ..
```

See each page for details of each scope:

* **[No Profile No Flow]\:** Commands that only work with workspace parameters.
* **[Single Profile No Flow]\:** Commands that work with a single profile, without any items.
* **[Single Profile Single Flow]\:** Commands that work with one profile and one flow.
* **[Multi Profile No Flow]\:** Commands that work with multiple profiles, without any items.
* **[Multi Profile Single Flow]\:** Commands that work with multiple profiles, and a single flow.

[No Profile No Flow]: scopes/no_profile_no_flow.md
[Single Profile No Flow]: scopes/single_profile_no_flow.md
[Single Profile Single Flow]: scopes/single_profile_single_flow.md
[Multi Profile No Flow]: scopes/multi_profile_no_flow.md
[Multi Profile Single Flow]: scopes/multi_profile_single_flow.md