chandlery

Six small services keep the record and its rules.

Chandlery is a small trusted base of six versioned services under an application layer that is trusted with nothing. Anyone can write an app, because the guarantees are enforced in the services, not in the apps.

What is ours

The platform owns what must stay true whatever an app does, and every place where matter content meets a person, a model or the outside world. What an app does with that is the app's. The firm's own systems, accounts and judgments are the firm's.

  • The matter graph and its rules. Grants, walls, acceptance, provenance and the audit trail.
  • Retrieval. Five read primitives, answered as the person asking.
  • The sandbox. Where every app that reads the graph runs, with no network and no keys.
  • The gateway. The only route to a model.
  • The app screens. Every surface where anything derived from a matter meets a person, wherever it is embedded.

It is not the firm's whole data environment. It is one governed environment, kept small, placed beside the firm's other systems: billing, marketing, the intranet, and apps that never touch a matter. Its value is in being small, with few crossings, each one visible.

The six services

  • Store keeps each document's bytes, addressed by their hash, under the matter they belong to.
  • Query answers retrieve, extract, compare, aggregate and cite, as the person asking and within their grants.
  • Gateway is the only route to a model: the firm's approved providers, within budget, every call recorded.
  • Policy holds the firm's people, staffing, walls and grants, issues every token, and starts each app in its sandbox.
  • Changesets stages what a model or an app proposes, and makes it part of the record when someone allowed to accept it does.
  • Audit keeps a hash-chained log, so that a change to the past shows.

Nothing a model proposes enters the record until a lawyer accepts it.

What stays true whatever an app does

These hold in the database and the services, beneath every app. The conformance suite checks them on both deployment targets.

  • Every answer rests on passages: exact offsets into a document's extracted text, which round-trip to the character.
  • Nothing in the record is edited or deleted. It is superseded, and what it replaced stays. A matter is dropped whole, or not at all.
  • Permission is enforced in the database, on every query, and no service can step around it.
  • What a model proposes is private to the run that made it until a person accepts it, and accepting is itself a grant.
  • A walled matter answers empty, with no error. An operation outside a person's grant is refused, with a reason an app can act on.
  • Figures across matters cover only what the person may see, de-identified and thresholded.
  • An app holds no key. Every call carries a short-lived token bound to the one service it is for.
  • Matter content is shown to a person only in the firm's own interface, watermarked with their name.
  • Every row in the record says who or what asserted it, how, on what evidence, and who accepted it.

Where it runs

Two targets, from the first day: Vercel, and any Kubernetes. Both run the same code and pass the same conformance suite, and nothing depends on a feature only one provider offers, so a firm can move its instance without rewriting it.

  • Vercel
  • Kubernetes
  • Postgres 17
  • Any S3-compatible store