Built, and running in production.
Twenty-one controls across seven areas, each written from the code that deploys rather than from an architecture document. Tenant isolation, the access model, audit behaviour and the AI subprocessor, set out for review.
How to read this page
two words, used precisely, on every row below
- Implemented and running in the deployed application.
- Implemented, and a test asserts it on every build.
- Built, and going into the first deployment this term.
Controls, by area
21 controls across 7 areas · open any one
Tenant boundaries
2 liveEach institution’s record is separated at the database-client layer, not by convention in each query.
Tenant isolation enforced by the database client itself
The tenant scope is applied by the data-access layer rather than by each call site, so an individual query cannot decline it. Enforcement is switched on in production infrastructure and asserted in continuous integration against a real database across read, count, update, delete, cross-tenant create, missing-context and concurrent-context cases.
Every table classified before it can ship
A model added to the schema without a tenancy classification fails the build. The classification is a registry, so the decision is reviewable rather than implicit.
Access and the seat model
4 livePermissions attach to the durable seat, not to the person holding it, and follow a three-state lifecycle.
Seat lifecycle: shadow, active, alumni
An incoming officer is added to a seat before their term begins with read-only access to the seat’s record, including the knowledge cards scoped to that seat. On the start date it becomes write access. An outgoing officer moves to alumni: the record stays, the access does not.
Two-party administrative succession
An outgoing administrator keeps authority until a named successor accepts. The grant and the step-down then happen together in one transaction, so there is no window where nobody can approve and no shared account in between.
Capability-scoped administration console
Sixteen named capabilities across three strictly nested staff tiers. Navigation is derived from the capabilities the signed-in seat actually holds, so a reviewer is never shown a surface they cannot use.
Institution-wide approval override
A Director-tier capability, approval.override, can force-approve or force-reject any request in the institution, bypassing both gates. It is the highest-privilege action in the product.
Audit and evidence
2 liveWhat can be proven after the fact, and what cannot.
Append-only audit trail, allows and denials
Privileged actions append an audit row, and refusals are recorded as well as successes, which is what lets an office prove that something did not happen. Rows are only ever created: no update, delete or upsert against the audit table exists anywhere in the application.
Decisions record the deciding seat
Each approval step permanently records who decided, the seat they held at that moment, what the request moved from and to, and, where a backup approver acted, that it was done on another seat’s behalf.
Data handling
5 liveWhere the record lives and how it leaves.
Encryption at rest
The database and the document bucket are encrypted at rest, and the container registry uses managed keys.
Documents served only through expiring signed links
No document is served from a raw object URL. Every download is a signed link that expires in ten minutes.
History cannot be deleted
A seat carrying assignments, holdings or knowledge is refused deletion and must be retired instead. An active assignment is revoked to alumni rather than removed. This is deliberate: it is the property the whole product rests on.
Encryption in transit
All traffic is redirected to HTTPS at the edge, with a TLS 1.2 minimum.
Backups and point-in-time recovery
The database takes automated daily backups in a fixed window, has deletion protection enabled, and takes a final snapshot on teardown. The document bucket has object versioning enabled, so an overwritten file can be recovered.
Tenure AI
3 live1 in pilot validationThe part of the system that sends content outside our infrastructure. Named precisely, because a security review will ask.
Permission filtering before retrieval
The corpus is assembled under the asking person’s own permissions before anything is ranked or sent, so the model is never given records that the person asking could not already open themselves.
The assistant runs inside our own cloud account
Answer synthesis runs on a managed model service inside our own cloud account. It authenticates with the task role the application already runs under, so there is no long-lived model API key to rotate or leak. Three things are sent: the records retrieved for a question, the contents of a text document when a summary is requested, and the instruction typed into Draft Assist, so some of your record does leave our own infrastructure at those moments.
Retrieval quality
Retrieval is keyword matching over five record kinds, knowledge cards, document titles and descriptions, approvals, events and organization records. Answers link the records they came from.
Behaviour when the model is unavailable
If synthesis is unavailable, the ranked and permission-scoped sources are still returned. The assistant panel says which happened; the search page shows the sources without distinguishing an unavailable model from a query that matched nothing.
Identity and integrations
3 live1 in pilot validationWhat Tenure connects to, and what it does not.
How people sign in
Accounts live in a managed identity service and each person signs in with their own email and password, a 12-character minimum requiring upper case, lower case, a number and a symbol. Credentials are verified server-side against the pool rather than through a hosted redirect, and account recovery runs to a verified email address and nothing else. Accounts are still created by us in advance against a named person: there is no public registration and no self-service signup. Authentication and membership are separate questions, holding a the identity service account is not access to an organization, which is decided from the roster.
Multi-factor authentication
Time-based one-time-password multi-factor is available on the user pool and a person can enrol an authenticator app.
Calendar subscription
A per-user signed feed that Outlook, Google Calendar and Apple Calendar can subscribe to with one link. No account connection and no password shared; the feed shows only what that person is already allowed to see.
Spreadsheet and document handling
Budget spreadsheets are imported with column matching, and PDF, Word, Excel and PowerPoint files open in the application. Text files and spreadsheets can be edited in place with a save-conflict check.
Compliance
Stated as posture, not as certification. None of the below is an attestation by a third party.
Security issues, in both directions
To report one: email security@tenurework.com. It reaches both founders directly. We will confirm receipt and tell you what we are doing about it, we do not have a bug bounty, and we will not argue with you about severity.
And in the other direction, which an earlier version of this page left out entirely: if we become aware of an incident affecting your organization’s records, we will tell you without undue delay and within 72 hours of becoming aware: what is known, what is being done, and what we suggest you do. Notice goes out on what is known at the time rather than waiting for a complete picture. That commitment is written into the terms.
The full subprocessor list, with what each one touches and where, is on the privacy page.
Documents
The privacy notice and terms are drafts written by the founders and have not yet been reviewed by counsel. They are published because an institution deserves to see the current position, not because they are finished.
There is no company to contract with yet. Tenure is not an incorporated entity, it is two people, named on the story page. That means no corporate liability shield, no professional indemnity or cyber insurance, and nobody who can sign an institutional agreement today. If your procurement process requires a counterparty, insurance certificates or liability caps, that requirement is not met, and no amount of the detail above changes it. It belongs at the top of a security review, not discovered at the end of one.
