Skip to main content

Cloud and SaaS Setup Guides

Each guide here covers what a provider administrator configures so dfe-fetcher can pull data from that provider: the access it needs, how to grant it least-privilege, where to put credentials, and how to verify the connection. Every source is read-side: M365 starts its activity-feed subscription and Pub/Sub acknowledges what it delivered. Nothing else changes provider state.

For the fetcher's own configuration (scheduler, output, credential resolution, the sources.db and sources.file blocks), see config.example.yaml. The architecture and the profile grammar are in ../internals.md.

Credentials in Kubernetes​

The released chart mounts one Secret, Kafka's: its username, password and sasl.mechanism keys become DFE_FETCHER_KAFKA_SASL_USER, DFE_FETCHER_KAFKA_SASL_PASSWORD and DFE_FETCHER_KAFKA_SASL_MECHANISM. Name an existing Secret with the chart value secrets.kafka.existingSecret.

A provider's credentials are yours to supply, through the chart's extraEnv (a map of variable name to value or valueFrom) or extraEnvFrom (a list of envFrom sources) values. Two shapes work, and each guide's Environment Variables section names the fields:

  • set the field itself, DFE_FETCHER_SOURCES__<BLOCK>__<FIELD>, from a Secret key, e.g. DFE_FETCHER_SOURCES__AWS__SECRET_ACCESS_KEY
  • write the field as an env:NAME spec in the config, and load a Secret whose keys are those names with extraEnvFrom
extraEnv:
DFE_FETCHER_SOURCES__AZURE__CLIENT_SECRET:
valueFrom:
secretKeyRef:
name: fetcher-azure
key: client-secret
extraEnvFrom:
- secretRef:
name: fetcher-credentials

An empty value counts as unset, so a Secret key left blank leaves the field unset rather than signing requests with an empty key.

Providers​

ProviderData it pullsGuide
AWSSecurity and operational logsaws.md
AzurePlatform and security logsazure.md
Microsoft 365Audit and security logsm365.md
Google CloudAudit and security logsgcp.md
Google Cloud Pub/SubSubscription streaminggcp-pubsub.md
Google WorkspaceAdmin and audit logsgoogle-workspace.md
OktaSystem logokta.md
Cisco DuoAdmin and authentication logsduo.md
CrowdStrikeFalcon detections and eventscrowdstrike.md
CloudflareAudit logscloudflare.md
DatadogAudit trail and security signalsdatadog.md
BitwardenEvent logsbitwarden.md
1PasswordAudit and sign-in eventsonepassword.md
SlackAudit logsslack.md
GitHubAudit loggithub.md
SalesforceEvent monitoring logssalesforce.md
runZeroAsset inventory snapshotsrunzero.md
Object storeBuckets (S3 and compatible)object-store.md
Package registriesPyPI, crates.io, Go modulessupply-chain.md

Source Maturity​

A source's release maturity is the maturity field of its shipped profile under crates/fetcher/profiles/; the capability catalog (docs/capability-catalog.yaml) repeats it and a test keeps the two equal. The fetcher logs a warning at startup for any enabled source that is not yet stable.

StageMeaning
AlphaCode-complete but not production-validated. Behaviour and config may change. The default for a new source.
BetaValidated against a live service; hardening in progress.
StableProduction-ready.