# jackin-config (https://jackin.tailrocks.com/reference/crates/jackin-config/)



{/* GENERATED from crates/jackin-config/README.md — edit the README, not this file */}

Configuration schema, validation, migration, and workspace resolution for jackin❯. Owns the shape of `config.toml` / per-workspace config and turns it into resolved, validated structures the rest of the system consumes.

Merges the former `config/` and `workspace/` concerns into one crate to dissolve the config↔workspace mutual cycle that previously blocked clean crate extraction.

## What this crate owns [#what-this-crate-owns]

* The config and workspace schema (`schema`, `app_config`, `mounts`), sensitive-value handling (`sensitive`), and auth model (`auth`).
* Resolution (`resolve`, `planner`) and persistence (`persist`, `paths`) of operator + workspace configuration.
* Versioned migrations (`migrations`, `versions`) and validation (`validation`).
* `test_support` builders for deterministic config fixtures.

## Architecture tier and allowed dependencies [#architecture-tier-and-allowed-dependencies]

**L0 domain (schema).** Allowed workspace dependencies: `jackin-core`. No presentation, no infrastructure adapters, no observability — those live above.

## Structure [#structure]

| Module                                                                                                                                                                | Owns                          | Tests                                                                               |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ----------------------------------------------------------------------------------- |
| <RepoFile path="crates/jackin-config/src/lib.rs">`lib.rs`</RepoFile>                                                                                                  | crate root, re-exports        | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/schema.rs">`schema.rs`</RepoFile>                                                                                            | config + workspace schema     | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/app_config.rs">`app_config.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/app_config.rs">`app_config/`</RepoFile> | app-config model              | <RepoFile path="crates/jackin-config/src/app_config/tests.rs">`tests.rs`</RepoFile> |
| <RepoFile path="crates/jackin-config/src/mounts.rs">`mounts.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/mounts.rs">`mounts/`</RepoFile>                 | mounts schema                 | <RepoFile path="crates/jackin-config/src/mounts/tests.rs">`tests.rs`</RepoFile>     |
| <RepoFile path="crates/jackin-config/src/auth.rs">`auth.rs`</RepoFile>                                                                                                | auth model                    | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/sensitive.rs">`sensitive.rs`</RepoFile>                                                                                      | sensitive-value handling      | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/resolve.rs">`resolve.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/resolve.rs">`resolve/`</RepoFile>             | resolution                    | <RepoFile path="crates/jackin-config/src/resolve/tests.rs">`tests.rs`</RepoFile>    |
| <RepoFile path="crates/jackin-config/src/planner.rs">`planner.rs`</RepoFile>                                                                                          | planning                      | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/persist.rs">`persist.rs`</RepoFile>                                                                                          | persistence                   | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/paths.rs">`paths.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/paths.rs">`paths/`</RepoFile>                     | config paths                  | <RepoFile path="crates/jackin-config/src/paths/tests.rs">`tests.rs`</RepoFile>      |
| <RepoFile path="crates/jackin-config/src/migrations.rs">`migrations.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/migrations.rs">`migrations/`</RepoFile> | versioned migrations          | <RepoFile path="crates/jackin-config/src/migrations/tests.rs">`tests.rs`</RepoFile> |
| <RepoFile path="crates/jackin-config/src/versions.rs">`versions.rs`</RepoFile>                                                                                        | version constants             | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/validation.rs">`validation.rs`</RepoFile>                                                                                    | validation                    | —                                                                                   |
| <RepoFile path="crates/jackin-config/src/editor.rs">`editor.rs`</RepoFile> · <RepoFile path="crates/jackin-config/src/editor.rs">`editor/`</RepoFile>                 | editor config                 | <RepoFile path="crates/jackin-config/src/editor/tests.rs">`tests.rs`</RepoFile>     |
| <RepoFile path="crates/jackin-config/src/test_support.rs">`test_support.rs`</RepoFile>                                                                                | deterministic config builders | —                                                                                   |

## Public API [#public-api]

Resolved config/workspace types and the resolution + migration entry points consumed by `jackin-runtime`, `jackin-instance`, `jackin-isolation`, and the CLI. Schema changes are versioned — see `migrations` and the workspace schema-versioning rules.

## How to verify [#how-to-verify]

```sh
cargo nextest run -p jackin-config
cargo clippy -p jackin-config --all-targets -- -D warnings
```
