A standard graph data model for Databricks.
Ashlar starts with a shared structure for graph nodes on Databricks. Its name comes from precisely shaped stones that fit together into a larger structure.
Implementation status: Development toolkit with qualified local Delta ingest, PostgreSQL outbox ACK, publication-bound Weft queries, immutable GraphFrames/PuppyGraph projections, and local Truss typed graph/feed/evolution workflows. Fabric integration and broader query support remain unfinished. See the query qualification table and delivery scope for exact subsets. Use the fresh original-commerce workflow for explicit fixture setup, six-table initialization, publication and all four unchanged Weft 0.4.2 queries. The earlier indexed commerce guide retains its separate supplier-relationship qualification. Use the public Truss examples for schema local setup, schema acceptance, graph creation/readback/replay, object/edge updates, graph deletion, typed publication-bound queries, and same-version UMF 0.7/0.8 additive field evolution on the supported local Truss runtime. The guide identifies the independently qualified model and runtime subsets.
Install the candidate toolkit locally (Python3.9+):
python3 -m pip install .
ashlar inspect-source --feed example --epoch one < examples/end-to-end/local-string-source.jsonlFor local Delta ingest and Weft queries, follow the
supply-chain workflow.
ashlar configure-supply-chain-native generates the configuration consumed by
ashlar run-supply-chain-native.
Use the Fabric GQL guide to run
ashlar query-fabric-gql with an explicitly selected HTTP and graph-release
provider.
ashlar prepare-fabric-graph-definition generates the model mappings for
release-specific OneLake node and edge tables.
The guide includes a Spark notebook example for materializing a finite graph
release into those tables.
Existing commerce exports use the separately selected private custody-receipt
entry point described in the same guide.
read_commerce_export captures the release and receipt from an existing
configured commerce reader for that workflow.
Use ashlar export-original-commerce to save the pair from an existing
configured publication without writing a custom export provider.
For local development, open_local_graph_export admits the explicitly selected
retained pair for materialization without reconnecting to the original source.
Use ashlar materialize-graph-export to write that pair into fresh local Delta
node and edge tables with the existing Spark runtime.
Use ashlar compare-graph-exports to inspect changes between two saved exports
without starting an engine; the Truss guide
shows the configuration and command.
Generate all eight runtime table proposals with UMF using the qualified DDL bundle command. It takes an explicit catalog and schema and produces a complete SQL bundle for review.
Build a candidate transaction from the original commerce domain-pack inputs:
ashlar commerce-source --ontology examples/domain-packs/commerce/upstream/ontology.json --graph examples/domain-packs/commerce/upstream/graph/fixture.json --source-system commerce-example --output commerce-candidateThe fresh output contains source.jsonl and explicit development bindings for
11 objects, 10 edges and 34 qualified fields. Exact original input hashes are
required. Public UMF validation and host publication remain separate steps.
Use ashlar archaeology-source or ashlar ecology-source with the same arguments
and the matching original ontology and graph under examples/domain-packs/.
They produce 85 and 94 events respectively, retaining original field values,
nulls and relationships with explicit development bindings.
Prepare original UMF documents for later Truss catalog acceptance using the explicit package/runtime configuration:
ashlar prepare-truss-catalog --config /absolute/path/to/preparation.jsonSuccessful preparation retains original document and configuration bytes and complete producer result views. Catalog acceptance and feed registration require their own configured owners.
Build the original historical medical candidate with its explicit reviewed public receipt:
ashlar medical-source --ontology examples/domain-packs/medical/historical/archive/schemas/ontology.json --graph examples/domain-packs/medical/upstream/graph/fixture.json --public-admission docs/helix/04-build/evidence/medical-historical-admission-20261009/public-receipt.json --source-system medical-example --binding-profile ashlar-medical-development-bindings/0.2 --output medical-candidateThis requires exact original input and receipt bytes, emits 113 events and 48 development property bindings, and retains original Boolean tokens separately from typed values. Native hosts must recompute public admission before runtime acquisition; this command establishes no publication or ACK authority.
Inspect an explicitly configured source with the installed command:
ashlar inspect-configured-source examples/end-to-end/configured-source.jsonThis checks pinned inputs, explicit bindings, transaction staging, local
create/update/delete/history and unchanged exact replay. It performs no database
I/O. Run ashlar validate-configured-source for fresh public UMF logical-value
checking before database setup; the command guide
lists all explicit producer and receipt limits.
Use the configured local Delta workflow
to initialize an isolated installation, publish or replay successive original
transactions, and read retained publication-bound objects with durable local checkpoints.
The distribution is ashlar-graph-toolkit; the import is ashlar. It has no
runtime dependencies. commerce-source emits complete original transaction
bytes; inspect-source verifies source custody. These source commands do not
publish or acknowledge data. The installed publish-commerce and query-commerce commands
use explicit host configuration; native SDKs and credentials belong to that host
composition.
Run the local example (Python standard library only):
python3 tools/run_local_example.pyIt reads retained UMF intake and interpretation, validates a bounded JSONL source, applies create/update/delete transactions and checks exact replay. The output contains one live object, four history entries and one tombstone. IDs are explicit fixture mappings; it does not establish Truss acceptance or Delta publication.
Start with the project documentation and product vision.
This repository uses HELIX.
Read AGENTS.md and .helix.yml, then invoke the installed helix skill.
The bootstrap used HELIX 0.14.1. Resolve its graph, templates, and prompts from
the installed plugin; the methodology catalog is not vendored here.
Continue with the runnable setup/source/query workflow. Native reads require explicit identity, permissions, schema, finite-retention and publication pin checks. Production Truss source registration requires an accepted catalog and a configured producer/feed.
The owner selected Ashlar on 2026-10-03. Existing software uses include Ashlar-Vellum and the unrelated ASHLAR imaging package. Repository naming does not establish package, domain, or trademark availability. See the discovery input.
ashlar prepare-fabric-notebook generates a private runnable notebook from your
selected export pair; see the Fabric notebook guide.
Run a fresh local Truss → Delta → Weft workflow with the portable Truss example.
Run selected existing-publication graph reads with the supply-chain common query command.
First-party software is dual-licensed under MIT OR Apache-2.0, at your option. See LICENSE.md. Third-party materials retain their original notices.