Skip to main content
CID222 Docs

Entity and label types

Every PII entity type, DLP secret type, toxicity label and attack label a CID222 detector can report, and where each is declared.

  • Type: reference

Every entity type, secret/DLP category, toxicity label and attack label a CID222 detector can report — where each one is declared, and which detector emits it. Regenerate with make docs-generate.

There is no shared PiiEntityType (or DlpSecretType) enum in the gateway — both interfaces type detectedEntity.type as a bare string, and the actual vocabulary is the seeded rows of ai_input_filters. This page, and the SCREAMING_SNAKE token sets it feeds to docs-lint rule 2, are built from that seed rather than from a TypeScript type, because that seed is what actually ships to a fresh database.

PII entity types (24)

One row per seeded filter in the "PII & Sensitive Data Protection" group (database/seeds/seed-data/input-filters.json). Detector is regex when the filter carries compiled patterns, ML when at least one of its entity types is also a native NER label — see native ML NER labels below — and both when it is either.

Entity type(s)FilterDetectorRegex patternsDefault action
IBAN, ACCOUNT_NUMBERbank-accountregex, ML5mask
—card-expiry-cvvregex2mask
CREDIT_CARDcredit-cardregex, ML3mask
CRYPTO_ADDRESScrypto-addressML0mask
DATE_TIMEdate-timeML0flag
EMAILemailregex, ML1mask
ID_DOCUMENT_NOid-document-noregex2mask
IP_ADDRESSip-addressregex, ML2mask
LICENSE_PLATElicense-plateregex, ML1mask
LOCATION, STREET_ADDRESS, CITY, ZIPCODElocationregex, ML1flag
TC_KIMLIK, ID_NUMBERnational-idregex, ML5mask
ORGANIZATIONorganizationML0flag
PASSPORTpassportregex, ML5mask
PERSON_NAMEperson-nameregex, ML1mask
PHONEphoneregex, ML7mask
SSNssnregex, ML1mask
VKN, TAX_IDtax-idregex1mask
URLurlML0flag

Note

The ONNX NER model also emits API_KEY, which the seed does not attach to a dedicated filter row above (folded into another filter's ml_entity_types, or covered only by the model itself). It is still real — a detection reports this type — so it counts toward the PII entity type total.

DLP / secret types (28)

One row per seeded filter in the "Data Leakage Prevention (DLP)" group. Only api-key declares an ml_entity_types label (API_KEY) — every other DLP filter is regex-only, so its type in an API response is the pattern name, while value carries the bracketed placeholder shown here.

FilterReported typePlaceholder(s)Regex patternsDefault action
api-keyAPI_KEYOPENAI_API_KEY, AWS_ACCESS_KEY, AWS_SECRET_KEY, API_KEY, ANTHROPIC_API_KEY, GITHUB_TOKEN, SLACK_TOKEN, GOOGLE_API_KEY, CID_API_KEY10mask
connection-stringpostgres_connection, mysql_connection, mongodb_connection, redis_connection, url_credentialsPOSTGRES_CONNECTION, MYSQL_CONNECTION, MONGODB_CONNECTION, REDIS_CONNECTION, CREDENTIALS5mask
credential-paircredential_pair_contextCREDENTIALS1mask
cve-vulnerabilitycve_idCVE_ID1flag
mac-addressmac_colon, mac_hyphenMAC_ADDRESS2mask
medical-record-numbermrn_labeled, mrn_formatMRN2mask
oauth-tokenjwt_token, bearer_token, google_refresh_token, refresh_token_assignmentJWT_TOKEN, BEARER_TOKEN, REFRESH_TOKEN4mask
passwordpassword_assignment, turkish_password_assignment, db_password, secret_assignmentPASSWORD, DB_PASSWORD, SECRET4mask
private-keyrsa_private_key, private_key_generic, openssh_private_keyRSA_PRIVATE_KEY, PRIVATE_KEY, SSH_PRIVATE_KEY3mask
webhook-secretwebhook_secret, stripe_webhookWEBHOOK_SECRET, STRIPE_WEBHOOK_SECRET2mask

HAP / toxicity labels (13)

The 13 toxicity labels the HAP guard reports, with the per-label thresholds this release ships. log_only is 0.00 for every label — no label has that tier tuned above the floor, so nothing is recorded on the log-only tier alone.

LabelDefault actionBlockFlagLog-only
child_exploitationreject0.530.47—
crimereject0.840.66—
cyber_crimesreject0.470.36—
dangerous_advicereject0.850.70—
defamationreject0.690.54—
hatereject0.840.61—
intellectual_propertyflag0.430.35—
privacyflag0.600.48—
self_harmreject0.560.48—
sexual_contentflag0.640.48—
sexual_crimereject0.490.35—
violencereject0.700.55—
weaponsreject0.580.47—

The label list and the toxicity service's thresholds.json name exactly the same 13 labels.

Attack-guard labels (4)

The 4 labels of ATTACK_TYPES: prompt_injection and jailbreak from the 2-label ONNX attack model, sql_injection and xss from the deterministic libinjection scan. Default actions come from the seeded "Jailbreak & Prompt Injection" and "Injection Scan" filter groups.

LabelDefault action
prompt_injectionflag
jailbreakreject
sql_injectionreject
xssreject

ATTACK_TYPES and the seeded filter rows name exactly the same labels.

Warning

The attack-guard service's thresholds.json keys its two rows label_0 / label_1 — positional, not named. The names (injection, jailbreak) live only in the model's own label_map.json, which arrives with the model rather than beside the threshold file. This page cannot assert which row is which label without that file; do not assume label_0 is injection in a doc.

RowBlockFlagLog-only
label_00.700.550.40
label_10.500.400.30

Native ML NER labels (cid-security-ml)

The 21 native labels the PII ONNX model emits. A filter is marked ML above when at least one of its entity types is one of these — the model contributes the detection, and the filter decides what happens to it.

CategoryEntities
ContactEMAIL, PHONE, URL
FinancialCREDIT_CARD, IBAN, CRYPTO_ADDRESS, ACCOUNT_NUMBER
IdentityPERSON_NAME, SSN, TC_KIMLIK, ID_NUMBER, PASSPORT, LICENSE_PLATE, API_KEY
LocationLOCATION, STREET_ADDRESS, CITY, ZIPCODE, IP_ADDRESS
OtherORGANIZATION, DATE_TIME

Document and image analysis

Document analysis and image analysis have no entity-type set of their own. Both run the text they extract through the same detection pipeline as chat, so a detection on a PDF, a DOCX or an image reports exactly the PII and DLP entity types above — the same filters, the same actions. The image path additionally reports two detector-only sources with no entity-type catalogue of their own: mrz (passport MRZ parser) and identity_layout (identity-document layout extractor) — see the content detection API source table.

On this page