Skip to main content

Chat secrets (Firebase + admin)

Secrets are created in your GCP project (e.g. the one in Terraform project_id). Cloud Run service account needs roles/secretmanager.secretAccessor on each secret (Terraform or IAM bindings).

1. Add Firebase service account JSON

From a file (recommended; keep it out of shell history):

gcloud secrets versions add firebase-service-account \
  --data-file=path/to/your-firebase-service-account.json \
  --project=YOUR_PROJECT_ID

Or from stdin (paste the JSON, then Ctrl+D):

gcloud secrets versions add firebase-service-account --data-file=- --project=YOUR_PROJECT_ID

2. Add admin secret (for /admin/conversations)

echo -n 'your-chosen-admin-password' | gcloud secrets versions add admin-secret --data-file=- --project=YOUR_PROJECT_ID

3. Deploy

After both secrets have at least one version, the next push to main (or Cloud Build deploy) will inject them into Cloud Run via cloudbuild.yaml.

Optional: use the script

Put your Firebase JSON at .secret/firebase-service-account.json, set ADMIN_SECRET, then:

export PROJECT_ID=your-gcp-project-id
export ADMIN_SECRET=your-admin-password
./scripts/create-chat-secrets.sh

This (re)runs IAM binding and adds versions from the file/env.