Versions, never edits
Every change creates a new version. Stored versions are never edited in place, and the database refuses attempts to tamper with them.
Documents, records, signatures, workflows, retention, and a verifiable audit trail, in one engine that people and AI agents use under the same rules. Each industry is configuration, not code.
A document is a controlled item with a number, and its content evolves through versions. A record holds typed fields instead of a file. Both keep their full history.
Every change creates a new version. Stored versions are never edited in place, and the database refuses attempts to tamper with them.
Each file is one encrypted content object with its own key. Its digest is checked on every read, and PDF/A viewing copies and extracted text are derived from it.
Every file is scanned for malware. A file is served or published only after the scanner answers clean.
Case records follow a lifecycle, such as a CAPA or a change request. Event records capture something that happened, such as a cleaning or an exceedance.
Captured fields lock when they are captured. A correction is an amendment with a reason, and the original value stays visible.
An event links to the procedure version in force when it happened, and that link never moves.
Lifecycles are state machines you configure, checked for completeness before they load. Workflows move items through them, and each signature records what the approval meant.
Every state must handle or explicitly ignore every event. Exhaustive transition tables are generated from each lifecycle as evidence for your validation.
Draft, review, and approve into a new major version, effective now or at a scheduled time. The previous effective version is superseded in the same step.
An author cannot approve their own work, and the refusal is recorded.
Each signature records its meaning, binds the exact version and viewing copy the signer saw, and requires a fresh sign-in. It adds a signature page to a new PDF/A.
Steps of parallel tasks, with delegation and overdue marking. Completing a task takes the assignee's own signature with the meaning of the step.
A version going into force starts a training campaign for the people in the role, and each acknowledgement becomes a training record. Periodic reviews start on schedule.
Each change is written to a hash-chained ledger in the same transaction as the change itself. Signed, timestamped checkpoints let anyone verify the history offline.
The audit entry and the change commit together, or neither does.
Checkpoints are signed with a key the database cannot use and timestamped by an independent RFC 3161 authority.
Views and downloads are logged before content is served, at the level the deployment sets. Reads of the personal data held about a person are logged at every level.
Disclosure bundles, exports, and period evidence are verified with no network and no database.
A background verifier re-checks the ledger all the time and raises an alarm if it stalls.
A refused sensitive action is recorded in the ledger, without naming anything the person may not see.
Retention is set per record type, and the longest period that applies wins. Holds stop the clock, people approve every disposal, and personal data can be erased without breaking the audit trail.
Periods per record type, including permanent retention, above a minimum the deployment enforces.
A hold blocks disposition and destruction, whatever the schedule says. Narrowing a hold needs approval.
The system proposes what is due, and records administrators approve or reject each disposition.
Destroying the key makes the content unreadable. The record's identity and history remain, and the ledger still verifies.
Personal data about each person that records concern sits under its own key. Erasure destroys that key and keeps the records and their links.
The ledger names people by stable IDs. Display names are resolved when read, under their own permission.
Ranked full-text search applies permissions inside the same database query, so results and counts never include what a person may not see.
Field-weighted ranking in each language the deployment uses, with exact and prefix filters on your own document references.
Only what the person may read comes back, in complete pages. Hidden and missing records look the same.
Page tokens are bound to the person and the filters, so pages stay stable while new content is indexed.
With an optional text extraction service, the text of stored files becomes searchable, including files stored before it was switched on.
Changes below the deployment ship as configuration releases: reviewed as a diff, approved by people other than the author, checked against existing data, and live in seconds without a restart.
Every request and job runs under exactly one configuration release, and its digest is stamped on every audit entry.
When a lifecycle changes, existing items move to the new states through audited transitions.
The read-only deployment profile has its hash recorded at every start, so any change to it is visible.
No industry concept lives in the engine code. Each vertical is a configuration pack.
Every staff capability is reachable over MCP, under the authority of the person the agent acts for. The deployer decides how far agents may go, and the audit trail shows who did what.
142 operations are reachable through MCP, each governed by policy and placed in a risk tier that decides whether an agent may read, write, must wait for a person, or may not act at all.
An agent gets only what its person may do and the agent policy allows. A missing or failing agent policy denies.
High-risk actions wait for the person to confirm them out of band, with a fresh sign-in. The agent cannot approve its own request.
Under the regulated preset, only named people approve and sign. Under the flexible preset, the deployer opens individual permissions, and an agent's signature always says it was the agent's.
When an agent reads another party's text or unscanned content, its session trust drops, and lower trust narrows what it may write.
The server passes the official MCP conformance scenarios that apply to a product server, and acts as an OAuth 2.1 resource server.
The same contract is served as gRPC, gRPC-Web, JSON over HTTP, and resource-style REST with a generated OpenAPI, and as MCP for agents. You build against one contract.
A release that removes or changes a field, a method, or an error mapping is refused before it ships. Additive changes pass.
Committed events reach consumers with their own cursors, over signed webhooks or an optional NATS JetStream bridge. Webhooks follow Standard Webhooks and CloudEvents and carry no content.
Wait up to a timeout or take a handle, then poll, or get a webhook, NATS, or MCP notification.
Types, lifecycles, signature meanings, roles, and labels are readable, so your application can render itself from configuration.
Any OIDC provider for sign-in, and SCIM 2.0 to provision people and map directory groups to roles.
One setting puts your product name on every customer-visible surface Tabellix provides, from the agent server and confirmation text to evidence titles and webhooks.
The QMS, banking, case management, or public records product built on Tabellix is the application. Tabellix is the record layer underneath it, embedded and shipped under your brand, or used directly through its API and MCP.
OEM and white labelTell us what you build and who audits it. We'll show you how Tabellix fits into your product and how it answers your auditors' most common questions.