Skip to main content
When in doubt about terminology, check here first.

Core terms

TermDefinition
BatonThe connector framework: Go SDK + individual connectors
baton-sdkGo library that handles sync orchestration, pagination, and connector runtime
ConnectorA Go binary that syncs access control data from a third-party service into ConductorOne
c1zCompressed sync output file format (gzip SQLite)
c1inC1 Integration Network - the overall connector ecosystem
coneConductorOne CLI for access management
conductorone-sdk-goGo SDK for ConductorOne API integration
Connector HubUser-facing name for the connector marketplace
Meta-connectorConfiguration-driven connector that maps external systems via YAML instead of Go code
baton-httpMeta-connector for REST APIs using YAML configuration and CEL expressions
baton-sqlMeta-connector for SQL databases using YAML configuration and CEL expressions

Access control model

TermDefinition
ResourceAn entity in the target system: User, Group, Role, App, or custom type
Resource TypeClassification of resources (e.g., “user”, “group”, “role”) with associated traits
EntitlementA permission that can be granted (e.g., “Admin on Database X”)
Entitlement SlugStable identifier for an entitlement (e.g., “member”, “admin”, “read”)
GrantAn assignment of an entitlement to a principal (e.g., “Alice has Admin on Database X”)
PrincipalAn entity that receives grants (typically users or service accounts)
TraitResource type classification: TRAIT_USER, TRAIT_GROUP, TRAIT_ROLE, TRAIT_APP, TRAIT_SECRET
Parent ResourceResource that contains child resources in a hierarchy (e.g., Organization containing Repositories)
Child ResourceResource that exists within a parent resource context
ChildResourceType AnnotationMarker on parent declaring what child types it contains

SDK concepts

TermDefinition
ResourceSyncerInterface that defines how to sync a resource type (ResourceType, List, Entitlements, Grants methods)
Sync lifecycleThe ordered stages: ResourceType -> List -> Entitlements -> Grants
Sync stageOne stage of the sync lifecycle (Stage 1-4: ResourceType, List, Entitlements, Grants)
Inversion of controlPattern where SDK orchestrates when your code is called; you define builders, SDK calls them
Resource BuilderImplementation of ResourceSyncer for a specific resource type
pagination.TokenSDK type for managing page cursors across List/Entitlements/Grants calls
pagination.BagSDK type for managing nested pagination state (stack-based)
PageStateSingle pagination state within a Bag (contains Token, ResourceTypeID, ResourceID)
uhttpSDK package providing HTTP client with automatic retries and rate limiting
AnnotationsMetadata attached to resources, entitlements, or grants (e.g., ChildResourceType, RawId)
RawIdAnnotation carrying the external system’s identifier; used for ID correlation during uplift

Execution modes

TermDefinition
One-shot modeCLI mode: runs once, produces c1z file, exits (no —client-id)
Daemon modeLong-running mode that polls ConductorOne for tasks (requires —client-id and —client-secret)
Hosted modeConnector run by ConductorOne infrastructure on behalf of customers
Service modeSynonym for daemon mode
Client credentialsOAuth2 client ID and secret for authenticating connector to ConductorOne
Task pollingDaemon mode behavior of periodically checking ConductorOne for work

Provisioning operations

TermDefinition
Grant (operation)Operation to add an entitlement to a principal
RevokeOperation to remove an entitlement from a principal
CreateAccountJIT provisioning - create user account in target system
DeleteResourceRemove a resource from the target system
ResourceProvisionerV2SDK interface for Grant/Revoke operations (recommended)
AccountManagerSDK interface for CreateAccount operations
ResourceDeleterV2SDK interface for Delete operations
Capability ManifestJSON file (baton_capabilities.json) declaring supported operations

Integration concepts

TermDefinition
SyncReading access data from a system into ConductorOne; produces .c1z file
UpliftConductorOne process that transforms raw connector records into domain objects (Apps, Resources, Grants)
ProvisionWriting access changes back to a system (grant, revoke, create, delete)
ReconciliationComparing actual access (from sync) to desired access (from policy) and correcting drift
external_idThe identifier from an external system, stored with connector records during sync
source_connector_idsMap on domain objects tracking which connector provided which external ID
ID CorrelationMatching connector output to existing ConductorOne objects using RawId and external_id
JIT ProvisioningJust-In-Time provisioning - creating user account when first needed, not before
IdPIdentity Provider - authoritative source of user identities (Okta, Azure AD, Google Workspace)
Source of TruthThe system that authoritatively defines an entity (IdPs are typically source of truth for users)
Access ReviewProcess of verifying that existing access grants are still appropriate
DriftDifference between actual access state and desired access state

Pagination

TermDefinition
Cursor-based paginationPagination using opaque tokens returned by the API
Offset-based paginationPagination using numeric offset and limit parameters
Page tokenString passed between calls to continue pagination
LDAP pagingServer-side pagination for LDAP using cookies
Nested paginationPaginating children within each paginated parent (managed with Bag)

Authentication

TermDefinition
API KeySimple token-based authentication passed in headers
Bearer TokenToken passed in Authorization header as “Bearer
OAuth2 Client CredentialsFlow exchanging client ID/secret for access token
JWT Service AccountAuthentication using signed JSON Web Tokens (common for Google APIs)
LDAP BindAuthentication to LDAP server using credentials
Domain-wide DelegationGoogle pattern allowing service account to impersonate domain users

Publishing

TermDefinition
Release ManifestMetadata describing a connector version (org, name, version, assets)
Version StateLifecycle state: PENDING, UPLOADING, VALIDATING, PUBLISHED, YANKED, FAILED
AssetPlatform-specific binary (e.g., darwin-amd64, linux-arm64)
Signing KeyGPG or Cosign key used to sign connector releases
YankWithdraw a published version (remains visible but marked deprecated)

Configuration

TermDefinition
CELCommon Expression Language - used for data transformation in meta-connectors
Environment variableConfiguration via BATON_* prefixed env vars
Base URLConfigurable API endpoint for testing against mocks
Insecure flagOption to skip TLS verification for local testing

Development

TermDefinition
golangci-lintStandard Go linter used for connector code quality
Makefile targetsStandard: build, lint, test, update-deps
sync.MapGo’s thread-safe map type used for connector caching
Hot reloadAutomatic rebuild on code changes during development
Mock serverLocal server mimicking target API for testing