Skip to content

docs(adr): record ecosystem admin-web architecture (Keyverse SSO + Keyvault) - #1675

Merged
seonghobae merged 5 commits into
mainfrom
docs/ecosystem-admin-web-sso-keyvault-adr-20260902
Sep 3, 2026
Merged

docs(adr): record ecosystem admin-web architecture (Keyverse SSO + Keyvault)#1675
seonghobae merged 5 commits into
mainfrom
docs/ecosystem-admin-web-sso-keyvault-adr-20260902

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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:

noema got no code change this iteration: it is a Cloudflare Worker OIDC/credential-exchange broker with only /health//ready//exchange and 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.

  • Verified no test in this repo enumerates docs/adr/ generically (checked tests/*.py for any docs/adr reference before adding -- the five matches are all domain-specific contract tests unrelated to ADR-directory structure)
  • Cross-checked ADR numbering: 0021 is the next free number after 0020 in docs/adr/

🤖 Generated with Claude Code


Devin Review

…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>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 5 minutes.

Check out review usage here.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 870ecf4a-8efe-4100-a782-60126c79708d

📥 Commits

Reviewing files that changed from the base of the PR and between 62d512e and 97a70a8.

📒 Files selected for processing (1)
  • docs/adr/0026-ecosystem-admin-web-sso-and-keyvault.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 1 potential issue.

Devin Review

Comment on lines +31 to +34
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Cross-repository references are ambiguous

The ADR calls Keyverse work PR #103 instead of ContextualWisdomLab/keyverse#103. These references do not link from this repository.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@seonghobae seonghobae added documentation Improvements or additions to documentation priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: docs Documentation, ADR, PRD, or technical writing labels Sep 2, 2026 — with ChatGPT Codex Connector

@cwl-noema-review cwl-noema-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 result
  • docs/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]

seonghobae and others added 2 commits September 3, 2026 17:49
… 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>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

Devin Review

Comment thread docs/adr/0021-ecosystem-admin-web-sso-and-keyvault.md Outdated
Comment on lines +9 to +15
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Keyverse admin direction remains contradictory

The plan includes a Keyverse admin web, while the master context permits configuration-as-code and Admin REST only. Reconcile these durable decisions.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

seonghobae and others added 2 commits September 3, 2026 18:37
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>
@seonghobae
seonghobae merged commit 0070e37 into main Sep 3, 2026
6 of 18 checks passed
@seonghobae
seonghobae deleted the docs/ecosystem-admin-web-sso-keyvault-adr-20260902 branch September 3, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: docs Documentation, ADR, PRD, or technical writing

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant