Skip to content

security: remove committed secrets from tracked files#143

Draft
seb7152 wants to merge 2 commits into
mainfrom
claude/app-optimization-analysis-v6oyg6
Draft

security: remove committed secrets from tracked files#143
seb7152 wants to merge 2 commits into
mainfrom
claude/app-optimization-analysis-v6oyg6

Conversation

@seb7152

@seb7152 seb7152 commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Contexte

Première étape d'un chantier d'optimisation (sécurité / performance / UX). Cette PR se limite au retrait des secrets committés en clair dans le dépôt. Les chantiers RLS et sécurisation des callbacks se feront séparément, table par table / endpoint par endpoint, avec revue préalable — aucune modification Supabase / prod dans cette PR.

Changements

  • opencode.json : fichier dé-tracké (git rm --cached — il était déjà listé dans .gitignore mais restait suivi). Les valeurs SUPABASE_ACCESS_TOKEN (PAT de management sbp_…) et CONTEXT7_API_KEY sont remplacées par des références {env:…}.
  • .claude/settings.json : la clé Context7 en dur est remplacée par ${CONTEXT7_API_KEY}, cohérent avec le ${SUPABASE_ACCESS_TOKEN} déjà utilisé juste au-dessus.
  • test-versions-api.js : lecture de l'URL et de la clé service_role depuis process.env (SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY) au lieu du JWT service_role en dur ; garde du script si les variables sont absentes.

Secrets concernés (à révoquer)

Le scrub du working tree ne supprime pas ces secrets de l'historique git — ils restent lisibles dans les commits antérieurs. Ils doivent être révoqués / rotationnés dans leurs dashboards respectifs :

  • Clé Supabase service_role (accès complet à la base, bypass RLS)
  • PAT de management Supabase (sbp_…)
  • Clé API Context7

Purger l'historique (git filter-repo + force-push) est possible dans un second temps si souhaité, mais réécrit l'historique partagé ; la révocation reste la mitigation prioritaire.

Vérification

  • Re-scan des motifs de secrets (sbp_, ctx7sk-, JWT eyJ…, service_role) sur l'arbre suivi → plus aucune occurrence des valeurs exposées.
  • opencode.json confirmé non suivi après commit.

🤖 Generated with Claude Code

https://claude.ai/code/session_011g72ZQ5ry1KYqSR63MbKmy


Generated by Claude Code

- opencode.json: untrack (already in .gitignore) and replace the Supabase
  management PAT and Context7 API key with {env:...} references
- .claude/settings.json: replace hardcoded Context7 API key with
  ${CONTEXT7_API_KEY} env reference (matching the Supabase token above it)
- test-versions-api.js: read Supabase URL and service_role key from
  environment variables instead of hardcoding the service_role JWT

The exposed credentials must be rotated/revoked in their respective
dashboards; scrubbing the working tree does not remove them from git history.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011g72ZQ5ry1KYqSR63MbKmy
@vercel

vercel Bot commented Jul 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rfp-analyzer Ready Ready Preview, Comment Jul 4, 2026 2:23pm

First table of the staged RLS rollout. defense_analyses already has correct
per-org SELECT/INSERT/UPDATE policies; this migration only activates them via
ENABLE ROW LEVEL SECURITY (no FORCE, so service_role edge functions keep their
bypass). Includes a non-destructive test plan (BEGIN/ROLLBACK, JWT-claims
impersonation) covering legitimate access, cross-tenant isolation, and the
service_role bypass.

Not applied to production — to be validated via the test plan before enabling.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011g72ZQ5ry1KYqSR63MbKmy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants