Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 May 13:26
· 79 commits to main since this release
bb1fe57

Lance 6 substrate, Cedar policy engine, schema-lint v1. This release jumps the storage substrate from Lance 4 to Lance 6.0.1 (DataFusion 53, Arrow 58), wires engine-wide Cedar policy enforcement into every authoring path, and ships a structured schema-lint v1 chassis with code-tagged diagnostics and explicit destructive-drop opt-in.

Full notes: docs/releases/v0.5.0.md.

Install

  • Homebrew (macOS arm64 / Linux x86_64):
    brew install ModernRelay/tap/omnigraph
    
  • Cargo (all five workspace crates on crates.io):
    cargo install --locked omnigraph-cli
    
  • Pre-built binaries: see assets below (omnigraph-linux-x86_64.tar.gz, omnigraph-macos-arm64.tar.gz).

Highlights

  • Lance 6.0.1 substrate — DataFusion 52 → 53 and Arrow 57 → 58 come along for the ride. DF 53 optimizer rules (vectorized IN-list, PhysicalExprSimplifier, push-limit-into-hash-join, CASE-NULL shortcut) now reach predicates via the new structured Expr pushdown.
  • Cedar policy engine — every _as writer (mutate, load, schema-apply, branch create/merge/delete) flows through Omnigraph::enforce(action, scope, actor). Server defaults to deny-all without a Cedar YAML policy; actor identity comes only from signed token claims.
  • Schema-lint v1 — diagnostics now carry stable OG-XXX-NNN codes. Property and type drops support soft semantics; destructive drops require the new --allow-data-loss flag (CLI) or {"allow_data_loss": true} (HTTP).
  • Structured filter pushdown — query-language predicates push down via Lance's Scanner::filter_expr instead of stringified SQL. CompOp::Contains against list-typed columns now pushes down via array_has (previously fell through to in-memory filtering).
  • Inline .gq sources — CLI and HTTP read/mutate endpoints accept query source inline, not just file paths.
  • CORS layer — optional CORS middleware on omnigraph-server for browser-based UIs (OMNIGRAPH_CORS_ORIGINS).
  • Bug fixes — merge-insert dup-rowid (SourceDedupeBehavior::FirstSeen + check_batch_unique_by_keys precondition), branch-merge coordinator recovery on error paths, blob-column materialization during branch merge.

Behavior changes worth knowing

  • On-disk format unchanged — existing v0.4.2 datasets open directly. No data migration.
  • Server with policy enabled rejects writes by default — supply a Cedar YAML to authorize.
  • Schema-lint diagnostics now have stable codes — CI parsers keying off prior free-form text need to switch to OG-XXX-NNN matching.
  • Destructive schema drops require explicit allow_data_loss — soft-drop-or-reject is the new default.
  • NOT IN on nullable anti-join columns is now SQL-correct — side effect of the DF 53 bump.

Upgrade notes, the full migration/client/operator detail, and the test-coverage delta are in docs/releases/v0.5.0.md.