Add 15 new tasks under tasks/architecture/ for Phase 0b (spec writing) and Phase 0c (review): Phase 0b — New specs (6): - spec-configuration: promote from research, cleanup, align with ADRs - spec-identity: carry from auth.md + services.md, canonical Identity - spec-secret-service: from research/services.md SecretProtocol - spec-storage: from research/storage.md, contract-level - spec-flowgraph: from research/flow.md, pure computation crate - spec-interface: new Layer 2 spec (highest risk new spec) - spec-services: irpc service layer + OperationEnv (broadest scope) Phase 0b — Spec updates (6): - spec-update-overview: add crate structure, Layer 3, services - spec-update-auth: IdentityProvider vs AuthService relationship - spec-update-call-protocol: OperationEnv dispatch paths - spec-update-server: DynamicConfig, ForwardingPolicy, IdentityProvider - spec-update-napi: reload API, call protocol references - spec-update-open-questions: resolve OQs per ADR decisions Phase 0b — Assembly (1): - spec-update-readme: add new docs and ADRs to tables Phase 0c — Review (1): - review-spec-foundation: validate consistency checklist Generation structure (6 total): Gen 1: 6 independent ADRs (parallel) Gen 2: adr-027, adr-028 (depend on adr-029) Gen 3: adr-033 + 6 spec docs + open-questions update (parallel) Gen 4: adr review + interface/services specs + 4 spec updates Gen 5: call-protocol update + readme update Gen 6: spec review
3.0 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | ||
|---|---|---|---|---|---|---|---|---|---|
| architecture/spec-identity | Create identity.md architecture spec | pending |
|
narrow | low | phase | implementation |
Description
Create docs/architecture/identity.md — a new architecture spec defining the Identity type, IdentityProvider trait, and the auth flows for SSH key-based and token-based authentication.
This is mostly a carry-forward from auth.md (which already defines IdentityProvider trait and Identity struct) plus the Identity section from research/services.md. The key addition is making the IdentityProvider vs AuthService relationship explicit per ADR-028: IdentityProvider is the contract, ConfigIdentityProvider is the default ArcSwap-backed impl, and AuthProtocol irpc service is one way to satisfy the trait (behind feature flag).
Source material:
auth.mdsections: IdentityProvider Trait, AuthPolicy Structure, Auth Flow in the Server, Token Authenticationresearch/services.mdAuthService section (AuthProtocol enum, AuthResult type)- ADR-029 (identity as core type), ADR-028 (auth as irpc service), ADR-023 (unified auth)
Relationship to auth.md: After identity.md exists, auth.md should be updated to reference identity.md for the Identity and IdentityProvider definitions rather than defining them inline. This is handled in the auth.md update task.
Acceptance Criteria
docs/architecture/identity.mdexists with YAML frontmatter (status: draft)- Follows spec format: What, Why, Architecture, Constraints, Open Questions, Design Decisions
- Defines
Identitystruct:{ id, scopes, resources }— canonical definition per ADR-029 - Defines
IdentityProvidertrait:resolve_from_fingerprint(),resolve_from_token() - Documents default implementation:
ConfigIdentityProviderreading fromArcSwap<DynamicConfig.auth> - Documents head implementation:
StorageIdentityProviderbacked by SQLitepeer_credentials+ ACL graph (in alknet-storage, not core) - Documents irpc service path:
AuthProtocolenum (VerifyPubkey, VerifyToken, ReloadKeys, CheckAccess) behindirpcfeature flag per ADR-028 - Shows both auth flows: SSH key path and token auth path, both resolving to same
Identity - Consistent head/worker terminology
- References ADR-029, ADR-028, ADR-023
docs/architecture/README.mdupdated to include identity.md
References
- docs/architecture/auth.md — existing IdentityProvider and Identity definitions
- docs/research/services.md — AuthService, AuthProtocol enum
- docs/architecture/decisions/029-identity-core-type.md — identity placement decision
- docs/architecture/decisions/028-auth-irpc-service.md — auth as irpc service
- docs/architecture/decisions/023-unified-auth-shared-key-material.md — unified auth
Notes
To be filled by implementation agent
Summary
To be filled on completion