Files
ba0a524d6e Add Pinecone API key detector (#4917)
* Add Pinecone API key detector

Adds a new detector for Pinecone vector database API keys (pcsk_* format).

Detection:
- Regex matches the pcsk_{key_id}_{secret} structure with tight bounds
  (4+ char key ID, 40+ char secret, word boundaries) to minimize false positives.
- Extracts the embedded key_id from the token unconditionally, which maps to
  the key entry in the Pinecone console and aids revocation.

Verification:
- Uses GET /indexes (non-state-changing, read-only) with Api-Key header auth.
- Validates response body structure (requires "indexes" JSON key), not just
  status codes, to be resilient against API changes.
- 200: Verified. Extracts project_id from index host, total_indexes, and
  metadata for up to 5 indexes (name, host, cloud, region).
- 401: Invalid key (handles both plain text and JSON error bodies).
- 403: Valid key with restricted permissions (DataPlane-only roles).
  Marked as verified with permission=restricted metadata.

Uses common.SaneHttpClient() with standard timeouts (5s response, 2s dial,
3s TLS) and io.LimitReader (1MB cap) on response body. No SDK dependencies.

Registered as DetectorType Pinecone = 1048.

Made-with: Cursor

* Align Pinecone detector with SecretParts

Migrate Pinecone verification metadata to SecretParts, address the redundant 200-response JSON parsing Bugbot flagged, and add focused regression coverage for malformed verification responses.

* Refactor Pinecone detector and add tests

---------

Co-authored-by: Dylan Ayrey <[email protected]>
Co-authored-by: Dustin Decker <[email protected]>
Co-authored-by: Shahzad Haider <[email protected]>
Co-authored-by: Shahzad Haider <[email protected]>
2026-05-07 06:10:21 -04:00
..