DatabaseDrivenProvider) handles all providers.
Two Ways to Add Providers
Via API (Runtime)
Create a provider at runtime using the REST API:Via Database Seed (Builtin)
For providers that ship with Calseta, add a seed entry inapp/seed/enrichment_providers.py. This is how the four builtin providers (VirusTotal, AbuseIPDB, Okta, Entra) are defined.
HTTP Config Structure
Thehttp_config defines how Calseta calls the provider’s API. It supports template variables that are resolved at runtime.
Template Variables
Auth Types
How you send the credential (header name, format) is controlled by the
http_config template — auth_type just tells Calseta whether credentials are needed and how to resolve them. For example, to send an API key in a custom header:
ENCRYPTION_KEY environment variable.
Malice Rules
Configure rules that map provider response fields to malice verdicts:Operators
Conditions are evaluated in order — the first match wins.
Field Extractions
Define which fields from the raw provider response are surfaced to agents in theextracted object:
Use the bulk create endpoint to add multiple extractions at once:

