Supported databases
- PostgreSQL
- MySQL
- Microsoft SQL Server
- Oracle
- SAP HANA
- SQLite
Resources
- Official download center: Stable binaries (Windows/Linux/macOS) and container images
- GitHub repository: Source code, issues, and example configurations
Configuration overview
Baton-SQL uses a YAML configuration file that defines:- Database connection details
- Resource types to sync (users, groups, roles)
- Entitlements that can be granted
- Grants that map principals to entitlements
- Provisioning rules for granting/revoking access
Database connection
You can configure the connection using structured fields or a DSN string.Structured connection
DSN connection string
| Database | DSN Format |
|---|---|
| PostgreSQL | postgres://user:pass@host:5432/dbname |
| MySQL | mysql://user:pass@host:3306/dbname?parseTime=true |
| SQL Server | sqlserver://user:pass@host:1433?database=dbname |
| Oracle | oracle://user:pass@host:1521/service |
| SQLite | sqlite:///path/to/database.db |
Listing resources
Thelist section defines how to query resources from your database:
Field mapping
Field mappings use CEL (Common Expression Language) to transform data. The dot syntax references columns from the query result:Pagination
- offset: Uses
LIMITandOFFSETin SQL queries - cursor: Fetches records after a certain key value
Entitlements
Entitlements define permissions that can be granted to resources.Entitlement purpose
Thepurpose field tells ConductorOne how to interpret an entitlement:
| Purpose | Use for | Example |
|---|---|---|
assignment | Membership or role assignment | ”Member of Engineering Team” |
permission | Specific permission on a resource | ”Read access to Repository X” |
ownership | Ownership or administrative control | ”Owner of Project Y” |
Static entitlements
Static entitlements are predefined in the configuration:Dynamic entitlements
Dynamic entitlements are discovered from the database:Grants
Grants define which principals have which entitlements:?<group_id> syntax binds the current resource ID to the query parameter.
Conditional grant mapping
Useskip_if to conditionally skip grant mappings:
Provisioning
Provisioning defines how to grant and revoke access.Grant and revoke
Account provisioning
Create new accounts through ConductorOne:Credential rotation
Rotate credentials for existing accounts:Running the connector
Validate configuration
One-shot mode (local testing)
Service mode with ConductorOne
| Flag | Description |
|---|---|
--config-path | Path to YAML configuration file |
--client-id | ConductorOne client ID |
--client-secret | ConductorOne client secret |
-f, --file | Path to save sync data (one-shot mode) |
-p, --provisioning | Enable provisioning actions |
--log-level | Logging verbosity (debug, info, warn, error) |