Skip to content

Authentication ​

DeltaFi uses role-based access control (RBAC) to secure API endpoints. Every endpoint requires a specific permission, and users are granted permissions through roles.

For setup and configuration instructions, see Authentication Configuration and Authorization Configuration.

Auth Modes ​

DeltaFi supports three authentication modes, configured via the auth.mode system property:

ModeValueDescription
BasicbasicUsername/password authentication (default)
CertificatecertX.509 client certificate authentication via Distinguished Names
DisableddisabledNo authentication; all requests treated as admin. For development only.

Basic Authentication ​

The default mode. Users authenticate with username and password via HTTP Basic auth. The default admin user's password is set with deltafi set-admin-password.

bash
curl -u admin:password http://deltafi-host/api/v2/status

Certificate Authentication ​

Uses X.509 client certificates. The Distinguished Name (DN) from the certificate must match a DN configured for a user in the system. Requires a CA certificate chain stored in a Kubernetes secret.

Disabled Mode ​

All requests are treated as coming from the admin user with full permissions. Intended for local development and testing only.

Request Headers ​

After initial authentication, the auth gateway populates these headers on forwarded requests:

HeaderDescription
X-DeltaFi-User-NameAuthenticated username (or DN in cert mode)
X-DeltaFi-User-IdUser's UUID
X-DeltaFi-PermissionsComma-separated list of granted permissions

Permission Model ​

Permissions follow an RBAC hierarchy:

User → Roles → Permissions
  • A user is assigned one or more roles
  • Each role contains one or more permissions
  • Endpoint access requires a specific permission (or the Admin permission)

Admin Override ​

The Admin permission grants access to every endpoint. All permission checks include an implicit OR Admin clause:

java
@PreAuthorize("hasAnyAuthority('PermissionName', 'Admin')")

Default Roles ​

RolePermissionsPurpose
AdminAdminFull system access
Ingress OnlyDeltaFileIngressData ingestion service accounts
Read OnlyRead-only permissionsView-only access

Combined Permissions ​

Some endpoints require multiple permissions simultaneously:

  • DeltaFileReplayAndAcknowledge — requires both DeltaFileReplay and DeltaFileAcknowledge
  • SnapshotCreateAndRevert — requires both SnapshotCreate and SnapshotRevert

Permissions Catalog ​

Administration ​

PermissionDescription
AdminFull system access

General ​

PermissionDescription
UIAccessAccess to the UI
StatusViewView system status
StatusPausePause and resume system status checks
DashboardViewView the UI dashboard
VersionsViewView running versions

Metrics ​

PermissionDescription
MetricsAdminAdmin role in Grafana
MetricsViewViewer role in Grafana
MetricsEditEditor role in Grafana
SurveyCreatePost survey metrics into the system

DeltaFiles ​

PermissionDescription
DeltaFileMetadataViewQuery and view DeltaFile metadata
DeltaFileMetadataWriteUpdate DeltaFile metadata
DeltaFileContentViewView DeltaFile content
DeltaFileReplayReplay DeltaFiles
DeltaFileResumeResume DeltaFiles in an ERROR stage
DeltaFileAcknowledgeAcknowledge DeltaFiles in an ERROR stage
DeltaFileCancelCancel processing of a DeltaFile
DeltaFileInterruptInterrupt processing of an in-flight DeltaFile
DeltaFileUserNoteAdd user notes to a DeltaFile
DeltaFilePinningPin or unpin a DeltaFile
DeltaFileIngressIngress DeltaFiles
DeltaFileExportExport DeltaFiles
DeltaFileImportImport DeltaFiles

Flows ​

PermissionDescription
FlowViewView flows
FlowValidateValidate flows
FlowUpdateChange flow state and update flows
FlowPlanDeleteRemove flow plans from the system plugin
FlowPlanCreateSave flow plans in the system plugin

Plugins ​

PermissionDescription
PluginsViewView installed plugins
PluginInstallInstall plugins
PluginUninstallUninstall plugins
PluginVariableUpdateEdit plugin variables

System Properties ​

PermissionDescription
SystemPropertiesReadView System Properties
SystemPropertiesUpdateEdit System Properties

Delete Policies ​

PermissionDescription
DeletePolicyCreateCreate Delete Policies
DeletePolicyReadView Delete Policies
DeletePolicyUpdateEdit Delete Policies
DeletePolicyDeleteDelete Delete Policies

Snapshots ​

PermissionDescription
SnapshotCreateCreate Snapshots
SnapshotReadView Snapshots
SnapshotDeleteDelete Snapshots
SnapshotRevertRevert the system to a Snapshot

Users ​

PermissionDescription
UserCreateCreate Users
UserReadView Users
UserUpdateEdit Users
UserDeleteDelete Users

Roles ​

PermissionDescription
RoleCreateCreate Roles
RoleReadView Roles
RoleUpdateEdit Roles
RoleDeleteDelete Roles

Events ​

PermissionDescription
EventCreateCreate Events
EventReadView Events
EventUpdateEdit Events
EventDeleteDelete Events
EventAcknowledgeAcknowledge Events

Stress Tests ​

PermissionDescription
StressTestExecute Stress Tests

Lookup Tables ​

PermissionDescription
LookupTableCreateCreate Lookup Tables
LookupTableReadView Lookup Tables and their rows
LookupTableUpdateEdit Lookup Table rows and backing services
LookupTableDeleteDelete Lookup Tables and their rows

Integration Tests ​

PermissionDescription
IntegrationTestUpdateSave and start integration tests
IntegrationTestViewView integration test results
IntegrationTestDeleteDelete completed integration test results

Resume Policies ​

PermissionDescription
ResumePolicyApplyApply Resume Policies to DeltaFiles in an ERROR state
ResumePolicyDryRunPreview which DeltaFiles a policy would affect
ResumePolicyCreateCreate Resume Policies
ResumePolicyReadView Resume Policies
ResumePolicyUpdateEdit Resume Policies
ResumePolicyDeleteDelete Resume Policies

Artifacts ​

PermissionDescription
ArtifactRegistryReadRead artifacts from the artifact registry
ArtifactRegistryWriteWrite artifacts to the artifact registry

Open Endpoints ​

The following endpoints do not require authentication:

EndpointPurpose
POST /pluginsPlugin self-registration during startup
GET /api/v2/permissionsList all available permissions
GET /api/v2/meReturn current user info from headers

Contact US