Phase 0a — ADRs (9 new): - ADR-026: Transport/interface separation (three-layer model) - ADR-027: Crate decomposition (core, secret, storage, flowgraph, napi, CLI) - ADR-028: Auth as irpc service (AuthProtocol behind feature flag) - ADR-029: Identity as core type (Identity + IdentityProvider in alknet-core) - ADR-030: Static/dynamic config split (ArcSwap, ConfigReloadHandle) - ADR-031: Forwarding policy (rule-based allow/deny, TransportKind-aware) - ADR-032: Event boundary discipline (domain, irpc, call protocol boundaries) - ADR-033: OperationEnv universal composition (three dispatch paths) - ADR-034: Head/worker terminology (replace hub/spoke) Phase 0b — New spec documents (7): - identity.md, services.md, interface.md, configuration.md, storage.md, flowgraph.md, secret-service.md Updated existing docs: - auth.md: reference identity.md for canonical definitions, add AuthProtocol - open-questions.md: resolve OQ-12, OQ-16, OQ-18, OQ-22, OQ-23-25 - README.md: add all new docs, ADRs 026-034 Marked 19 architecture tasks as completed.
3.2 KiB
3.2 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | |||
|---|---|---|---|---|---|---|---|---|---|---|
| architecture/spec-configuration | Promote configuration.md from research to architecture spec | completed |
|
moderate | medium | phase | implementation |
Description
Promote docs/research/configuration.md to docs/architecture/configuration.md as a proper architecture spec document. The research doc is nearly spec-ready — this task is primarily cleanup, restructuring, and aligning with ADR decisions.
Source: docs/research/configuration.md (651 lines, well-analyzed)
Key cleanup items:
- Remove duplicate "## Problem" heading (lines 20-21 both say
## Problem) - Resolve open questions per ADRs: OQ-12 (global rules + principal matching via IdentityProvider), OQ-13 (no file watching, confirmed), OQ-14 (ArcSwap, confirmed), OQ-16 (TransportKind match in ForwardingRule), OQ-18 (IdentityProvider owns scopes)
- Remove inline decision rationale — reference ADR-030, ADR-031, ADR-028
- Remove inline open questions — reference open-questions.md OQ numbers
- Add YAML frontmatter:
status: draft,last_updated: <date> - Restructure to follow established spec format (What, Why, Architecture, Constraints, Open Questions, Design Decisions)
- Update terminology: head/worker (already done in research doc)
- Reconcile ADR-011: TOML config file amends ADR-011 (convenience layer), doesn't supersede it
- Remove research-only sections that are exploration/analysis — keep only the decisions and their architecture
What stays: StaticConfig/DynamicConfig split, ArcSwap model, ForwardingPolicy design, multi-transport listeners, ConfigService, NAPI reload API, TOML format, CLI vs programmatic behavior table
Acceptance Criteria
docs/architecture/configuration.mdexists with YAML frontmatter (status: draft)- No duplicate "## Problem" heading
- All inline decision rationale replaced with ADR references (030, 031, 028)
- All inline open questions replaced with OQ references
- OQ-12 resolved: global rules + principal matching, reference ADR-031
- OQ-16 resolved: TransportKind match, reference ADR-031
- OQ-18 resolved: IdentityProvider owns scopes, reference ADR-029
- TOML config file positioned as amending ADR-011, not replacing programmatic API
- Follows spec format: What, Why, Architecture, Constraints, Open Questions, Design Decisions
- Consistent head/worker terminology throughout
docs/architecture/README.mdupdated to include configuration.md in architecture docs tabledocs/research/configuration.mdretains its content (not deleted — it's research source material)
References
- docs/research/configuration.md — source material to promote
- docs/architecture/decisions/030-static-dynamic-config-split.md — ADR to reference
- docs/architecture/decisions/031-forwarding-policy.md — ADR to reference
- docs/architecture/decisions/028-auth-irpc-service.md — ADR to reference
- docs/architecture/decisions/011-no-ssh-config-programmatic-api.md — amended by TOML config
Notes
To be filled by implementation agent
Summary
To be filled on completion