docs(adr): record ecosystem admin-web architecture (Keyverse SSO + Keyvault) - #1675
Conversation
…yvault) Cross-repo research pass (owner request: "관리자 웹 개발 (noema, contextual-orchestrator, keyverse) 및 상호 연계 준비") across all three named repos, cloned fresh -- not assumed -- before any design work. Records: Keyverse as the shared SSO provider for every admin web (design only, not yet wired); each repo's admin web as a thin frontend over its own backend (no shared cross-repo frontend package, matching contextual-orchestrator's own ADR 0033 reasoning); the Keyverse-as-Keyvault bounded-context decision and why service ABAC/RBAC and "login credential store" are NOT rebuilt from scratch (PR #103 already covers the former; the latter is Keyvault + per-service Anti-Corruption Layers, not a new module); and why noema got no code change this iteration (no admin-relevant HTTP surface exists yet to build a console on). Points to the two implemented slices from this same pass: ContextualWisdomLab/contextual-orchestrator#1010 (per-model LLM timeout admin surface, closing docs/product-goal-directive.md §8) and ContextualWisdomLab/keyverse#129 (Keyvault: namespaced encrypted-at-rest secrets store, plus ADRs 0014-0016 for the three-capability Keyverse research). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| generic secrets product surface) and no frontend of any kind. PR #103 | ||
| (open, Draft) already implements most of the requested service | ||
| ABAC/RBAC capability (`authorization_plane.py`, `org_authorization.py`, | ||
| ADRs 0010–0012) but is not currently mergeable. |
There was a problem hiding this comment.
Noema LLM review
The PR introduces a new ADR document that outlines the ecosystem admin-web architecture for Keyverse SSO and Keyvault. The document addresses the critical issue with cross-repository references and provides a clear and well-structured outline of the architecture. The code changes are minimal and do not introduce any new security vulnerabilities or maintainability issues.
Reviewed changed lines
docs/adr/0021-ecosystem-admin-web-sso-and-keyvault.md:1 (RIGHT): The document provides a clear and well-structured outline of the architecture.docs/adr/0021-ecosystem-admin-web-sso-and-keyvault.md:34 (RIGHT): The document addresses the critical issue with cross-repository references.
Adversarial validation
docs/adr/0021-ecosystem-admin-web-sso-and-keyvault.md:1 (RIGHT)falsified: The document provides a clear and well-structured outline of the architecture. — observed resultdocs/adr/0021-ecosystem-admin-web-sso-and-keyvault.md:34 (RIGHT)falsified: The document addresses the critical issue with cross-repository references. — observed result- Residual risk: Low
Findings
- No blocking findings.
- Result: APPROVE
- Head SHA:
69884ac2d0e1ba053e1c6a050486dd621c85e700 - Reviewer credential:
noema-review-github-app-refresh - Actor:
cwl-noema-review[bot]
… shipped PR #1010 (the ADR's decision item 6, the timeout-admin-surface slice) was opened at 03:40:12Z, this ADR PR at 03:40:12Z, and #1010 was subsequently closed unmerged by the repo owner at 05:10:46Z the same day on a categorical objection to its live-enforcement wiring becoming production authority, plus four distinct unresolved correctness findings -- already repair-policy rechecked and confirmed a valid closure with delta preserved, not orphaned. Adds an Update section rather than rewriting the original decision record, so the ADR doesn't merge into main citing a closed PR as an implemented slice. Decisions 1-5 (SSO/Keyvault/ABAC-RBAC/credential-store shape) are unaffected; only item 6's implementation claim was stale. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…web-sso-keyvault-adr-20260902
| The owner asked for admin web UIs across three repositories | ||
| (`noema`, `contextual-orchestrator`, `keyverse`) and for mutual | ||
| integration so `keyverse` — currently a Keycloak-fronting central Identity | ||
| Provider — can also be used as a Keyvault (secrets/credential management, | ||
| analogous to Azure Key Vault or HashiCorp Vault), later expanded by the | ||
| owner to two further Keyverse capabilities: service-to-service ABAC/RBAC, | ||
| and a "login credential store" for service-account/machine credentials. |
docs/adr/0021-hourly-review-repair-single-file-consolidation.md landed on main after this PR branched, so this ADR's own "0021 is the next free number" claim went stale. 0026 is the next free number after the current highest (0025, the CodeQL dispatch ADR). Renamed the file and updated its own title heading; no other file in the repo references the old number or filename. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Summary
Owner request: "관리자 웹 개발 (noema, contextual-orchestrator, keyverse) 및 상호 연계 준비 (Keyverse를 Keyvault로서 쓸 수 있도록)", later expanded to include Keyverse service ABAC/RBAC and a "login credential store" capability.
This PR adds ADR-0021 recording the cross-repo research and architecture decisions from that pass (all three repos cloned fresh into scratch, no assumptions made). It is a docs-only PR in the central repo; the two implemented code slices are in their own repos' PRs:
docs/product-goal-directive.md§8 already named. Extends the existing, already-serving/adminconsole in place per that repo's own operative planning ADR 0033.noemagot no code change this iteration: it is a Cloudflare Worker OIDC/credential-exchange broker with only/health//ready//exchangeand Durable-Object-only internal state -- no admin-readable HTTP surface exists yet to build a console against. ADR-0021 records this as an honest "not yet, and here is why" rather than forcing a console with nothing real to show.Test plan
Documentation-only change (one new ADR file). No code, no CI-relevant surface touched.
docs/adr/generically (checkedtests/*.pyfor anydocs/adrreference before adding -- the five matches are all domain-specific contract tests unrelated to ADR-directory structure)docs/adr/🤖 Generated with Claude Code