Skip to main content
Calseta’s enrichment system is runtime-configurable. Adding a new provider requires zero code changes — you configure it via the REST API or by seeding the database. A single adapter class (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 in app/seed/enrichment_providers.py. This is how the four builtin providers (VirusTotal, AbuseIPDB, Okta, Entra) are defined.

HTTP Config Structure

The http_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:
Auth credentials are encrypted at rest using the 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 the extracted object:
Use the bulk create endpoint to add multiple extractions at once:
You can list, update, and delete field extractions via the full CRUD API. Builtin provider extractions are system-managed — they can be toggled on/off but not deleted. When a custom provider is deleted, all its field extractions are automatically removed.

Cache Configuration

Set TTLs per indicator type:
Values are in seconds. If not specified for a type, the system default applies.

Testing Your Provider

After adding a provider, test with on-demand enrichment:
Then check the results:

Disabling a Provider

Deactivate a provider without deleting it:
Disabled providers are skipped during enrichment. Existing cached results remain accessible.

Contributing

See Community Integrations for the process of contributing new provider configurations.