mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-12 01:45:14 +02:00
86 lines
3.6 KiB
Markdown
86 lines
3.6 KiB
Markdown
# 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:
|
|
|
|
```gq
|
|
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
|