System GraphQL API
Queries and mutations for system configuration — properties, snapshots, SSL/TLS management, SpEL expression validation, links, and lookup tables.
Properties
Queries
Get Property Sets
query {
getPropertySets(splitByGroup: true) {
id
displayName
description
properties {
key
description
defaultValue
value
propertySource
dataType
refreshable
editable
}
}
}Permission: SystemPropertiesRead
Get DeltaFi Properties
Returns all system configuration properties as a typed object.
query {
getDeltaFiProperties {
systemName
ingressEnabled
egressEnabled
ageOffDays
deleteFrequency
inMemoryQueueSize
maxFlowDepth
requeueDuration
autoResumeCheckFrequency
metricsEnabled
uiUseUTC
topBarBackgroundColor
securityBannerText
securityBannerEnabled
messageOfTheDay
}
}Permission: SystemPropertiesRead
Mutations
Update Properties
mutation {
updateProperties(updates: [
{ key: "ageOffDays", value: "30" },
{ key: "inMemoryQueueSize", value: "10000" }
])
}Permission: SystemPropertiesUpdate
Remove Property Overrides
Reset properties to their default values.
mutation {
removePropertyOverrides(propertyNames: ["ageOffDays", "inMemoryQueueSize"])
}Permission: SystemPropertiesUpdate
Links
Manage custom links displayed in the DeltaFi UI.
# Save or update a link
mutation {
saveLink(link: {
name: "Grafana"
url: "https://grafana.example.com"
description: "Metrics dashboard"
linkType: EXTERNAL
}) {
id name url linkType
}
}
# Remove a link
mutation {
removeLink(id: "550e8400-e29b-41d4-a716-446655440000")
}Link types: EXTERNAL (opens in new tab), DELTAFILE_LINK (contextual link on DeltaFile pages)
Permission: SystemPropertiesUpdate
System Snapshots
Snapshots capture the full system configuration for backup and restore.
systemId and coreVersion identify the system and DeltaFi version that created the snapshot. They are informational and are not applied when a snapshot is restored.
Queries
# List all snapshots
query {
getSystemSnapshots {
id reason created schemaVersion
}
}
# Get a specific snapshot
query {
getSystemSnapshot(snapshotId: "550e8400-...") {
id reason created schemaVersion systemId coreVersion snapshot
}
}
# Paginated/filtered snapshots
query {
getSystemSnapshotsByFilter(
offset: 0
limit: 10
filter: { createdAfter: "2024-01-01T00:00:00Z" }
sortField: CREATED
direction: DESC
) {
totalCount
systemSnapshots { id reason created }
}
}Permission: SnapshotRead
Mutations
# Create a snapshot
mutation {
snapshotSystem(reason: "Before upgrade") {
id created
}
}
# Restore from a snapshot
mutation {
resetFromSnapshotWithId(snapshotId: "550e8400-...", hardReset: false) {
success errors
}
}
# Import a snapshot from external source
mutation {
importSnapshot(snapshot: {
id: "550e8400-..."
reason: "Imported from production"
created: "2024-01-15T10:00:00Z"
schemaVersion: 1
snapshot: {}
}) {
id created
}
}
# Import and immediately apply
mutation {
importSnapshotAndReset(snapshot: {...}, hardReset: false) {
success errors
}
}
# Delete a snapshot
mutation {
deleteSnapshot(snapshotId: "550e8400-...") {
success
}
}Permissions: SnapshotCreate (create), SnapshotRevert (reset), SnapshotCreate and SnapshotRevert (import and reset), SnapshotDelete (delete)
SSL/TLS Management
Queries
# Get a specific key/cert pair
query {
getKeyCert(secretName: "my-tls-secret") {
secretName
cert {
commonName
validFrom
validTo
daysUntilExpiration
isExpired
isValid
issuer
subjectAlternativeNames
fingerprints { certificate publicKey }
}
usedBy
}
}
# Get all SSL settings
query {
sslSettings {
keys {
secretName
cert { commonName isValid daysUntilExpiration }
usedBy
}
caChain
}
}Permission: SystemPropertiesRead
Mutations
# Save a key/cert pair
mutation {
saveKeyCert(
secretName: "my-tls-secret"
keyCertPair: {
key: "-----BEGIN PRIVATE KEY-----\n..."
cert: "-----BEGIN CERTIFICATE-----\n..."
keyPassphrase: "optional-passphrase"
}
) {
secretName
cert { commonName isValid }
}
}
# Delete a key/cert pair
mutation {
deleteKeyCert(secretName: "my-tls-secret") {
secretName
}
}
# Append to CA chain
mutation {
appendToCaChain(certs: "-----BEGIN CERTIFICATE-----\n...")
}
# Replace entire CA chain
mutation {
saveCaChain(certs: "-----BEGIN CERTIFICATE-----\n...")
}Permission: SystemPropertiesUpdate
SpEL Expression Validation
Test and validate Spring Expression Language (SpEL) expressions used in publish-subscribe routing conditions.
# Test an expression with sample data
mutation {
testSpelExpression(
expression: "metadata['type'] == 'important'"
mode: CONDITION
testData: {
metadata: [{ key: "type", value: "important" }]
content: [{ name: "file.txt", mediaType: "text/plain", size: 1024 }]
deltaFileName: "test.txt"
}
) {
valid
result
errorMessage
errorPosition
}
}
# Validate expression syntax only
mutation {
validateSpelExpression(expression: "metadata['key'] != null", mode: CONDITION) {
valid
errorMessage
errorPosition
}
}Expression modes: CONDITION (evaluates to boolean), TEMPLATE (evaluates to string)
Permission: FlowUpdate
Lookup Tables
Lookup tables provide key-value reference data that actions can query during processing. For background, see Lookup Tables.
Queries
# List all lookup tables
query {
getLookupTables {
name
columns
keyColumns
serviceBacked
backingServiceActive
totalRows
}
}
# Get a specific table
query {
getLookupTable(lookupTableName: "country-codes") {
name
columns
keyColumns
totalRows
refreshDuration
lastRefresh
}
}
# Query table data
query {
lookup(
lookupTableName: "country-codes"
matchingColumnValues: [{ column: "code", value: ["US", "GB"] }]
resultColumns: ["code", "name"]
sortColumn: "name"
sortDirection: ASC
offset: 0
limit: 50
) {
totalCount
rows
}
}Permission: SystemPropertiesRead
Mutations
# Create a lookup table
mutation {
createLookupTable(lookupTableInput: {
name: "country-codes"
columns: ["code", "name", "region"]
keyColumns: ["code"]
serviceBacked: false
backingServiceActive: false
pullThrough: false
}) {
success
}
}
# Insert or update rows
mutation {
upsertLookupTableRows(
lookupTableName: "country-codes"
rows: [
[{ column: "code", value: "US" }, { column: "name", value: "United States" }, { column: "region", value: "Americas" }],
[{ column: "code", value: "GB" }, { column: "name", value: "United Kingdom" }, { column: "region", value: "Europe" }]
]
) {
success
}
}
# Remove rows
mutation {
removeLookupTableRows(
lookupTableName: "country-codes"
rows: [
[{ column: "code", value: "US" }]
]
) {
success
}
}
# Toggle backing service
mutation {
setLookupTableBackingServiceActive(lookupTableName: "country-codes", active: true) {
success
}
}
# Delete a table
mutation {
deleteLookupTable(lookupTableName: "country-codes") {
success
}
}Permission: SystemPropertiesUpdate
Miscellaneous Queries
Version
query { version }Export Configuration
Export the entire system configuration as YAML.
query { exportConfigAsYaml }Permission: SystemPropertiesRead
Stress Testing
Generate test data for load testing.
# Generate test DeltaFiles
mutation {
stressTest(
flow: "test-source"
contentSize: 1024
numFiles: 1000
batchSize: 100
metadata: [{ key: "test", value: "true" }]
)
}
# Generate test analytic events
mutation {
stressTestAnalyticEvents(numRecords: 10000, hours: 24)
}Permission: StressTest

