v0.5.0
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
_aswriter (mutate, load, schema-apply, branch create/merge/delete) flows throughOmnigraph::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-NNNcodes. Property and type drops support soft semantics; destructive drops require the new--allow-data-lossflag (CLI) or{"allow_data_loss": true}(HTTP). - Structured filter pushdown — query-language predicates push down via Lance's
Scanner::filter_exprinstead of stringified SQL.CompOp::Containsagainst list-typed columns now pushes down viaarray_has(previously fell through to in-memory filtering). - Inline
.gqsources — CLI and HTTP read/mutate endpoints accept query source inline, not just file paths. - CORS layer — optional CORS middleware on
omnigraph-serverfor browser-based UIs (OMNIGRAPH_CORS_ORIGINS). - Bug fixes — merge-insert dup-rowid (
SourceDedupeBehavior::FirstSeen+check_batch_unique_by_keysprecondition), 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-NNNmatching. - Destructive schema drops require explicit
allow_data_loss— soft-drop-or-reject is the new default. NOT INon 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.