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

Prepare Google Cloud

Chapter 2 of 7 · Section 6 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

The one project that is public on purpose

neon-law-marketing is the exception, and it proves the rule. It holds the brand marketing site as static files — a React build, no server, no database, no cluster — and its buckets are anonymously readable, because a GCS backend bucket behind a load balancer is fetched anonymously and there is no service-account path for one.

So it carries a project-scoped override of constraints/iam.allowedPolicyMemberDomains. The organization-wide constraint is untouched, and every runtime project still inherits it.

Runtime projectsneon-law-marketing
Bucketsprivate, objectAdmin to named identitiesallUsers objectViewer
Contentsclient documents, exports, logspublished marketing HTML
Servesauthenticated requestsstatic files only
Provisionerops gcp setupops gcp marketing setup

navigator ops gcp marketing setup --dry-run
navigator ops gcp marketing setup

Presenter notes

TenantRole::Marketing makes the separation a compile-and-test invariant rather than an operator's memory: each provisioner refuses the others' project before the first GCP call, and a dry-run test asserts a marketing run creates no cluster, network, or documents bucket. A client document cannot land in the project whose buckets are world-readable, because the command that creates documents buckets will not run there.


The certificates are the part worth dwelling on. A classic Google-managed certificate is validated by a CA calling the load balancer, so DNS has to point there first — moving a live hostname takes it down for the length of issuance, and Cloud CDN and the HTTP-to-HTTPS redirect both sit in the validation path. ops gcp marketing setup uses Certificate Manager with a DNS authorization instead: Google returns a CNAME, the CA reads that record, and the certificate reaches ACTIVE while the hostname still serves its current site. Publish the CNAME first, wait for ACTIVE, then move the A record — the cutover carries no TLS gap.


Name the collision before someone discovers it. A hostname serves one thing, and the matrix on the next slide gives www.neonlaw.com to the neon-law-prod deployment — its NAVIGATOR_PUBLIC_HOST, certificate, and authorized OAuth redirect URI are all issued for that name. A marketing site held it first, and the conflict was settled by retiring that site rather than rehoming it: the load balancer and certificate chain are gone, and only the bucket remains, as an archive nothing routes to. That is the cost worth naming — a static site is cheap to publish and awkward to unpublish, because the hostname is the part two things want.

www.neonlaw.com was the same collision, and it has since been settled the same way: the Foundation's Navigator deployment now holds that exact name and serves it, and the marketing site no longer routes there. neonlaw.com redirects to it and serves nothing itself.

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