Record integrity is the whole product

How the records hold up.

An electronic maintenance record is only worth what an auditor can trust about it years later. So integrity is not a feature here — it is the thing every other decision bends around, enforced by the database and provable off a file, not asserted in a brochure.

The ordering is deliberate

Integrity leads. Confidentiality does not.

Most software ranks confidentiality first. We don't, because a corrupted maintenance record is a safety event while a leaked one is a business problem — and that single inversion drives every trade-off below. We prefer controls that make tampering detectable and provable over controls that merely make data secret.

1 · Integrity of records

A silently altered compliance record, counter or signature can put an aircraft in the air that should not be. First, always.

2 · Non-repudiation of signatures

A sign-off that cannot be proven to a specific certificated individual fails FAA acceptance — and takes the whole eLogbook with it.

3 · Availability

Utility and fire contracts have hard availability terms; a system down in a dispatch window grounds the aircraft.

4–5 · Confidentiality

Fleet position, contracts, certificate numbers — protected, but ranked below the safety-critical guarantees, not above them.

Append-only, structurally

On every airworthiness table — compliance records, sign-offs, counters, the audit log — UPDATE and DELETE are revoked at the database role level. Not a convention the code follows: the grant does not exist for any application role, and the app connects as a low-privilege role that holds no DDL rights. A correction is a new row that supersedes the old one, with its reason and author; the original stays retrievable forever.

Tamper-evident, and verifiable off a file

Each record is hash-chained per tenant, so the middle of the chain cannot be edited without detection. The whole record set exports carrying the canonical body that was hashed, and a standalone verifier — no database, no dependencies — recomputes every chain from nothing but the file and sha256. A tampered row, a tampered body, or a removed row fails, naming the exact seam. Verification failure surfaces loudly as an integrity incident; the chain is never silently re-hashed.

Signing is not logging in

Applying a signature is a separate act from authenticating a session. The signing PIN is never compared to a stored value — it derives the key that produces the signature, so a wrong PIN yields a wrong signature the server refuses. A deliberately patched client that tries to skip the check is part of our test suite: its signature must fail verification on every push.

Closed by default

No self-service registration and no open enrollment. Access exists only where a named human has been provisioned a seat by their operator, and it ends when the operator ends it. Admission to the system is a separate and equally hard gate from the authority to sign a record — a leaked URL yields nothing.

Isolation that is structural

Tenant separation is row-level security in the database plus a hash chain per tenant — not a filter the application remembers to apply. A cross-tenant identifier is indistinguishable from a record that does not exist. The self-hosted tier carries the same guarantees inside the operator's own environment.

The record is the authority

The platform never says “airworthy.” It reports what the records know and what the engine derives, and it refuses where the record cannot support an answer — under § 91.7(b) the airworthiness determination belongs to the pilot in command, and the software does not pretend otherwise.

Restraint is a feature

What we deliberately do not do.

Some things are dangerous precisely because they are convenient. Stating them keeps them from being “helpfully” added later.

No admin override on a signed record

There is no feature that edits a signed record. Corrections are superseding records; if someone asks for the override, the answer is no, and the reason is § 43.9.

No AI in the trust path

No model computes due status, evaluates directive applicability, or produces a signature. Drafting prose for human review is the entire permitted scope.

No auto-remediation of integrity failures

A failed hash is escalated to a human, never repaired by software. Silent self-healing is how tampering hides.

No session-replay or third-party analytics

They exfiltrate exactly the data being protected and break the content-security discipline the browser layer is held to.

See it, then verify it yourself.

The demo recomputes its chains live on every page load; the sample export verifies offline in your own shell.

Open the live demo Download & verify the records