Deny by default
Nothing is allowed unless a rule allows it. A policy error denies instead of guessing.
Every access decision is evaluated by policy, denied by default, and recorded with its reasons. An explicit denial always overrides a grant, and when a dependency fails, Tabellix fails closed.
Access rules are code in the signed configuration release, reviewed as a diff and approved by people other than the author. Each decision carries the reasons that produced it.
Nothing is allowed unless a rule allows it. A policy error denies instead of guessing.
Rules are named permits and forbids. A forbid always overrides a permit, and a time-limited grant on an object never lifts a forbid.
Every decision carries the reasons behind it, so a refusal can be explained and an allowance can be audited.
Rules decide on the person and their roles, the action, the type, the creator, the version and its state, the cases an object belongs to with their access fields, active grants, and an open break-glass session.
Policies can be checked and their decisions tried offline, before a release is submitted for approval.
An author cannot approve their own work, and the refusal is recorded.
People sign in through any OIDC provider and are provisioned over SCIM 2.0. Roles are defined in Tabellix and assigned from your directory groups.
Company staff, invited outside accounts and optional vendor support each come from their own issuer. The server refuses to start if the support issuer is the company's.
Tokens for the company surface, the outside-recipient surface and MCP must name different audiences, and a token for one is refused by the others.
SCIM pre-provisions people, binds the first sign-in, maps directory groups to roles, and disables accounts without deleting their history.
Signatures, redaction approval, erasure and break-glass require an interactive sign-in inside the deployment's window.
Systems that capture records authenticate as listed integration clients, never as a person. A token with an empty subject is refused.
Invited external accounts are trusted on the recipient surface only, and a second factor can be required from their provider.
Every stored file is its own encrypted content object with its own key, and its digest is checked every time it is read. Personal data about each person sits under that person's own key.
Each file is encrypted with its own data key, held under a key manager the database cannot use.
Personal data about each person that records concern is encrypted under its own key, so it can be erased by destroying that key.
The digest is checked on every read and re-verified on a schedule. Damaged content is never served again.
TLS 1.2 and 1.3 with modern suites, or an encrypting service mesh you declare. Every client verifies its server, and a process with an unencrypted link does not start.
Cryptography runs in FIPS 140-3 approved-only mode, with ECDSA P-256 for signatures and licenses.
Files are served as attachments with headers that stop browsers from running active content, and every download is logged before its first byte.
Every stored file is scanned for malware before it is converted, indexed or served. Infected content stays encrypted, every read of it is refused, and it is never converted, indexed or served.
A file counts as clean only when the scanner explicitly says so. A scanner that is down releases nothing.
A file that hits a scanner limit is an incomplete scan, never reported clean. Uploads larger than the scanner can scan are refused before they start.
A lifecycle transition can require a clean scan, and a scheduled publication checks again when it fires.
A file that is not what it claims to be, or a hostile document, is refused when it is committed. Encrypted files are refused by default.
An agent that reads unscanned content loses session trust, which narrows what it may write.
Any clamd service, or any ICAP service following RFC 3507, supplied by the deployer.
The built-in converter, the renderer and the text extractor run as separate, isolated helper services with no network egress, so a hostile file has nowhere to go.
The built-in converter carries no credentials and cannot reach the network. The renderer and the extractor run isolated the same way.
Redacted copies are produced as image-only PDFs by an isolated rasterizer, reached over mutual TLS, so no text survives under a redaction.
The converter refuses documents with constructs it cannot render faithfully, such as tracked changes, and the refusal happens before storage.
Upload metadata, webhook and MCP payloads, policy bundles, scanner replies, share addresses and content checks are fuzzed.
When someone needs access they do not normally have, break-glass gives it for a limited time, on the record, and under review.
Break-glass exists only where the deployment profile allows it.
Opening a session requires a justification and an interactive sign-in.
The session ends on its own clock, and opening it raises an alert.
A built-in review record and workflow follow every session, and each access in it is logged with the session.
Inspectors, auditors and counterparties get scoped, expiring, watermarked access without a user seat, and you get a report of everything they fetched.
A share never serves more than the sharer may still read, checked on every page. Shares expire, can be revoked, and can require an agreement before any content.
Read-only access for a regulator or auditor: fixed in scope, at most 72 hours, the opener's own access asked again on every serve.
Recipients see watermarked page images by default, with downloads only where allowed.
Outside recipients use a separate surface with sessions of their own, apart from the staff API.
Off by default. A vendor's support session is bounded, time-limited, approved by the company with a fresh sign-in and never by the requester, and every read lands on the company's own access log first.
Creating, widening or ending a share or an inspector session is never an agent's act under the regulated preset.
Each company is provisioned with its own database, encryption keys, storage and audit trail.
A dedicated database per company, in its own namespace, with dedicated application and worker processes.
A key namespace per company in the key manager, with keys the database cannot use.
A company's history is chained and sealed on its own, and verifies without anyone else's.
Tabellix runs on your Kubernetes under the strictest standard pod profile, behind default-deny network policy, from images that contain one static binary and nothing else.
Each image is one static binary, running as a numeric user on a read-only root file system.
Every workload meets the Kubernetes restricted profile, checked live by an installation check.
Network policy denies by default and allows each workload only what it needs, including the helpers.
Admission policies refuse root, missing seccomp, writable roots, added capabilities, host ports and host processes, and check image signatures.
Authentication failures, policy denials and rate refusals leave as OpenTelemetry logs over TLS, with no tokens, content or hidden names, and an outage of your collector does not slow requests.
An unavailable dependency answers with a reason and a retry time, and readiness reflects what each role needs. Policy errors fail closed.
Tabellix ships as binaries with signed software bills of materials. Licenses are verified offline, release verification needs no network, and the software never contacts the vendor.
CycloneDX and SPDX bills of materials, signed and bound to the image digest, with an image vulnerability scan and a known-vulnerability check in the build gate.
Release verification is built for air-gapped sites: checksums and signatures are checked with no network, against a key fingerprint the customer types in.
The license is signed and checked before any of it is read, never blocks reading or exporting existing records, and needs no connection to the vendor.
No cloud-provider dependency in the core and no phone-home, so it is built to run in air-gapped networks.
Tabellix never ships its source, its CI or its development environment, and a tool checks every shipment against an allowlist.
Every shipped and mirrored component passes a license policy check, and the notices are generated.
No. Hidden and missing records look identical in lists, search, counts, errors, the security event stream and the denial records.
Nothing new is released. A file is converted, indexed or served only after the scanner explicitly answers clean, and infected content is kept encrypted with every read refused.
Vendor support access is off by default. When a deployment enables it, each session is requested by the vendor, approved by the company with a fresh sign-in, bounded in time, and every read is written to the company's own access log before it happens.
Break-glass is available only where the deployment allows it. It requires a justification and a fresh sign-in, ends on its own clock, raises an alert, and is always reviewed afterward.
No. Licenses are verified offline, release verification needs no network, the core has no cloud-provider dependency, and the software never calls home.
Tell us what your security team needs to see. We'll answer with how Tabellix decides, hides, encrypts and records.