Skip to content

docs(rfc): RFC-007 + RFC-008 — the config architecture pair (operator layer; deprecate omnigraph.yaml)#195

Merged
aaltshuler merged 3 commits into
mainfrom
rfc/operator-config
Jun 11, 2026
Merged

docs(rfc): RFC-007 + RFC-008 — the config architecture pair (operator layer; deprecate omnigraph.yaml)#195
aaltshuler merged 3 commits into
mainfrom
rfc/operator-config

Conversation

@aaltshuler

@aaltshuler aaltshuler commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Design only — no code. Two RFCs that together restore single-ownership config:

RFC-007 — per-operator config (the operator slice of RFC-002)

~/.omnigraph/config.yaml: operator identity (operator.actor joins the --as cascade), credentials keyed by server name (OMNIGRAPH_TOKEN_<NAME> → 0600 credentials file → legacy mechanisms unchanged), operator-owned named servers. Adopts RFC-002's settled decisions; defers GraphLocator/use/State-layer; encodes the ten confirmed #139 findings as design rules (compat shims, key-level merges, atomic writes, the project-layer trust boundary). Walk-up rejected (Terraform-aligned). Three independently-landable PRs.

RFC-008 — deprecate omnigraph.yaml

The file is three concerns in one: server deployment config (superseded by cluster boot), project/CLI conveniences (better homes in the cluster catalog and operator config), and operator identity (never belonged there). End state: two single-owner surfaces — cluster config (team/repo) + operator config (person/$HOME) — plus the zero-config flags/env tier, which needs no file at all.

  • Complete key-by-key migration map over the verified OmnigraphConfig surface (12 keys, each with its destination — including the two defended placements: aliases are operator config; multi-graph-without-control-plane migrates to a minimal file:// cluster).
  • Staged retirement honoring Hyrum: per-key deprecation warnings → omnigraph config migrate (the map's completeness test) → init stops scaffolding → opt-in strict env → removal at the next major.
  • Deletes, eventually: the 12-key OmnigraphConfig path, the dual query-registry loaders, the yaml-mode server boot source, and the Omnigraph Config v2 #139 checkout-hijack surface.

RFC-007's "project layer" framing is amended to transitional; sequencing couples them (operator layer lands first — it's what keys migrate to).

🤖 Generated with Claude Code

Terraform-style operator/project split: ~/.omnigraph/config.yaml for
identity (operator.actor in the --as cascade), credentials keyed by
server name (env -> 0600 credentials file; no inline secrets), and
operator-owned named servers that project configs reference but cannot
redefine. Explicitly a staged subset of RFC-002: adopts its settled
decisions (one dir, keyed credentials, env precedence), defers
GraphLocator/use/state-layer, and encodes the ten confirmed PR #139
findings as design rules (compat shims, key-level merges, atomic writes,
the project-layer trust boundary).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

aaltshuler has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

… surface

The file is three unrelated concerns wearing one filename — server
deployment config, project/CLI conveniences, operator identity — and the
mixture is the root cause of a recurring problem class (per-operator
copies of project files, checkout-supplied credential redirection, init
scaffold pollution). End state: two single-owner surfaces — cluster
config (team, repo) and operator config (person, $HOME) — plus the
zero-config flags/env tier.

Complete key-by-key migration map over the verified OmnigraphConfig
surface; staged retirement per the repo's Hyrum rules (warn with per-key
guidance -> `config migrate` tool -> stop scaffolding -> opt-in strict ->
removal at the next major). RFC-007's project-layer framing is amended to
transitional accordingly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@aaltshuler aaltshuler changed the title docs(rfc): RFC-007 — per-operator config (Terraform-ergonomics operator/project split) docs(rfc): RFC-007 + RFC-008 — the config architecture pair (operator layer; deprecate omnigraph.yaml) Jun 11, 2026
RFC-007 now speaks the end-state language throughout: the operator surface
is one half of the two-surface split (cluster config / operator config),
not a layer over a living omnigraph.yaml. The precedence cascade drops the
project layer (cluster config carries no operator-resolvable keys — a
checkout can never supply identity); legacy omnigraph.yaml appears only as
the RFC-008 deprecation-window slot. The trust boundary is restated as
closed-by-construction in the end state, with the rules governing the
window. PR 3 becomes operator targeting (--server + operator aliases — the
replacement RFC-008 needs before legacy aliases migrate), and the schema
example gains the aliases block.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

aaltshuler has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@aaltshuler aaltshuler merged commit d5d703f into main Jun 11, 2026
8 checks passed
@aaltshuler aaltshuler deleted the rfc/operator-config branch June 11, 2026 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant