Neon Law
  • Fractional CTO
  • Litigation
  • Fractional GC
  • Legal Services
  • Sign in
← Operating Neon Law Navigator

Provision the Infrastructure

Chapter 3 of 7 · Section 15 of 44

Sections

1. Intro

  • 1. Deploy your own
  • 2. Agenda

2. Prepare Google Cloud

  • 3. Bring your own project
  • 4. Dry-run first
  • 5. Private assets and domain restricted sharing
  • 6. The one project that is public on purpose
  • 7. The Navigator deployment matrix
  • 8. The `/app` mount and HTTP route ownership
  • 9. `neon` — the whole brand seam
  • 10. Live rollout checkpoint
  • 11. Set one site to one version

3. Provision the Infrastructure

  • 12. The APIs that light up
  • 13. Network and five buckets
  • 14. How a Project portal reaches a client
  • 15. One matter's document never backs another matter's
  • 16. A private image registry
  • 17. The cluster comes up

4. Environment Matrix

  • 18. Three operating modes, two deployment profiles
  • 19. Configuration precedence: the first source wins
  • 20. Local dev controls: inputs read by `navigator dev`
  • 21. Local runtime: what `.devx/env` generates
  • 22. The store: SurrealDB
  • 23. Where SurrealDB authorization lives
  • 24. Deployed runtime: core web and worker wiring
  • 25. Deployed runtime: identity and access
  • 26. Deployed runtime: email, signatures, and billing
  • 27. Deployed runtime: repositories, content, AI, and scheduled work
  • 28. Provision and ship: variables read by the operator CLI
  • 29. Ancillary operations and opt-in test controls
  • 30. When simulated data appears

5. Configure the Trust Boundaries

  • 31. Secrets: the invariants that gate the boot
  • 32. Sign-in: bring an OIDC provider; passwords live there, not here
  • 33. Role rings: who can do what
  • 34. Provider signup and parity across the deployments
  • 35. The external surface — every third party, in one place
  • 36. The two service deployments
  • 37. Security architecture

6. Ship the Instance

  • 38. Ship and verify
  • 39. Post the verified handoff in `#navigator`
  • 40. Point your domain at the instance (optional)
  • 41. Drive it from the CLI
  • 42. Make it yours — white-label under your own brand
  • 43. This is how we set up Neon Law Foundation

7. Wrap Up

  • 44. Canonical references

One matter's document never backs another matter's

Inside the documents bucket, two matters never share an object:

  • Content addressing dedupes within a matter, never across matters. A governed expunge deletes an object only when no asset row on another matter still points at it, and says so in the log when it declines.

Presenter notes

An object key in the documents bucket is blobs/<sha256> — the address is the content hash, so filing the same bytes twice costs one object instead of two. That is the right instinct for storage and the wrong one for a law firm, because the identical PDF is exactly the case you should expect: a blank government form, a recorded deed, a protective order, an exhibit filed on two related matters. Dedup on the hash alone means one object backs two clients' documents, and the matters are now coupled through a bucket key that nothing in either file mentions.

That coupling only shows its teeth on deletion. A governed expunge — a privilege clawback, a sealing order, a lawful deletion request — rewrites the matter's repository history and deletes the document's bytes. If the object were shared, deleting it on the sealed matter would also empty an unrelated client's file, on the authority of an order that never named them. If that second matter were under a preservation duty, the firm would have destroyed evidence in a case that had nothing to do with the one it was acting on, and it would have no record of doing so.

So dedup is scoped to the matter: store::documents::ingest_bytes reuses an object only when an asset row on the same project already points at it. Two matters holding the same exhibit get two objects. The storage cost is a rounding error against a single spoliation finding.

Scoping ingest fixes what gets written from here on; it does not unshare what was already written. So expunge carries the matching guard: before deleting a key it asks whether an asset row on another matter still references it, and if one does it keeps the object and emits a warning naming the key. That is deliberately loud rather than silent — an order that requires the bytes actually destroyed now needs a person to reach the other matter and deal with it there, which is a decision for a lawyer and not for a delete loop. An asset row carrying no project at all does not block the deletion: it is unattached rather than another matter's, and letting a stray row veto a privilege clawback would defeat the one thing this primitive exists to do.

Together the two rules give you the property that matters when you are the one answering for the file: no matter's documents are held hostage to another matter's, and no order deletes bytes it did not name.

When multiple deployments share a project, pass their explicit bucket, SQL, VPC, subnet, cluster, namespace, gateway-IP, and service-account variables. The single-project <project>-suffix defaults remain convenient for an independent OSS install, but the three-row Navigator matrix never relies on them.

View all slidesOpen display
← PreviousNext →
Neon Law
BlogContactFoundationNavigatorPresentationsWorkshops
Contact us — contact@neonlaw.com+1 510 800 2080
  • Nevada
    5150 Mae Anne AveSte 405-9002Reno, NV 89523
  • New York
    12 E 49th St18th FloorNew York, NY 10017
  • Washington
    720 Seneca StSte 107-715Seattle, WA 98101

© 2026 Shook Law PLLC and Neon Law Foundation

This is attorney advertisement. Nothing on this site is legal advice. Neon Law is the trade name of Shook Law PLLC, and an attorney-client relationship begins only with a signed retainer between you and Shook Law PLLC. Published flat fees cover the scope each one names and do not include third-party filing fees. Every legal matter is different, and past results do not guarantee a similar result.

Shook Law PLLC is a proud supporter of the Neon Law Foundation , a 501(c)(3) nonprofit.

Neon Law Foundation is a Nevada nonprofit corporation and a 501(c)(3) tax-exempt organization. It does not practice law and cannot represent you.

Nothing on this site is legal advice, and nothing here creates an attorney-client relationship.

5150 Mae Anne Ave Ste 405-9999, Reno, NV 89523
support@neonlaw.orgTransparency & public disclosures

Powered by Neon Law Navigator #26.8.20-hotfix.4

Open source — neon-law-foundation/navigator GitHub stars 2