omnigraph/docs/releases/v0.2.0.md
2026-04-12 20:35:34 +03:00

3.6 KiB

Omnigraph v0.2.0

Omnigraph v0.2.0 focuses on day-to-day operability: safer schema evolution, more capable mutation queries, better local and remote ergonomics, and a documented HTTP surface for clients and tooling.

This release is especially relevant if you are running Omnigraph locally on RustFS or using the CLI and server together as a graph application backend.

Highlights

Schema planning and apply

Schema changes can now move from planning to execution with first-class CLI and server support.

  • Added omnigraph schema apply --schema ... alongside schema plan
  • Added POST /schema/apply on the server
  • Added policy support for schema application through the schema_apply action
  • Persisted accepted schema updates as part of a supported apply flow

This makes schema evolution an actual product capability instead of a plan-only diagnostic.

Safer schema apply on live repos

After the initial schema-apply rollout, the apply path was hardened to avoid clobbering concurrent writes and to preserve indexes during table rewrites.

  • Blocks writes while schema apply is in progress
  • Verifies source heads before publishing rewritten tables
  • Rebuilds the full expected index set after rewrite operations
  • Keeps schema apply constrained to repos whose only branch is main

The result is a much more defensible v1 schema migration path.

Multi-statement mutations

Mutation queries can now contain multiple sequential statements that execute atomically within one run.

Example:

query add_and_link($name: String, $age: I32, $friend: String) {
    insert Person { name: $name, age: $age }
    insert Knows { from: $name, to: $friend }
}

This is a meaningful step toward richer write-side workflows without forcing multiple client round trips.

OpenAPI support

The server now publishes an OpenAPI document at /openapi.json.

  • Added schema-backed endpoint documentation for the Omnigraph HTTP API
  • Documented request and response types for the current server surface
  • Made the published spec reflect runtime auth mode, so open local deployments are documented correctly

This makes Omnigraph easier to integrate with generated clients, inspection tools, and API consumers that want a machine-readable contract.

CLI and export ergonomics

Several rough edges in the CLI were fixed.

  • Export now streams instead of buffering the full snapshot in memory first
  • Load summaries now report actual loaded row counts
  • Alias handling no longer steals legitimate first arguments
  • commit show matches the documented --uri usage
  • Remote and local usage are more consistent for common admin flows

Additional Improvements

  • RustFS CI is now scoped to relevant changes instead of burning time on unrelated pull requests
  • README and install docs were tightened around public binary install behavior
  • The local RustFS bootstrap remains aligned with the rolling edge binary channel

Upgrade Notes

  • If you use local or remote schema administration, prefer schema plan before schema apply
  • schema apply is intentionally conservative in v1 and rejects repos with non-main branches
  • If policy is enabled, make sure admin actors are allowed to perform schema_apply
  • If you rely on published binaries, this release is the point where stable installers can pick up schema apply and the newer CLI/runtime behavior without using edge

Included Changes

  • PR #2: CLI ergonomics and streamed export output
  • PR #5: schema apply command and policy support
  • PR #7: schema apply concurrency and index-preservation hardening
  • PR #4: multi-statement mutations
  • PR #1: OpenAPI generation and auth-aware /openapi.json
  • PR #8: RustFS CI scoping improvements