Liens utiles — consoles & dashboards
Bookmarks pour l'admin courant. Tous les liens sont scopés sur les projets actuels (GCP trade-496613 + Supabase portfolioai-prod + GitHub jv3n/trade). Garde cette page ouverte dans un onglet pendant les sessions ops.
Google Cloud Platform — projet trade-496613
Vue d'ensemble
- Dashboard projet — overview compute / storage / billing
- Activité récente — audit log des changements
Cloud Run (compute)
- Services Cloud Run — liste + métriques + logs
- Service
portfolioai— pas encore déployé, lien anticipé - Logs Cloud Run — query Cloud Logging filtrée Cloud Run
Artifact Registry (Docker images)
- Repos Artifact Registry
- Repo
backend(northamerica-northeast1) — images poussées + tags - Path complet des images :
northamerica-northeast1-docker.pkg.dev/trade-496613/backend/portfolioai:<tag>
Secret Manager (4 secrets runtime)
IAM & Service Accounts
- Service accounts
github-deploy@trade-496613.iam.gserviceaccount.com(deploy SA —run.admin+artifactregistry.writer)portfolioai-runtime@trade-496613.iam.gserviceaccount.com(runtime SA —secretmanager.secretAccessorper-secret)- IAM policy projet — bindings au project level
- Workload Identity Pools — pool
github+ providergithub(federation GitHub OIDC ↔ GCP)
OAuth 2.0 (Google Sign-In Phase 4)
- APIs & Services → Credentials — OAuth 2.0 Client IDs
- Consent Screen — branding + scopes + test users
- ⚠️ Au 1er deploy prod : ajouter la redirect URI
https://<cloud-run-url>/login/oauth2/code/googlepuis (plus tard)https://<custom-domain>/login/oauth2/code/google
Billing
- Billing account
0159AE-56FF40-037FC8— facturation, alertes budget - Cost breakdown du projet — coût par service
APIs
- APIs activées — vue d'ensemble des 6 APIs câblées (
run,artifactregistry,secretmanager,iam,iamcredentials,sts) - Quotas — surveille avant de hit un free tier limit
Supabase — projet portfolioai-prod (flbnnnakobutaxvshcez)
- Dashboard du projet
- Table Editor — UI tabulaire pour lire/modifier les rows
- SQL Editor — pour les requêtes ad-hoc (debug, admin)
- Database settings — connection strings (Direct / Session pooler / Transaction pooler) + reset password
- Logs — Postgres slow query, errors
- API settings — anon key, service_role key (non utilisé v1, on est en JDBC direct)
- Authentification — désactivé v1, on a notre propre auth Spring Security + Google OIDC
- Backups — snapshots Supabase quotidiens 7j (free tier). Notre backup nocturne
pg_dump→ R2 est indépendant, voir ticket Phase 5.
Région : ca-central-1 (Toronto)
Connection mode utilisée : Session pooler aws-1-ca-central-1.pooler.supabase.com:5432 (IPv4-compatible Cloud Run + supporte Flyway advisory locks)
GitHub — repo jv3n/trade
- Repo home
- Actions — runs de tous les workflows
- Workflow
Deploy to Cloud Run— déclenche surrelease: published, trigger manuel impossible (volontaire) - Workflow
Backup Supabase Postgres— cron0 4 * * 0(dimanche 4 AM UTC, weekly) +workflow_dispatchmanuel - Workflow
WIF Smoke Test— re-trigger pour valider le pipeline WIF après un changement IAM - Environments —
productionavec required reviewer + branch policymaster - Environment variables
production→ clickproduction(les 3 varsGCP_*sont là) - Code Security — Secret Scanning + Push Protection + Dependabot
- Releases — à utiliser pour le 1er deploy via
on: release: published - Issues — peu utilisé, le backlog vit dans le repo (
docs/projet/backlog.md)
Providers externes (clés API runtime-editable via UI)
- Anthropic Console — usage Claude API, billing, rotation clé
- Twelve Data dashboard — clé + usage credits (free tier 800/jour)
- Finnhub dashboard — clé + rate limit
- Toutes ces clés vivent en BDD (
app_config) en runtime, settable via/settings/configurationUI quand l'app sera deployée
Cloudflare
Compte créé pour le bucket R2 backups Phase 5a. Le DNS / cache devant Cloud Run reste à câbler (ticket Phase 5 🟡 « Cloudflare devant Cloud Run »).
R2 — bucket portfolioai-backups
- Cloudflare dashboard — home, après login
- R2 buckets overview :
https://dash.cloudflare.com/8f2780696b5e520f85b5fc80413c4c3f/r2/default/buckets— remplacer8f2780696b5e520f85b5fc80413c4c3fpar le tien (visible dans l'URL une fois loggué, ou dansR2_ACCOUNT_IDGitHub Secret) - Bucket
portfolioai-backups:https://dash.cloudflare.com/8f2780696b5e520f85b5fc80413c4c3f/r2/default/buckets/portfolioai-backups— liste lesbackup-*.sql.gztriés par date, download/delete via UI - API Tokens R2 — rotation token si compromis, audit des tokens actifs
CLI alternative (aws s3 pointé sur R2)
# Lister les backups en CLI
aws s3 ls s3://portfolioai-backups/ \
--endpoint-url "https://8f2780696b5e520f85b5fc80413c4c3f.r2.cloudflarestorage.com" \
--profile portfolioai-r2
aws configure --profile portfolioai-r2 avec les mêmes 3 creds que les GitHub Secrets.
DNS / proxy (à venir)
- À câbler quand on attaque le ticket « Cloudflare devant Cloud Run » : DNS pour custom domain + cache devant Cloud Run pour bypass egress quota 1 GB/mo
Documentation officielle (références ops fréquentes)
- Cloud Run pricing — vérifier free tier limits
- Cloud Run docs — Secrets — pattern
--update-secrets - Workload Identity Federation — GitHub — re-setup ou tightening de la WIF
google-github-actions/authreleases — surveiller la@v3qui basculera sur Node 24 (cf. dette technique 🟢 backlog)- Supabase free tier limits — surveiller DB size + MAU
- Fly.io pricing — fallback documenté, pas activé v1
Référence projet
deploiement.md— plan d'analyse + recommandation + plan phasé Phase 5release-process.md— rituel deploy (tag → Draft Release → Publish → workflow)backup-process.md— backup nocturne pg_dump → R2 + restore drillcommandes-pratiques.md— commandes Docker / Tilt / Postgres / Ollama au quotidiendecision-ollama-deploiement.md— pourquoi Ollama reste en CPU dégradé sur Macdocs/projet/backlog.md > Phase 5— tickets ⏳ restantsdocs/projet/journal-livraisons.md > Phase 5— livré + notes d'implémentation