Skip to content

docs(rfc): propose Studio for local graph inspection and editing - #850

Closed
dremnik wants to merge 2 commits into
ModernRelay:mainfrom
dremnik:rfc/studio-local-ui
Closed

dremnik wants to merge 2 commits into
ModernRelay:mainfrom
dremnik:rfc/studio-local-ui

Conversation

@dremnik

@dremnik dremnik commented Oct 3, 2026 •

Copy link
Copy Markdown

Read the RFC: Studio — a local graph UI served by the CLI

This RFC proposes omnigraph studio: a local browser UI for inspecting and editing graph records. Boot mode serves an applied local cluster folder; attach mode connects to an existing server using the CLI's stored credentials. The first public release includes cell edits, adding rows, and deleting rows through the existing conditional mutation API.

Three decisions need maintainer approval before implementation:

  1. Product scope. Support inspection and editing in both boot and attach modes. Each edit uses the commit returned with the original read as its write precondition; a 412 shows a conflict and reloads without retrying. Keys remain immutable, and edge edits follow the server's supported mutation rules. Already-served clusters use attach mode.
  2. Distribution. Keep UI source in this repository, build it with a pinned JavaScript toolchain before compiling the CLI, and embed the generated assets in the executable. Generated assets are not committed. Users receive one executable; contributors building the full CLI need the frontend toolchain. The implementation must establish asset generation or inclusion for each supported source-install path. See distribution research and prior art for the packaging approaches used by other projects.
  3. Server integration. Add a small route-extension API to the server crate for boot mode, including notification of the bound address. The standalone server binary, graph API, OpenAPI document, and storage format remain unchanged. Always proxying through a second listener is the alternative if maintainers prefer to avoid this API addition.

Implementation plans:

These plans describe the proposed implementation and validation for each part of the design. The RFC establishes the scope and architectural boundaries; implementation details can be refined during code review. Merging the draft does not itself accept the design.

@ragnorc

ragnorc commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Thanks for this; it shaped #1017, which takes the Studio work in a different
direction. Studio is now the native client in ModernRelay/omnigraph-studio,
so the CLI only serves a local graph and launches Studio, rather than
embedding a browser UI. Two of your points carried over: an embedder has to
reuse the server's lifecycle instead of copying it (#1017's serve_local),
and loopback alone does not establish which page made a request (#1017's
Host/Origin guard). Where #1017 differs: local sessions are
authenticated with a per-session token and a generated Cedar policy instead
of --unauthenticated, never take cluster writer admission, and default to
read-only.

Closing this in favor of #1017.

@ragnorc ragnorc closed this Oct 16, 2026
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.

5 participants