|
| 1 | +# Credential Inventory and Rotation Plan |
| 2 | + |
| 3 | +Date: 2026-05-19 (UTC) |
| 4 | + |
| 5 | +## 1) Inventory of credentials referenced by app modules |
| 6 | + |
| 7 | +| Service | Credential/env var | Example modules | |
| 8 | +|---|---|---| |
| 9 | +| Gemini / Google GenAI | `GOOGLE_API_KEY` | `gemini/mcp/mcp_orchestration_app/src/gemini_client.py`, `gemini/multimodal-live-api/project-livewire/server/config/config.py`, `gemini/sample-apps/gemini-streamlit-cloudrun/app.py` | |
| 10 | +| Gemini (legacy naming) | `GEMINI_API_KEY` | `gemini/sample-apps/gemini-quart-cloudrun/app/app.py`, `gemini/sample-apps/gemini-live-telephony-app/main.py` | |
| 11 | +| Google Cloud auth | `GOOGLE_APPLICATION_CREDENTIALS` | `gemini/sample-apps/swot-agent/agent.py`, `gemini/mcp/mcp_orchestration_app/example.env` | |
| 12 | +| Vertex toggle | `GOOGLE_GENAI_USE_VERTEXAI` | `gemini/multimodal-live-api/project-livewire/server/config/config.py`, `gemini/mcp/adk_mcp_app/README.md` | |
| 13 | +| Voice provider options | model voice config values (`VOICE_*`) | `gemini/multimodal-live-api/project-livewire/server/config/config.py` | |
| 14 | + |
| 15 | +No active OpenAI-specific, Google Drive-specific, or third-party voice API key variables (e.g., `OPENAI_API_KEY`, `DEEPGRAM_API_KEY`, `ELEVENLABS_API_KEY`, `ASSEMBLYAI_API_KEY`) were found in the scoped app modules during this pass. |
| 16 | + |
| 17 | +## 2) Rotation + revocation runbook (mandatory) |
| 18 | + |
| 19 | +Because this repository cannot revoke provider credentials directly, perform these steps immediately in provider consoles: |
| 20 | + |
| 21 | +1. Create replacement keys/service-account credentials for each live secret above. |
| 22 | +2. Update secret manager entries / CI env vars / runtime env vars. |
| 23 | +3. Redeploy every affected service. |
| 24 | +4. Validate smoke tests and auth paths. |
| 25 | +5. Revoke or disable previous keys immediately. |
| 26 | + |
| 27 | +## 3) Key restrictions and quota ceilings |
| 28 | + |
| 29 | +Apply for each provider where supported: |
| 30 | +- Restrict by application origin/domain for browser-exposed keys. |
| 31 | +- Restrict by source IP/CIDR for server-side keys. |
| 32 | +- Restrict by API scope/service. |
| 33 | +- Configure per-key quota ceilings and alerting. |
| 34 | + |
| 35 | +## 4) Validation checklist |
| 36 | + |
| 37 | +- [ ] New keys deployed to all environments. |
| 38 | +- [ ] Old keys revoked. |
| 39 | +- [ ] API calls succeed with new keys. |
| 40 | +- [ ] 401/403 checks confirm old keys invalid. |
| 41 | +- [ ] Budget/quota alerts configured. |
0 commit comments