schema_version = 1
detector_id = "deepnote-api-credentials"
service = "deepnote"
severity = "high"
[[positive]]
text = "dn_Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
credential = "dn_Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
reason = "Deepnote dn_ prefix token (38 chars total)."
[[positive]]
text = "DEEPNOTE_API_KEY=Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
credential = "Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
reason = "Uppercase env-var anchor form (38 alnum)."
[[negative]]
text = "dn_Kp4Qx7Rm"
reason = "Body below 20 chars, fails minimum length requirement."
[[negative]]
text = "static char *idn_curlx_convert_wchar_to_UTF8(const wchar_t *str_w, int chars)"
reason = "C identifier `idn_curlx_convert_wchar_to_UTF8` — `dn_` embedded mid-identifier (preceded by `i`); anchored pattern requires non-identifier byte before `dn_`."
[[evasion]]
text = "dn_Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
credential = "dn_Kp4Qx7Rm2Sn5Tb8Vw3YzKp4Qx7Rm2Sn5Tb8Vw3Yz"
reason = "Adversarial anchor_bare envelope — credential must still surface under this detector."
[perf]
fixture_bytes = 4096
max_microseconds = 25000
note = "Standard single-file budget."
[scale]
fixture_bytes = 1048576
min_findings = 1
max_seconds = 2.0
note = "1 MiB filler + planted Deepnote credential."
readme_claim = "900 service-specific detectors"