Projects & provisioning¶
A project is a provisioned environment on a target — a local workspace, or a GCP project with its bucket and Firestore. The studio remembers them in a registry so you name a project once and reuse it.
The registry¶
One human-readable file, ~/.docsynth/projects.yaml (or $DOCSYNTH_HOME). It is a
cache over what each target already knows, so a lost or hand-edited file is
never fatal — provisioning is idempotent and re-discovers. Two hard rules:
- It stores secret names only, never values — keys live in Secret Manager (① no secret leak).
- Adding a project that already exists adopts it rather than erroring, mirroring idempotent provisioning.
Each entry records the target, id, region/bucket (or root), what provisioning created, the secret names present, and the last run.
Getting a project¶
- Provision a new one. First use of a new
--projecton a target stands it up:localmakes a workspace dir;gcprunsdeploy.sh provision + build(APIs, bucket, Firestore + claim index, service account/IAM, image — a few minutes). - Onboard an existing one (
--onboard). Registers an already-set-up cloud project with its real region/bucket without creating anything — for a project you (or a priordeploy.sh provision) already stood up. Cloud only; a local workspace has nothing remote to adopt. - Pick a saved one. Interactively, the project screen lists saved projects (the default starred) plus "provision new" / "onboard existing".
Subcommands¶
studio is a command group; alongside status:
docsynth studio projects— list saved projects.gcp crawler-rag-data-2026 us-central1 · gs://…-docsynth provisioned 2026-07-20 · last run adhoc-5k * local corpus-v2 ./corpus-v2 created 2026-07-24docsynth studio provision --project <ref>— (re)provision the selected project; idempotent, safe to re-run.docsynth studio teardown --project <ref> [--delete-data] [--yes]— delete a project's resources and forget it. Keeps data unless--delete-data(then the bucket / local workspace goes too). Destructive → requires confirmation (interactive prompt or--yes); cloud teardown deletes the Cloud Run job(s), leaving Firestore and the service account in place. It drivesdeploy.sh teardownnon-interactively (ASSUME_YES/TEARDOWN_BUCKET).
Once a project is saved, later commands (pdfs, export, status) find it by
--project <ref> (a <target>:<id> ref, a bare id, or the default).