How service accounts differ from user accounts
Because service accounts cannot log in interactively, they are hidden from the user list by default. They still appear as members of the groups they belong to, and you can add them to groups from Add Members. They only exist to hold API keys.
Create a service account
Only organization admins can manage service accounts.- Open the Datafold app and navigate to Settings → Service Accounts.
- Click Create Service Account.
- Fill in:
- Name — a short identifier (e.g.,
ci-bot,nightly-diffs). Shown in audit logs and the Service Accounts list. - Description (optional) — a free-form note to document what the account is used for.
- Groups — at least one permission group is required. The service account inherits all permissions from the groups you select.
- Name — a short identifier (e.g.,
- Click Create. The account appears in the list immediately. No API keys are issued yet.
A service account with no groups would have no permissions at all, so the form requires at least one. If you need a different permission set, create a new group under Settings → Groups first.
Issue API keys
From the Service Accounts list, click API Keys on the relevant row. A service account can have up to 50 active API keys, which is intentionally higher than the per-user limit so you can issue one key per CI environment, region, or deployment without collapsing them together. Each key can be given:- A name for identification.
- An optional description for your own reference.
- An optional expiration (1–365 days). Leave unset for a non-expiring key.
Using a service account API key
Service account keys are used exactly the same way as personal API keys. Include the key in theAuthorization header:
Lifecycle
Individual API keys can be revoked from the API Keys modal without affecting the account itself — useful when rotating a single leaked key.
Permissions
A service account’s permissions are the union of the groups assigned to it. To change what a service account can access:- Change the account’s group assignments under Settings → Service Accounts (admin-only).
- Or change what a group can access under Settings → Groups — every account (human or service) in that group picks up the change.
admin group.
Best practices
- One service account per automation surface. A separate account for CI, for your ETL scheduler, and for each third-party integration makes it obvious in audit logs who did what, and lets you rotate or disable one surface without affecting the others.
- Scope via groups. Give a service account only the groups it needs — a CI-only account does not need access to production monitors.
- Name keys after where they run.
ci-botwith keys namedgithub-actions-prod,github-actions-staging, etc. makes rotation obvious. - Rotate keys on offboarding-equivalent events. When a CI runner is decommissioned, a deployment region is retired, or a secret may have been exposed, revoke the specific key rather than the whole account.
- Disable, don’t delete, for temporary pauses. Deletion is permanent; disable is reversible.
