mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-18 02:24:27 +02:00
feat(cli): add read-only profile list / profile show (RFC-011 D8) (#255)
Inspect the per-operator `~/.omnigraph/config.yaml` scope profiles without running anything: - `profile list [--json]` — every profile with its binding (server/cluster/store) and default graph; marks the `$OMNIGRAPH_PROFILE`-active one. A malformed (zero/two-scope) profile is reported as `invalid: <reason>`, not a hard failure. - `profile show [<name>] [--json]` — one profile's resolved scope: binding kind + target, the resolved endpoint (a server's URL / a cluster's root / the store URI), default graph, and output format. With no name, shows the active (`$OMNIGRAPH_PROFILE`) profile, else the flat operator defaults. Both are `local` (Session plane) — they read operator config only, take no addressing flags. Display reads `OperatorProfile::binding()` + the same `servers`/`clusters` lookups the scope resolver uses (not `resolve_scope`, which is capability-gated and can't render all three binding kinds at once), so it is honest about what a profile binds. Also: RFC-011 bookkeeping (Status → Accepted; D8 shipped, D11 gated on RFC #219, D5 deferred) and drop the stale "legacy config actor (RFC-008 window)" comment in operator.rs (the legacy actor is gone). Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
6a2dfa7325
commit
7c092d3206
8 changed files with 333 additions and 8 deletions
|
|
@ -1,6 +1,9 @@
|
|||
# RFC-011: CLI refactoring — one addressing & config model
|
||||
|
||||
**Status:** Proposed
|
||||
**Status:** Accepted — implemented (the `omnigraph.yaml` excision landed as
|
||||
#250/#251/#252; D1–D4, D6, D7, D9, D10 shipped). Two items remain: **D11**
|
||||
(server-side maintenance jobs) is gated on the bulk-data-plane RFC #219; **D5**
|
||||
(combined admin scope) stays deferred by design.
|
||||
**Date:** 2026-06-14
|
||||
**Audience:** CLI/server maintainers
|
||||
**Builds on:** [rfc-007-operator-config.md](rfc-007-operator-config.md)
|
||||
|
|
@ -526,10 +529,9 @@ Non-blocking; settle when convenient.
|
|||
server scope and maintain via `--cluster`. A `deployments: { … }` object
|
||||
(server + cluster validated coherent, referenced by a profile) is revisited only
|
||||
if admin ergonomics demand it — and Decision 11 largely removes the need.
|
||||
- **D8 — the `profile` command surface.** `profile list` / `profile show`
|
||||
(read-only inspection) are additive diagnostics, shippable anytime; they don't
|
||||
touch the grammar or resolution. The *no sticky `profile use`* constraint holds
|
||||
regardless — it is a design principle, not a command.
|
||||
- **D8 — the `profile` command surface.** *Shipped:* `profile list` / `profile
|
||||
show [<name>]` (read-only inspection). The *no sticky `profile use`* constraint
|
||||
holds — it is a design principle, not a command.
|
||||
|
||||
## Safety
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ Top-level command families and subcommands. Graph-targeting commands accept a po
|
|||
| `cleanup --keep N --older-than 7d --confirm` | destructive version GC (`--confirm` to execute; also needs `--yes` against a non-local `s3://` target — see *Write diagnostics & destructive confirmation*) |
|
||||
| `embed` | offline JSONL embedding pipeline |
|
||||
| `policy validate \| test \| explain` | Cedar tooling against a cluster's applied policies (`--cluster <dir>`; `--graph <id>` picks a graph's bundle when several apply). `test` takes `--tests <file>`; `explain` takes `--actor`/`--action`/`--branch`/`--target-branch` |
|
||||
| `profile list \| show [<name>]` | read-only inspection of `~/.omnigraph/config.yaml` profiles. `list` shows each profile's binding (server/cluster/store) + default graph and marks the `$OMNIGRAPH_PROFILE`-active one; `show` resolves one profile's scope (endpoint + default graph), defaulting to the active profile, else the flat operator defaults |
|
||||
| `version` / `-v` | print `omnigraph 0.3.x` |
|
||||
|
||||
## Command capabilities
|
||||
|
|
@ -106,7 +107,8 @@ address (a positional URI, `--server`, or `--store <uri>`); a named
|
|||
*local* default — mutually exclusive with `defaults.server`). A **profile** binds
|
||||
exactly one of `server` / `cluster` / `store` plus an optional default graph —
|
||||
config data, not state: every command resolves its scope fresh, there is no
|
||||
sticky "current" mode.
|
||||
sticky "current" mode. Inspect what is defined with `omnigraph profile list` and
|
||||
`omnigraph profile show [<name>]` (read-only).
|
||||
|
||||
- `--store <uri>` addresses a single graph's storage directly (ad-hoc / break-glass).
|
||||
- A `cluster`-bound profile reaches `optimize` / `repair` / `cleanup` for a managed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue