ADR-011 (resolves OQ-08): per-repo authorization — grants live in repo records keyed on the stable logical identity id (alkcall ADR-025, referenced); policy is alkgit-core's authorize() function (public+read anonymous-first-class, write always authenticated+granted); alkgit stores no identity records; vault placement resolved as nothing to place in v1. ADR-012 (resolves OQ-06/OQ-07): registry backing + write surface — GitRegistryStore write supertrait (alknet ADR-035 read/write split shape); registry-file default (per-repo record files + in-memory index, config-seeded, op-mutable, no gitoxide); git/repo/* CRUD ops shipped External with scope+ownership ACL (create mints ownership and seeds creator grants; ownership never implies git access); the two-op-kind classification recorded (open op + call ops from one crate, per alkcall ADR-047); recorded split trigger for a downstream platform crate. Doc sync: backend.md (five-trait family, feature model split, two-op-kinds), doors.md + overview.md (authorize policy, dual-kind crate map), open-questions.md (OQ-06/07/08 resolved), README (ADR table, current state), oq-06 tracker task closed (resolved early). Verification: cargo test (default + --no-default-features), clippy -D warnings, fmt --check.
41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
---
|
||
id: architecture/oq-06-metadata-backing
|
||
name: OQ-06 unblock — metadata-scale requirements arrive
|
||
status: done
|
||
depends_on: []
|
||
scope: narrow
|
||
risk: trivial
|
||
impact: component
|
||
level: research
|
||
tags: [external-trigger, deferred-oq, resolved-early]
|
||
---
|
||
|
||
## Description
|
||
|
||
Tracker for OQ-06 (`deferred(scope)`): registry/metadata backing store.
|
||
**Resolved early (2026-09-21, ADR-012)** before the blocking condition
|
||
arrived: the deferral's premise was wrong — the deferred "metadata-scale
|
||
requirements" only ever gated a *persistence adapter* (future, separate,
|
||
additive), never the default backing. The default (`registry-file`
|
||
feature: per-repo record files + in-memory index, config-seeded,
|
||
op-mutable) is file-scale by design under the alknet repo/adapter
|
||
pattern. Marking done closes the tracker.
|
||
|
||
## Work
|
||
|
||
None. OQ-06 is resolved by
|
||
`docs/architecture/decisions/012-registry-backing-and-ops.md` (§1–2, §4).
|
||
|
||
## Verification
|
||
|
||
- OQ-06 status matches `docs/architecture/open-questions.md` (resolved).
|
||
|
||
## Out of scope
|
||
|
||
- Building a persistence adapter (gated on a real deployment need —
|
||
additive, no tracker needed until then).
|
||
|
||
## Summary
|
||
|
||
Resolved early via ADR-012: the repo/adapter pattern made the default
|
||
independent of scale requirements; the deferral dissolved. |