A number without its rowsis an opinion.
DjiniousData ingests the files, connectors and streams you already have, models them as your domain instead of ours, and keeps every dashboard tile, alert and AI answer attached to the records it was computed from. Click a finding and you land on the evidence.
- Ingest
- Model
- Resolve
- Act


One platform for the ingest, the model, the graph and the answer
Most data stacks are four products stitched together: something that loads, something that models, something that charts, and something that finally lets an AI near it. Each keeps its own copy of who may see what, and the lineage dies at every seam. DjiniousData is one API-first control plane, and every capability exists as an endpoint before it exists as a screen.
Unified ingestion
files · connectors · plugins · streamsCSV, Excel, PDF, DOCX, JSON and Markdown from the document store; external systems through connector plugins; video and live camera through the vision pipeline. Everything lands as a knowledge object carrying its own provenance, and an object whose provenance does not validate is refused rather than stored.
Runtime ontology
entity types · relation types · per-org overlaysEntity and relation types are defined through the UI or the API and stored in the database — not declared in a schema file and shipped in a release. An organization can layer its own fields, labels and status workflow over a shared base type without forking it.
Offline-first enrichment
deterministic, with the LLM as an accelerantEntities, keywords, topics, sentiment and language are extracted by a deterministic offline enricher that needs no model and no network. An LLM improves the result when one is configured; it is never the thing standing between your data and being usable.
Entity resolution
identifier 1.0 · exact name 0.85 · fuzzy 0.7Records that describe the same thing are clustered by blocking and pairwise scoring. Above 0.85 the platform merges; between 0.7 and 0.85 it holds the pair as a candidate for a human, and records the analyst's decision so the next run honours it.
Knowledge graph
edges with evidence, not just arrowsResolved entities are related into a navigable graph whose edges carry the objects they were derived from. Traversal is ACL-scoped before it returns a neighbour, so the graph cannot become the path around the permissions.
Dashboards, alerts and reports
aggregates over records, computed on readWidgets query the underlying objects directly, so a tile is always current and always traceable. Alert rules watch an aggregate of a field per group and fire on a threshold. Reports cite the rows behind each section.
Four stages, and each one leaves a trail the next can be checked against
The order matters. Data is enriched before it is resolved because resolution scores names the enricher normalised; it is resolved before the graph is built because an edge between two duplicates is worse than no edge at all; and nothing is charted until it has provenance, because a tile whose source cannot be named is a rumour with a border around it.
Ingest
Point the platform at a folder of documents, a connector or a camera. Each row, page or run becomes a knowledge object: parsed, normalised, deduplicated on a content hash, permission-mapped, enriched, embedded and persisted — with the source system, the source object id and the ingestion time recorded on the way past.
- CSV, XLS/XLSX, PDF, DOCX, JSON, Markdown and plain text, one object per tabular row
- Numeric columns also stream to a time-series store, so telemetry charts and threshold rules work on the same load
- Deduplication is by content hash against the source's own object id — re-ingesting a file is a no-op, not a second copy


Model
Describe your domain as entity types and relation types — fields, labels, icons, a status workflow — and the platform builds the CRUD, the list views, the detail pages, the search facets and the agent tools around them. No migration, no deploy, no code.
- Types are stored records: create one at 11:00 and its list view exists at 11:00
- Per-organization overlays layer fields and workflows over a shared base type without forking it
- The AI assistant can propose a type from the data it has ingested, and you approve or reject the proposal


Resolve
Cluster the records that describe the same real thing, relate the clusters into a graph, and keep the evidence on the edge. Every entity is also related to the organization that owns it, as a derived relation the platform synthesises rather than a stored edge you have to remember to write.
- Blocking, pairwise scoring and union-find clustering, all offline and deterministic
- Fuzzy matches below the auto-merge line stay candidates, and an analyst's decision is honoured on the next run
- Graph traversal is ACL-scoped before it returns a neighbour, not filtered after


Act
Assemble dashboards from the ingested objects, put threshold rules on the fields that matter, let the analysis surface signals and consolidate them into investigations and reports — and give an AI agent the same API, the same tenancy and the same audit trail you have.
- Widgets aggregate the records on read, so a dashboard cannot go stale against its own source
- Alert rules fire on a max, min, average or count of a whitelisted field over a source, per group
- Signals, investigation cases and reports all carry evidence references back to the objects behind them


