Behind jackin❯ — crates

jackin-config

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

  • 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

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

Structure

ModuleOwnsTests
lib.rscrate root, re-exports
schema.rsconfig + workspace schema
app_config.rs · app_config/app-config modeltests.rs
mounts.rs · mounts/mounts schematests.rs
auth.rsauth model
sensitive.rssensitive-value handling
resolve.rs · resolve/resolutiontests.rs
planner.rsplanning
persist.rspersistence
paths.rs · paths/config pathstests.rs
migrations.rs · migrations/versioned migrationstests.rs
versions.rsversion constants
validation.rsvalidation
editor.rs · editor/editor configtests.rs
test_support.rsdeterministic config builders

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

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

On this page