Integrate, report and keep the books —inside your own Azure subscription.
One package, one deployment, two apps. Migrate your data, report on it, keep the books and manage the work around them — in one place, inside your own tenant.
daxia_metaEvery connection, rule, deployment and replication run — on the record, for an auditor to read.
publishes, on your callThe book of recordDAXIA EnterprisePublishes its ledger to Gold. Reporting picks it up.
Source systems replicate into Bronze, are transformed into Silver and then Gold, which DAXIA Reporting reads. DAXIA Enterprise publishes its ledger into Gold, and daxia_meta records every step. The backend is the only thing that touches a database or a source.
Bronze is a faithful copy, not an interpretation.
Replicate truncates and reloads each table from source, adds lineage columns, and reconciles three counts before it reports success.
Silver is where your rules live.
Here is where you define rules, compose tables, map your data. All rules, composes and mappings are stored in the estate’s metadata database, so an auditor can read what changed a value, and when.
Gold keeps its history at the database level.
Each Gold table is fronted by an active-only view over a history table with SCD2 versioning, converted to a SQL ledger table when the backend starts. Tamper-evident, and stated as evidence rather than prevention.
The pipeline is a recorded sequence, not a script on a laptop.
Orchestrate chains deploy, replicate and transform into pipelines that are scheduled and re-run in the application, with every run stored in daxia_meta.
It runs in your subscription
DAXIA is deployed in your tenant, your subscription. The platform operates here. Your data lives here.
The backend has no public listener.
Internal ingress only. The two frontends are the only public endpoints, and both require Entra ID sign-in on every request. Users access the frontend. The frontend communicates with the backend.
Users never hold database credentials.
The API connects under a managed identity. A person needs an Entra account and a DAXIA role — and no SQL login, no Key Vault access, no Azure RBAC.
The data plane is private by profile.
The enterprise profile places SQL, Key Vault, the registry and Azure OpenAI behind private endpoints. All in your VNet.
The one hard guarantee
DAXIA only ever reads from a source system.
A connection is used for SELECT. Nothing in the platform writes back to a source, and a migration can be re-run from scratch without changing where it came from.
The verdict you read is the verdict that was stored.
The run record is written from the same event the screen rendered — never recomputed afterwards. A row that disagreed with the line you read would be worse than no row.
Errors are exposed upfront.
Errors are exposed as they happen and as they are, and explained in plain language. They are recorded as they happen, in the log and on the run view.
Ask DAXIA, for your ease.
The Ask DAXIA agent only ever reads table and schema information, together with the context instructions. It never reads your data.
Security
Six mechanisms. Each one is checked on the server, and each one is something an auditor can ask to see.
Three identity boundaries, and none of them is yours to manage.
People sign in with Entra ID and the API validates the token on every request. The API reaches DAXIA’s own databases under a managed identity — no SQL password anywhere. Source systems are reached with the credentials you entered, the password held in Key Vault.
A role is required. A valid token is not enough.
All application roles are resolved from Entra and checked on the server for every endpoint. A directory member with no role is refused and never provisioned. Access is granted at app level, then drilled down to functionality level. Row-level security applies where it is needed, and Prod Config sets access at table level.
Gold is filtered per role, even when nobody is watching.
Prod Config curates which Gold tables each role may read. The allow-list applies to queries, exports, Ask DAXIA’s context and scheduled runs — a scheduled export runs with the authority of the person who scheduled it.
run_by ≠ run_as
Row security is enforced in the database, not the page.
Row-level rules are predicates on the Gold table. The first rule on a table restricts everyone without a grant, and the rules follow the table, not the model or the report.
Gold history is tamper-evident.
Every Gold history table is a SQL ledger table; every change is hashed into the database ledger and provably detectable, whoever made it.
The image you run is the image that was scanned and signed.
Deploys sign in with OIDC, never a stored secret. Trivy blocks a critical finding; Syft attaches an SBOM; Cosign signs the image. A tenant that wants a WAF puts Front Door in front of the two frontends.
How it deploys
A fresh tenant is one script, run from a workstation signed in to the customer’s subscription. Day-to-day rolls go through a deploy workflow that signs in with OIDC and blocks on a critical scan finding.
01Register providers and create the two Entra app registrationsidempotent
02Create the resource group. Use DAXIA’s container registry.
03Build both images inside the registry
04Run the Bicep template at subscription scope
05Initialise the metadata schema; install the medallion procedures
06Grant the managed identity its roles in each database
~60 min
First deployment of a fresh tenant, end to end. Complete deployment depends on customisation, testing and sign-off
Enterprise is the book of record inside DAXIA Reporting. It is built around four invariants, and each one is a mechanism, not a policy.
Money cannot move except through the journal.
Balances are maintained only inside the posting transaction, and a verification pass proves they still equal the lines beneath them.
Journal numbers are gap-free and allocated at posting.
Per entity, book and fiscal year, inside the posting transaction and never at draft. A reversal takes a new number. A number is never reused.
A posted journal is never edited.
Corrections post a reversing journal and a replacement, linked to the original. A closed period is reopened only by a controller, with a logged reason.
Every figure on a statement resolves to its source.
Journal lines, then the source document, then the originating system and user — in three navigations or fewer. Lineage is stored, not reconstructed.