Files
alknet/tasks/architecture/spec-configuration.md
glm-5.1 19b3d3a078 docs: write Phase 0 architecture foundation — ADRs 026-034, spec docs, and task updates
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.
2026-06-07 09:32:58 +00:00

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
architecture/adr-030-static-dynamic-config-split
architecture/adr-031-forwarding-policy
architecture/adr-028-auth-irpc-service
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:

  1. Remove duplicate "## Problem" heading (lines 20-21 both say ## Problem)
  2. 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)
  3. Remove inline decision rationale — reference ADR-030, ADR-031, ADR-028
  4. Remove inline open questions — reference open-questions.md OQ numbers
  5. Add YAML frontmatter: status: draft, last_updated: <date>
  6. Restructure to follow established spec format (What, Why, Architecture, Constraints, Open Questions, Design Decisions)
  7. Update terminology: head/worker (already done in research doc)
  8. Reconcile ADR-011: TOML config file amends ADR-011 (convenience layer), doesn't supersede it
  9. 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.md exists 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.md updated to include configuration.md in architecture docs table
  • docs/research/configuration.md retains 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