Skip to content

Directory Connectors

Roster separates the external system from the code that talks to it.

TermMeaning
ProviderExternal source of truth such as Entra ID, Active Directory, Okta, Workday, SAP, or CSV.
ConnectorRoster-owned integration code for one provider or provider family.
ResolverQuery path that uses materialized Roster data to answer routing questions.

Authentication providers configured for human login are separate from roster data providers. In sync and resolver docs, provider means external roster data source.

ConnectorProvider pathNotes
entraMicrosoft Graph v1.0Microsoft Entra directory users and groups.
ldapLDAP v3 over LDAP or LDAPSActive Directory or LDAP-compatible directories.
csvMounted data volume, S3, or SFTPFile-based records for batch integration workflows.

Use ldaps:// for production LDAP connectors. Plain ldap:// should be limited to isolated directory sources that cannot present a valid LDAPS certificate.

Refresh schedules use 5-field UTC cron expressions. When no schedule is set, the worker defaults to hourly refresh with 0 * * * *.

Worker refresh is cache-only. It refreshes records that already exist in directory_record_sources for the connector, and reconciles direct member edges for cached group records already attached to participants. It does not enumerate or materialize every upstream user, group, or unrelated group membership.

For self-hosted deployments, encrypted provider secrets require:

Terminal window
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<high-entropy-secret>
ROSTER_PROVIDER_SECRET_KEY_ID=env:prod-2026-05

The Platform participant picker can search some connectors live so admins do not need to materialize a full directory before selecting a user or group:

  • CSV connectors read configured CSV files directly
  • Microsoft Entra ID queries Microsoft Graph directly
  • primary LDAP connectors query LDAP directly

Secondary LDAP connectors remain metadata sources for now. They are searched from materialized records when matching primary connector results.

After an admin selects a user or group, Roster caches only the selected record in directory_records and directory_record_sources. Selected groups also cache their direct membership edges for participant resolution. Scheduled refresh keeps those selected-group membership edges current without browsing unrelated groups.

New records enter the cache through explicit actions such as live browse, manual association, or import flows. Scheduled worker refresh does not discover new standalone records on its own, except for direct members needed by an already-cached participant group.

API and MCP directory-record search remains cache-only. It searches Roster’s materialized records and does not call upstream connectors live.