Fix guide · critical · notion_integration_token
Notion API key in your client bundle
What this rule means
A string matching secret_{43} was found in your deployed JavaScript.
Why it matters
Access to whichever pages/databases the integration is connected to. Automated scrapers harvest these keys from public bundles within hours; assume the key is compromised the moment it shipped.
How to fix it
- Revoke the key immediately at https://www.notion.so/my-integrations.
- Move the new key to server-only env vars. Never use a name with the
NEXT_PUBLIC_,VITE_, orPUBLIC_prefix. - Pattern your calls as client → your API → Notion. Never client → Notion directly.
- Set a spend or rate limit in the Notion console as a safety net.
- Add a CI gate to fail any future deploy that includes the key pattern:
vibecheck https://your-deploy.com --exit-on critical.
Did vibecheck flag this on your app?
If you reached this page from a vibecheck inspection report, the redacted match in your scan output is the exact string we found in your bundle. After applying the fix above, run the inspection again — the finding should clear.
Run another inspection