Neon Law
  • Services
  • Book Consultation opens in a new tab
  • Sign in

← Operating Neon Law Navigator

Prepare Google Cloud

Chapter 2 of 7 · Section 4 of 45

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 Navigator deployment matrix
  • 7. The `/app` mount and HTTP route ownership
  • 8. `neon` — the whole brand seam
  • 9. Live rollout checkpoint
  • 10. Set one site to one version

3. Provision the Infrastructure

  • 11. The APIs that light up
  • 12. Network and storage buckets
  • 13. How a Project portal reaches a client
  • 14. A document's bytes and authorization are separate
  • 15. A private image registry
  • 16. The cluster comes up
  • 17. What setup owns — and what follows it

4. Environment Matrix

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

5. Configure the Trust Boundaries

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

6. Ship the Instance

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

7. Wrap Up

  • 45. Canonical references

Dry-run first

Before you change anything, read the plan. The --dry-run flag records every REST call and gcloud shell-out and prints them without sending traffic:


cargo run -p cli -- ops gcp setup --project-id your-project-id --dry-run

Presenter notes

gcloud has no universal dry-run equivalent, so we built one — it prints the plan without sending traffic or touching your gcloud session. You will see the plan in order: REST calls that enable APIs, create the VPC and subnet, create a regional Cloud Router and Cloud NAT, and create five buckets. It then creates a deployment-specific Google service account and its direct Secret Manager, bucket, and signed-URL permissions. A single-project install also provisions its private Artifact Registry; our three deployments instead point at the shared ghcr hub. The last stages grant registry access, reserve the gateway IP and create the cluster, then attach Kubernetes Workload Identity and the cluster integrations. Read the project, region, and every resource prefix, then drop --dry-run to execute. Every step is idempotent, so a re-run after a partial failure never produces duplicates.

The CLI waits for each control-plane write at that API's own operation endpoint before starting its dependent step. Compute VPC operations are global; subnet, Router, and NAT operations are regional. Their REST resources report completion with a DONE status. Service Usage and Artifact Registry use Google long-running operations and report a true done flag. A newly enabled Compute API can still return SERVICE_DISABLED for a short propagation window after its Service Usage operation completes. The VPC step recognizes only that exact compute.googleapis.com response, prints the bounded retry count, and retries the idempotent insert for up to two minutes. Other 403 responses fail immediately because they may be real IAM or organization-policy problems. If a terminal or network interruption stops setup after GCP accepted a write, run the exact same deployment command again. Existing resources return idempotent conflicts. The pipeline generates no credential of its own, so a run — first or tenth — prints no secret for you to record. The store is SurrealDB, and its endpoint and root credentials come from your store provider.

Live setup prints sixteen secret-free stages, including the project and exact resource name:


gcp setup [neon-law-stg] 01/16 enable required APIs
gcp setup [neon-law-stg] 04/16 Cloud Router neon-law-stg-router and NAT neon-law-stg-nat
gcp setup [neon-law-stg] 05/16 private assets bucket neon-law-stg-assets
gcp setup [neon-law-stg] 09/16 private applications bucket neon-law-stg-applications
gcp setup [neon-law-stg] 12/16 runtime identities and IAM bindings (neon-law-stg-web)
gcp setup [neon-law-stg] 13/16 container registry access
gcp setup [neon-law-stg] 14/16 GKE Autopilot cluster neon-law-stg
gcp setup [neon-law-stg] 15/16 Kubernetes workload identity and cluster integrations
gcp setup [neon-law-stg] 16/16 projects/neon-law-stg/locations/us-west4/keyRings/navigator-secrets/cryptoKeys/deployment-config
gcp setup [neon-law-stg] COMPLETE

Long-running REST writes print the service, operation ID, scoped polling path, and DONE. Output never includes the store URL, access token, service-account key, or any other secret value, and the pipeline generates no credential that would need printing.

On a newly activated project, one of these additional lines can appear between stages 1 and 2, depending on whether the activation window meets the VPC insert or its operation poll:


gcp api [compute.googleapis.com] activation is still propagating for neon-law-stg; retrying VPC neon-law-stg-vpc (1/25)
gcp operation [Compute] operation-123: compute.googleapis.com activation is still propagating; retrying poll
View all slidesOpen display
← PreviousNext →
Neon Law
  • X opens in a new tab
  • LinkedIn opens in a new tab
  • YouTube opens in a new tab
  • API opens in a new tab
  • Blog opens in a new tab
  • Contact
  • Glossary opens in a new tab
  • Navigator opens in a new tab
  • Notations opens in a new tab
  • Presentations opens in a new tab
  • Privacy opens in a new tab
  • Team opens in a new tab
  • Terms opens in a new tab
  • Testimonials
  • UX opens in a new tab
  • 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
  • Justice Technology AssociationMission-Aligned Partner opens in a new tab

Attorney advertisement. Nothing here is legal advice without a signed retainer for an active project. Past results do not guarantee future outcomes.

© 2026 Shook Law PLLC

NEON LAW® is a registered trademark of Shook Law PLLC, U.S. Reg. No. 6,325,650 opens in a new tab

Powered by Neon Law Navigator 26.10.4

Everyone deserves to be seen. Made with ❤️ in 🗽.