An organization is a boundary the query planner knows about, not a filter the UI remembers to add
Every record that can belong to a customer carries both an organization and a workspace, and the scoping is applied where the rows are selected rather than where they are rendered. The narrowing parameter can only narrow: a caller who names an organization other than their own gets less, never more.
- Workspaced tables are enumerated in one place, so a new table that should be scoped is a one-line addition rather than an audit of every handler.
- Two admin tiers fall out of the data, not out of a second role: an admin with no organization is a super-user, an admin with one is scoped to it and cannot mint a global admin or move a user out.
- An organization admin edits its own ontology overlays; the shared base types are the global admin's to change.
- The MCP surface threads the API key's principal into the same handlers the REST routes use, so an external agent is scoped exactly as its token is.
Identity is a JWT over an Argon2id credential, and every mutation lands in an append-only audit log on the way past — who, what, which record, and from where. The log is written by the same middleware every route passes through, so a route cannot forget to audit itself.
An assistant inside the tenancy model, not a chat box beside it
The in-app agent calls the same API you do, under your identity and your organization. It reads entities, searches, runs vision detection and drafts ontology proposals — and every write is a card you approve or reject before it happens. External agents reach the same surface over MCP with scoped tokens.
- Every write tool is gated behind an explicit approve/reject card in the conversation
- A viewer's agent sees only the read-only tools — the gating is by role, not by prompt
- 46 MCP tools over the same handlers as the REST API, with per-token scopes
- The assistant can ask you a question mid-task; sensitive answers are stashed server-side and reach the model only as a reference


What people actually build with it
The first is the one this site is illustrated with, end to end. The rest are the same four stages — ingest, model, resolve, act — pointed at different data.
- telematics · CMMS
Condition monitoring for a vehicle fleet
Turn a device feed into a fleet you can ask questions about, and a maintenance plan you can defend.
File ingestRuntime ontologyKnowledge graphAlert rulesDashboardsEvery screenshot on this site is this use case. Eight locomotives report position, engine load, coolant temperature and bus voltage; a depot CMMS carries two years of work orders against the same units. Modelled as locomotives, places and fleet events, the two become one picture: which unit is over its overhaul interval, which is overheating, which has not moved in a fortnight — each answer opening onto the readings behind it.
- Ingest the device feed and the work-order export; both land as knowledge objects with provenance
- Model locomotive, place, fleet and fleet event as types, at runtime
- Materialize the units from their own latest telemetry and relate them into a fleet graph
- Put threshold rules on coolant and bus voltage, per unit, and let the findings open investigations
- PDF · DOCX · spreadsheets
Making a document archive answerable
A shared drive nobody can query becomes a searchable, cited corpus without a migration project.
Document foldersOffline enrichmentHybrid searchProvenanceContracts, reports, specifications and the spreadsheets that accompany them are ingested from the document store — PDF and DOCX parsed in-process, tabular files one object per row. Each object is enriched offline for entities, keywords and topics, embedded, and indexed for both full-text and vector search. A hybrid query returns the passage and the file it came from, so an answer is always traceable to a page.
- Upload into folders and select what to ingest; status and record count land on the document itself
- The deterministic enricher extracts entities, keywords, topics and language with no model required
- Search in keyword, semantic or hybrid mode across everything ingested
- Collect results into an investigation case, where they keep their references back to the source
- identifier · exact name · fuzzy
One customer view from four systems that disagree
Cluster the records that describe the same organization, and keep the ones you are not sure about out of the merge.
Deterministic matchingAnalyst decisionsGraph materializationACL-scoped traversalFour systems each hold a version of the same company, with different identifiers, spellings and addresses. Resolution blocks the candidates, scores them pairwise — a shared identifier is 1.0, an exact normalised name 0.85, a fuzzy name 0.7 — and clusters what clears the line. What does not clear it stays a candidate for a human, and the analyst's decision is honoured on every subsequent run rather than re-litigated.
- Ingest each system through its own connector, keeping its identifiers
- Run resolution: blocking, pairwise scoring, union-find clustering
- Review the candidates that fell between 0.7 and 0.85 and record a decision
- Materialize edges between the clusters, each carrying the objects it was derived from
- RT-DETR · tracking
Counting what a camera sees, not what it detects
Object detection over photos, footage and live streams, materialised as metrics you can alert on.
Vision pipelinesTrackingMetricsScheduled runsA detection pipeline runs over a stored video, a public URL or an allow-listed camera stream, and its results land three ways: as time-series metrics, as a searchable knowledge object per run, and optionally as one entity per tracked object. The tracker is the point — nine hundred boxes of one parked truck is one truck, and that is the number that belongs on a dashboard.
- Define a pipeline and point it at a document, a URL or an allow-listed stream
- The worker posts detections back incrementally, so a live feed is watchable and a long run survives a crash
- Results materialize into metrics, a knowledge object, and optionally tracked entities
- Alert rules read those metrics like any other telemetry
Point it at something you already argue about
The fastest way to judge a data platform is to give it the export nobody trusts. Bring a file you have had a meeting about, and we will ingest it, model it and show you what it actually contains.