@fairmint/canton-node-sdk
Version:
Canton Node SDK
458 lines (457 loc) • 11.7 kB
JSON
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"imagePullPolicy": {
"type": "string"
},
"auth": {
"type": "object",
"description": "The authentication configuration for the application"
},
"svValidator": {
"type": "boolean",
"description": "Whether this validator is part of an SV node"
},
"spliceInstanceNames": {
"type": "object",
"description": "The names unique for the splice instance, must be specified as provided in the docs"
},
"uiPollInterval": {
"type": "number",
"description": "The interval in milliseconds to poll the UI for updates"
}
},
"allOf": [
{
"if": {
"properties": {
"svValidator": {
"const": false
}
}
},
"then": {
"required": ["validatorPartyHint"],
"properties": {
"validatorPartyHint": {
"type": "string",
"pattern": "^[a-zA-Z0-9-_]+$",
"description": "The validator party hint to use for the validator"
}
}
},
"else": {
"required": [],
"properties": {
}
}
},
{
"if": {
"properties": {
"topup": {
"properties": {
"enabled": {
"const": true
}
}
}
}
},
"then": {
"required": ["topup"],
"properties": {
"topup": {
"type": "object",
"required": ["targetThroughput", "minTopupInterval"],
"properties": {
"targetThroughput": {
"type": "integer",
"minimum": 0
},
"minTopupInterval": {
"type": "string",
"pattern": "^[0-9]+[smh]$"
}
}
}
}
}
},
{
"required": [
"defaultJvmOptions",
"enableWallet",
"imageRepo",
"migration",
"nodeIdentifier",
"persistence",
"scanAddress",
"spliceInstanceNames"
],
"properties": {
"imageRepo": {
"type": "string"
},
"imageDigests": {
"type": "object"
},
"defaultJvmOptions": {
"type": "string"
},
"additionalJvmOptions": {
"type": "string"
},
"resources": {
"type": "object",
"properties": {
"limits": {
"type": "object",
"properties": {
"cpu": {
"type": ["number", "string"]
},
"memory": {
"type": ["number", "string"]
}
}
},
"requests": {
"type": "object",
"properties": {
"cpu": {
"type": ["number", "string"]
},
"memory": {
"type": ["number", "string"]
}
}
}
}
},
"metrics": {
"type": "object",
"properties": {
"enable": {
"type": "boolean"
},
"release": {
"type": "string"
},
"interval": {
"type": "string",
"pattern": "^[0-9]+[smh]$"
}
}
},
"persistence": {
"type": "object",
"required": [
"databaseName",
"schema",
"host",
"port",
"user",
"secretName"
],
"properties": {
"databaseName": {
"type": "string"
},
"schema": {
"type": "string"
},
"host": {
"type": "string"
},
"port": {
"type": "integer"
},
"user": {
"type": "string"
},
"secretName": {
"type": "string"
}
}
},
"migrateValidatorParty": {
"type": "boolean"
},
"migration": {
"type": "object",
"required": ["id"],
"properties": {
"id": {
"description": "The migration id of the synchronizer"
},
"migrating": {
"type": "boolean"
},
"attachPvc": {
"type": "boolean"
}
}
},
"pvc": {
"type": "object",
"properties": {
"volumeName": {
"type": "string"
},
"volumeStorageClass": {
"type": "string"
}
}
},
"failOnAppVersionMismatch": {
"type": "boolean"
},
"fixedTokens": {
"type": "boolean"
},
"enableWallet": {
"type": "boolean"
},
"enablePostgresMetrics": {
"type": "boolean"
},
"nodeSelector": {
"type": "object"
},
"affinity": {
"type": "object"
},
"tolerations": {
"type": "array"
},
"auth": {
"type": "object",
"required": ["audience", "jwksUrl"],
"properties": {
"audience": {
"type": "string",
"description": "The JWT audience for tokens used against the validator app API"
},
"jwksUrl": {
"type": "string",
"pattern": "^http[s]?://.+$",
"description": "The URL for the JWKS endpoint for the validator app API"
}
}
},
"disableAuth": {
"type": "boolean"
},
"if": {
"properties": {
"disableAuth": {
"const": "true"
}
}
},
"then": {
"required": [
"auth"
]
},
"scanAddress": {
"type": "string"
},
"nonSvValidatorTrustSingleScan": {
"type": "boolean"
},
"useSequencerConnectionsFromScan": {
"type": "boolean"
},
"extraDomains": {
"type": "array",
"items": {
"type": "object",
"properties": {
"alias": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"participantIdentitiesDumpPeriodicBackup": {
"type": "object",
"properties": {
"backupInterval": {
"type": "string",
"pattern": "^[0-9]+[smh]$"
},
"location": {
"type": "object",
"properties": {
"bucket": {
"type": "object",
"properties": {
"jsonCredentials": {
"type": "string"
},
"projectId": {
"type": "string"
},
"secretName": {
"type": "string"
}
}
},
"prefix": {
"type": "string"
}
}
}
}
},
"participantAddress": {
"type": "string"
},
"svSponsorAddress": {
"type": "string"
},
"nodeIdentifier": {
"type": "string"
},
"appDars": {
"type": "array",
"items": {
"type": "string"
}
},
"additionalUsers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"additionalConfig": {
"type": "string"
},
"cluster": {
"type": "object",
"properties": {
"fixedTokens": {
"type": "boolean"
}
}
},
"onboardingSecretFrom": {
"type": "object",
"properties": {
"secretKeyRef": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"optional": {
"type": "boolean"
}
}
}
}
},
"disableIngestUpdateHistoryFromParticipantBegin": {
"type": "boolean"
},
"contactPoint": {
"type": "string"
},
"livenessProbeInitialDelaySeconds": {
"type": "integer"
},
"participantIdentitiesDumpImport": {
"type": "object",
"properties": {
"newParticipantIdentifier": {
"type": "string"
},
"secretName": {
"type": "string"
}
}
},
"spliceInstanceNames": {
"type": "object",
"properties": {
"networkName": {
"type": "string",
"pattern": "^[a-zA-Z0-9-_ ]+$",
"description": "The name of the network as provided in the docs"
},
"networkFaviconUrl": {
"type": "string",
"pattern": "^http[s]?://.+$",
"description": "The URL for the favicon for the network as provided in the docs"
},
"amuletName": {
"type": "string",
"pattern": "^[a-zA-Z0-9-_ ]+$",
"description": "The name of Amulets on this network, as provided in the docs"
},
"amuletNameAcronym": {
"type": "string",
"pattern": "^[a-zA-Z0-9]+$",
"description": "The acronym for the name of Amulets on this network, as provided in the docs"
},
"nameServiceName": {
"type": "string",
"pattern": "^[a-zA-Z0-9-_ ]+$",
"description": "The name of the Name Service on this network, as provided in the docs"
},
"nameServiceNameAcronym": {
"type": "string",
"pattern": "^[a-zA-Z0-9]+$",
"description": "The acornum of the name of Name Service on this network, as provided in the docs"
}
}
},
"txLogBackfilling": {
"type": "object",
"enabled": {
"type": "boolean"
},
"batchSize": {
"type": "integer"
}
}
}
},
{
"oneOf": [
{
"properties": {
"validatorWalletUser": { "type": "string" }
},
"required": ["validatorWalletUser"],
"not": { "required": ["validatorWalletUsers"] }
},
{
"properties": {
"validatorWalletUsers": { "type": "array", "items": { "type": "string" } }
},
"required": ["validatorWalletUsers"],
"not": { "required": ["validatorWalletUser"] }
}
]
}
]
}