@fairmint/canton-node-sdk
Version:
Canton Node SDK
1,288 lines (1,287 loc) • 41.9 kB
JSON
[
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"imagePullSecrets": [
{
"name": "docker-reg-cred"
}
],
"kind": "ServiceAccount",
"metadata": {
"name": "default",
"namespace": "cluster-ingress"
}
},
"name": "cluster-ingress-default",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:kubernetes::k8s-imgpull-cluster-ingress-default::undefined_id",
"type": "kubernetes:core/v1:ServiceAccountPatch"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "docker-reg-cred",
"namespace": "cluster-ingress"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
".dockerconfigjson": "{\"auths\":{\"digitalasset-canton-enterprise-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker-dev.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"us-central1-docker.pkg.dev\":{\"auth\":\"X2pzb25fa2V5OnsidHlwZSI6InNlcnZpY2VfYWNjb3VudCIsInByb2plY3RfaWQiOiJmYWtlLXByb2plY3QiLCJwcml2YXRlX2tleV9pZCI6ImZha2VfaWQiLCJwcml2YXRlX2tleSI6Ii0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuZmFrZVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwiY2xpZW50X2VtYWlsIjoiZmFrZUBmYWtlLXByb2plY3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJjbGllbnRfaWQiOiJmYWtlLWNsaWVudC1pZCIsImF1dGhfdXJpIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCJ0b2tlbl91cmkiOiJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsImNsaWVudF94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9mYWtlJTQwZmFrZS1wcm9qZWN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwidW5pdmVyc2VfZG9tYWluIjoiZ29vZ2xlYXBpcy5jb20ifQ==\",\"username\":\"_json_key\",\"password\":\"{\\\"type\\\":\\\"service_account\\\",\\\"project_id\\\":\\\"fake-project\\\",\\\"private_key_id\\\":\\\"fake_id\\\",\\\"private_key\\\":\\\"-----BEGIN PRIVATE KEY-----\\\\nfake\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\":\\\"fake@fake-project.iam.gserviceaccount.com\\\",\\\"client_id\\\":\\\"fake-client-id\\\",\\\"auth_uri\\\":\\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\":\\\"https://oauth2.googleapis.com/token\\\",\\\"auth_provider_x509_cert_url\\\":\\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\":\\\"https://www.googleapis.com/robot/v1/metadata/x509/fake%40fake-project.iam.gserviceaccount.com\\\",\\\"universe_domain\\\":\\\"googleapis.com\\\"}\"}}}"
}
},
"type": "kubernetes.io/dockerconfigjson"
},
"name": "cluster-ingress-docker-reg-cred",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-cluster-ingress-runbook",
"compat": "true",
"maxHistory": 10,
"name": "cluster-ingress-sv",
"namespace": "sv",
"timeout": 600,
"values": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"cluster": {
"hostname": "mock.global.canton.network.digitalasset.com",
"svNamespace": "sv"
},
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"ingress": {
"decentralizedSynchronizer": {
"migrationIds": [
"3",
"4"
]
}
},
"rateLimit": {
"scan": {
"enable": false
}
},
"spliceDomainNames": {
"nameServiceDomain": "cns"
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
]
},
"version": "0.3.20"
},
"name": "cluster-ingress-sv",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"postgresPassword": ""
}
},
"kind": "Secret",
"metadata": {
"name": "apps-pg-secret",
"namespace": "sv"
},
"type": "Opaque"
},
"name": "cn-app-sv-apps-pg-secret",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"json-credentials": "eyJidWNrZXROYW1lIjoiZGF0YS1leHBvcnQtYnVja2V0LW5hbWUiLCJzZWNyZXROYW1lIjoiZGF0YS1leHBvcnQtYnVja2V0LXNhLWtleS1zZWNyZXQiLCJqc29uQ3JlZGVudGlhbHMiOiJkYXRhLWV4cG9ydC1idWNrZXQtc2Eta2V5LXNlY3JldC1jcmVkcyJ9"
}
},
"kind": "Secret",
"metadata": {
"name": "cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps",
"namespace": "sv"
},
"type": "Opaque"
},
"name": "cn-app-sv-cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"private": "c3YtaWQtcHJpdmF0ZS1rZXk=",
"public": "c3YtaWQtcHVibGljLWtleQ=="
}
},
"kind": "Secret",
"metadata": {
"name": "splice-app-sv-key",
"namespace": "sv"
},
"type": "Opaque"
},
"name": "cn-app-sv-key",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-info",
"compat": "true",
"maxHistory": 10,
"name": "info",
"namespace": "sv",
"timeout": 600,
"values": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"deploymentDetails": {
"configDigest": {
"allowedIpRanges": {
"type": "md5",
"value": "90eedde4a8599204a45dcb972e212c8b"
},
"approvedSvIdentities": {
"type": "md5",
"value": "5871224b744b45122540483fddbd550f"
}
},
"network": "test",
"sv": {
"version": "0.3.20"
},
"synchronizer": {
"active": {
"chainIdSuffix": "4",
"migrationId": 3
}
}
},
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"istioVirtualService": {
"gateway": "cluster-ingress/cn-http-gateway",
"host": "info.sv.mock.global.canton.network.digitalasset.com"
},
"nginxImage": "nginx:latest",
"runtimeDetails": {
"scanUrl": "http://scan-app.sv:5012"
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
]
},
"version": "0.3.20"
},
"name": "info",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
},
{
"custom": true,
"id": "",
"inputs": {
"enableServerSideApply": "true"
},
"name": "k8s-imgpull-cluster-ingress-default",
"provider": "",
"type": "pulumi:providers:kubernetes"
},
{
"custom": true,
"id": "",
"inputs": {
"enableServerSideApply": "true"
},
"name": "k8s-imgpull-sv-default",
"provider": "",
"type": "pulumi:providers:kubernetes"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "VirtualService",
"metadata": {
"name": "cometbft-loopback",
"namespace": "sv"
},
"spec": {
"exportTo": [
"."
],
"gateways": [
"mesh"
],
"hosts": [
"mock.global.canton.network.digitalasset.com"
],
"tcp": [
{
"match": [
{
"gateways": [
"mesh"
]
}
],
"route": [
{
"destination": {
"host": "istio-ingress-cometbft.cluster-ingress.svc.cluster.local"
}
}
]
}
]
}
},
"name": "loopback-cometbft-sv",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:VirtualService"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "ServiceEntry",
"metadata": {
"name": "loopback",
"namespace": "sv"
},
"spec": {
"exportTo": [
"."
],
"hosts": [
"mock.global.canton.network.digitalasset.com"
],
"ports": [
{
"name": "http-port",
"number": 80,
"protocol": "HTTP"
},
{
"name": "tls",
"number": 443,
"protocol": "TLS"
},
{
"name": "grpc-domain",
"number": 5008,
"protocol": "GRPC"
},
{
"name": "cometbft-0-0-p2p",
"number": 26006,
"protocol": "TCP"
},
{
"name": "cometbft-0-1-p2p",
"number": 26016,
"protocol": "TCP"
},
{
"name": "cometbft-0-2-p2p",
"number": 26026,
"protocol": "TCP"
},
{
"name": "cometbft-1-0-p2p",
"number": 26106,
"protocol": "TCP"
},
{
"name": "cometbft-1-1-p2p",
"number": 26116,
"protocol": "TCP"
},
{
"name": "cometbft-1-2-p2p",
"number": 26126,
"protocol": "TCP"
},
{
"name": "cometbft-2-0-p2p",
"number": 26206,
"protocol": "TCP"
},
{
"name": "cometbft-2-1-p2p",
"number": 26216,
"protocol": "TCP"
},
{
"name": "cometbft-2-2-p2p",
"number": 26226,
"protocol": "TCP"
},
{
"name": "cometbft-3-0-p2p",
"number": 26306,
"protocol": "TCP"
},
{
"name": "cometbft-3-1-p2p",
"number": 26316,
"protocol": "TCP"
},
{
"name": "cometbft-3-2-p2p",
"number": 26326,
"protocol": "TCP"
},
{
"name": "cometbft-4-0-p2p",
"number": 26406,
"protocol": "TCP"
},
{
"name": "cometbft-4-1-p2p",
"number": 26416,
"protocol": "TCP"
},
{
"name": "cometbft-4-2-p2p",
"number": 26426,
"protocol": "TCP"
}
],
"resolution": "DNS"
}
},
"name": "loopback-service-entry-sv",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:ServiceEntry"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "VirtualService",
"metadata": {
"name": "direct-loopback-through-ingress-gateway",
"namespace": "sv"
},
"spec": {
"exportTo": [
"."
],
"gateways": [
"mesh"
],
"hosts": [
"mock.global.canton.network.digitalasset.com",
"validator.mock.global.canton.network.digitalasset.com",
"*.validator.mock.global.canton.network.digitalasset.com",
"validator1.mock.global.canton.network.digitalasset.com",
"*.validator1.mock.global.canton.network.digitalasset.com",
"splitwell.mock.global.canton.network.digitalasset.com",
"*.splitwell.mock.global.canton.network.digitalasset.com",
"sv-2.mock.global.canton.network.digitalasset.com",
"*.sv-2.mock.global.canton.network.digitalasset.com",
"sv-1.mock.global.canton.network.digitalasset.com",
"*.sv-1.mock.global.canton.network.digitalasset.com",
"sv.mock.global.canton.network.digitalasset.com",
"*.sv.mock.global.canton.network.digitalasset.com"
],
"http": [
{
"match": [
{
"gateways": [
"mesh"
]
}
],
"route": [
{
"destination": {
"host": "istio-ingress.cluster-ingress.svc.cluster.local"
}
}
]
}
],
"tls": [
{
"match": [
{
"gateways": [
"mesh"
],
"sniHosts": [
"mock.global.canton.network.digitalasset.com",
"validator.mock.global.canton.network.digitalasset.com",
"*.validator.mock.global.canton.network.digitalasset.com",
"validator1.mock.global.canton.network.digitalasset.com",
"*.validator1.mock.global.canton.network.digitalasset.com",
"splitwell.mock.global.canton.network.digitalasset.com",
"*.splitwell.mock.global.canton.network.digitalasset.com",
"sv-2.mock.global.canton.network.digitalasset.com",
"*.sv-2.mock.global.canton.network.digitalasset.com",
"sv-1.mock.global.canton.network.digitalasset.com",
"*.sv-1.mock.global.canton.network.digitalasset.com",
"sv.mock.global.canton.network.digitalasset.com",
"*.sv.mock.global.canton.network.digitalasset.com"
]
}
],
"route": [
{
"destination": {
"host": "istio-ingress.cluster-ingress.svc.cluster.local"
}
}
]
}
]
}
},
"name": "loopback-virtual-service-sv",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:VirtualService"
},
{
"custom": true,
"id": "organization/infra/infra.mock",
"inputs": {
"name": "organization/infra/infra.mock"
},
"name": "organization/infra/infra.mock",
"provider": "",
"type": "pulumi:pulumi:StackReference"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-scan",
"compat": "true",
"maxHistory": 10,
"name": "scan",
"namespace": "sv",
"timeout": 600,
"values": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"enablePostgresMetrics": true,
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"mediatorAddress": "global-domain-3-mediator",
"metrics": {
"enable": true
},
"migration": {
"id": "3"
},
"participantAddress": "participant-3",
"persistence": {
"host": "apps-pg.sv.svc.cluster.local",
"postgresName": "apps-pg",
"secretName": "apps-pg-secret"
},
"resources": {
"limits": {
"memory": "2048Mi"
},
"requests": {
"cpu": "0.5",
"memory": "1536Mi"
}
},
"sequencerAddress": "global-domain-3-sequencer",
"spliceInstanceNames": {
"amuletName": "Amulet",
"amuletNameAcronym": "AMT",
"nameServiceName": "Amulet Name Service",
"nameServiceNameAcronym": "ANS",
"networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png",
"networkName": "Splice"
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
]
},
"version": "0.3.20"
},
"name": "scan",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "splice-app-sv-ledger-api-auth",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"audience": "https://ledger_api.example.com",
"client-id": "sv-client-id",
"client-secret": "***",
"ledger-api-user": "sv-client-id@clients",
"url": "https://canton-network-sv-test.us.auth0.com/.well-known/openid-configuration"
}
}
},
"name": "splice-auth0-secret-sv-sv",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "splice-app-validator-ledger-api-auth",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"audience": "https://ledger_api.example.com",
"client-id": "validator-client-id",
"client-secret": "***",
"ledger-api-user": "validator-client-id@clients",
"url": "https://canton-network-sv-test.us.auth0.com/.well-known/openid-configuration"
}
}
},
"name": "splice-auth0-secret-sv-validator",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "splice-app-cns-ui-auth",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"client-id": "cns-client-id",
"url": "https://canton-network-sv-test.us.auth0.com"
}
}
},
"name": "splice-auth0-ui-secret-sv-cns",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "splice-app-sv-ui-auth",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"client-id": "sv-client-id",
"url": "https://canton-network-sv-test.us.auth0.com"
}
}
},
"name": "splice-auth0-ui-secret-sv-sv",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "splice-app-wallet-ui-auth",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"client-id": "wallet-client-id",
"url": "https://canton-network-sv-test.us.auth0.com"
}
}
},
"name": "splice-auth0-ui-secret-sv-wallet",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": false,
"id": "",
"inputs": {},
"name": "splice-sv-scan-app-rate-limit",
"provider": "",
"type": "splice:RateLimit"
},
{
"custom": true,
"id": "",
"inputs": {
"length": 16,
"overrideSpecial": "_%@",
"special": true
},
"name": "sv-apps-pg-passwd",
"provider": "",
"type": "random:index/randomPassword:RandomPassword"
},
{
"custom": false,
"id": "",
"inputs": {},
"name": "sv-apps-pg",
"provider": "",
"type": "canton:network:postgres"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-postgres",
"compat": "true",
"maxHistory": 10,
"name": "apps-pg",
"namespace": "sv",
"timeout": 600,
"values": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"cluster": {
"dnsName": "mock.global.canton.network.digitalasset.com",
"fixedTokens": false,
"hostname": "mock.global.canton.network.digitalasset.com",
"name": "cn-mocknet"
},
"db": {
"volumeSize": "48Gi"
},
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"persistence": {
"secretName": "apps-pg-secret"
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
]
},
"version": "0.3.20"
},
"name": "sv-apps-pg",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-sv-node",
"compat": "true",
"maxHistory": 10,
"name": "sv-app",
"namespace": "sv",
"timeout": 600,
"values": {
"additionalEnvVars": [
{
"name": "CUSTOM_MOCK_ENV_VAR_NAME",
"value": "CUSTOM_MOCK_ENV_VAR_VALUE"
},
{
"name": "ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION",
"value": "canton.sv-apps.sv.bft-sequencer-connection = false"
}
],
"additionalJvmOptions": "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -DcustomSvAppJvmFlag",
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"approvedSvIdentities": [
{
"name": "Digital-Asset-2",
"publicKey": "sv1-id-public-key",
"rewardWeightBps": 100000
},
{
"name": "SV1",
"publicKey": "PUBLIC_KEY_1==",
"rewardWeightBps": 1000000
},
{
"extraBeneficiaries": [
{
"beneficiary": "mock-validator-1::123456789012345678901234567890123456789012234567890123456789012345678",
"weight": 100000
},
{
"beneficiary": "Broadridge-validator-1::1220c89a73e7b47f16dfb48a521eeedfe2a8620ea1b19b815ab427388d9f5427faa5",
"weight": 50000
}
],
"name": "SV2",
"publicKey": "PUBLIC_KEY_2==",
"rewardWeightBps": 150000
},
{
"name": "Digital-Asset-1",
"publicKey": "svda1-mock-id-public-key",
"rewardWeightBps": 150000
},
{
"name": "DA-Helm-Test-Node",
"publicKey": "sv-id-public-key",
"rewardWeightBps": 10000
}
],
"auth": {
"audience": "https://sv.example.com/api",
"jwksUrl": "https://canton-network-sv-test.us.auth0.com/.well-known/jwks.json"
},
"cometBFT": {
"connectionUri": "http://global-domain-3-cometbft-cometbft-rpc:26657",
"enabled": true
},
"contactPoint": "sv-support@digitalasset.com",
"decentralizedSynchronizerUrl": "https://sequencer-3.sv-2.mock.global.canton.network.digitalasset.com",
"disableOnboardingParticipantPromotionDelay": false,
"domain": {
"enableBftSequencer": false,
"mediatorAddress": "global-domain-3-mediator",
"sequencerAddress": "global-domain-3-sequencer",
"sequencerAvailabilityDelay": "60 seconds",
"sequencerPruningConfig": {
"enabled": true,
"pruningInterval": "1 hours",
"retentionPeriod": "30 days"
},
"sequencerPublicUrl": "https://sequencer-3.sv.mock.global.canton.network.digitalasset.com",
"skipInitialization": true
},
"enablePostgresMetrics": true,
"extraBeneficiaries": [
{
"beneficiary": "dummy::partyId",
"weight": 3333
}
],
"failOnAppVersionMismatch": true,
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"initialAmuletPrice": "0.0517",
"joinWithKeyOnboarding": {
"sponsorApiUrl": "https://sv.sv-2.mock.global.canton.network.digitalasset.com"
},
"logAsyncFlush": false,
"logLevel": "WARN",
"maxVettingDelay": "1m",
"metrics": {
"enable": true
},
"migration": {
"id": "3"
},
"nodeIdentifier": "DA-Helm-Test-Node",
"onboardingName": "DA-Helm-Test-Node",
"participantAddress": "participant-3",
"persistence": {
"host": "apps-pg.sv.svc.cluster.local",
"postgresName": "apps-pg",
"secretName": "apps-pg-secret"
},
"resources": {
"limits": {
"memory": "2Gi"
},
"requests": {
"cpu": "1",
"memory": "1Gi"
}
},
"scan": {
"internalUrl": "http://scan-app.sv:5012",
"publicUrl": "https://scan.sv.mock.global.canton.network.digitalasset.com"
},
"spliceInstanceNames": {
"amuletName": "Amulet",
"amuletNameAcronym": "AMT",
"nameServiceName": "Amulet Name Service",
"nameServiceNameAcronym": "ANS",
"networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png",
"networkName": "Splice"
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
]
},
"version": "0.3.20"
},
"name": "sv-app",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"imagePullSecrets": [
{
"name": "docker-reg-cred"
}
],
"kind": "ServiceAccount",
"metadata": {
"name": "default",
"namespace": "sv"
}
},
"name": "sv-default",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:kubernetes::k8s-imgpull-sv-default::undefined_id",
"type": "kubernetes:core/v1:ServiceAccountPatch"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Secret",
"metadata": {
"name": "docker-reg-cred",
"namespace": "sv"
},
"stringData": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
".dockerconfigjson": "{\"auths\":{\"digitalasset-canton-enterprise-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker-dev.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"us-central1-docker.pkg.dev\":{\"auth\":\"X2pzb25fa2V5OnsidHlwZSI6InNlcnZpY2VfYWNjb3VudCIsInByb2plY3RfaWQiOiJmYWtlLXByb2plY3QiLCJwcml2YXRlX2tleV9pZCI6ImZha2VfaWQiLCJwcml2YXRlX2tleSI6Ii0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuZmFrZVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwiY2xpZW50X2VtYWlsIjoiZmFrZUBmYWtlLXByb2plY3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJjbGllbnRfaWQiOiJmYWtlLWNsaWVudC1pZCIsImF1dGhfdXJpIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCJ0b2tlbl91cmkiOiJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsImNsaWVudF94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9mYWtlJTQwZmFrZS1wcm9qZWN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwidW5pdmVyc2VfZG9tYWluIjoiZ29vZ2xlYXBpcy5jb20ifQ==\",\"username\":\"_json_key\",\"password\":\"{\\\"type\\\":\\\"service_account\\\",\\\"project_id\\\":\\\"fake-project\\\",\\\"private_key_id\\\":\\\"fake_id\\\",\\\"private_key\\\":\\\"-----BEGIN PRIVATE KEY-----\\\\nfake\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\":\\\"fake@fake-project.iam.gserviceaccount.com\\\",\\\"client_id\\\":\\\"fake-client-id\\\",\\\"auth_uri\\\":\\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\":\\\"https://oauth2.googleapis.com/token\\\",\\\"auth_provider_x509_cert_url\\\":\\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\":\\\"https://www.googleapis.com/robot/v1/metadata/x509/fake%40fake-project.iam.gserviceaccount.com\\\",\\\"universe_domain\\\":\\\"googleapis.com\\\"}\"}}}"
}
},
"type": "kubernetes.io/dockerconfigjson"
},
"name": "sv-docker-reg-cred",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "EnvoyFilter",
"metadata": {
"annotations": {
"proxy.istio.io/config": "proxyStatsMatcher:\n inclusionRegexps:\n - \".*http_local_rate_limit.*\""
},
"name": "scan-app-rate-limit",
"namespace": "sv"
},
"spec": {
"configPatches": [
{
"applyTo": "HTTP_FILTER",
"match": {
"context": "SIDECAR_INBOUND",
"listener": {
"filterChain": {
"filter": {
"name": "envoy.filters.network.http_connection_manager"
}
}
}
},
"patch": {
"operation": "INSERT_BEFORE",
"value": {
"name": "envoy.filters.http.local_ratelimit",
"typed_config": {
"@type": "type.googleapis.com/udpa.type.v1.TypedStruct",
"type_url": "type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit",
"value": {
"stat_prefix": "http_local_rate_limiter"
}
}
}
}
},
{
"applyTo": "HTTP_ROUTE",
"match": {
"context": "SIDECAR_INBOUND",
"routeConfiguration": {
"vhost": {
"name": "inbound|http|5012",
"route": {
"action": "ANY"
}
}
}
},
"patch": {
"operation": "MERGE",
"value": {
"route": {
"rate_limits": [
{
"actions": [
{
"header_value_match": {
"descriptor_value": "acs",
"expect_match": true,
"headers": [
{
"name": ":path",
"string_match": {
"ignore_case": true,
"prefix": "/api/scan/v0/acs"
}
}
]
}
},
{
"request_headers": {
"descriptor_key": "client_ip",
"header_name": "x-forwarded-for"
}
}
]
}
]
},
"typed_per_filter_config": {
"envoy.filters.http.local_ratelimit": {
"@type": "type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit",
"descriptors": [
{
"entries": [
{
"key": "header_match",
"value": "acs"
},
{
"key": "client_ip"
}
],
"token_bucket": {
"fill_interval": "60s",
"max_tokens": 10,
"tokens_per_fill": 5
}
}
],
"filter_enabled": {
"default_value": {
"denominator": "HUNDRED",
"numerator": 100
},
"runtime_key": "local_rate_limit_enabled"
},
"filter_enforced": {
"default_value": {
"denominator": "HUNDRED",
"numerator": 100
},
"runtime_key": "local_rate_limit_enforced"
},
"response_headers_to_add": [
{
"append_action": "OVERWRITE_IF_EXISTS_OR_ADD",
"header": {
"key": "x-local-rate-limit",
"value": "true"
}
}
],
"stat_prefix": "http_local_rate_limiter",
"token_bucket": {
"fill_interval": "60s",
"max_tokens": 2147483647,
"tokens_per_fill": 2147483647
}
}
}
}
}
}
],
"workloadSelector": {
"labels": {
"app": "scan-app"
}
}
}
},
"name": "sv-scan-app-rate-limit",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:EnvoyFilter"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"labels": {
"istio-injection": "enabled"
},
"name": "sv"
}
},
"name": "sv",
"provider": "",
"type": "kubernetes:core/v1:Namespace"
},
{
"custom": true,
"id": "",
"inputs": {
"chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-validator",
"compat": "true",
"maxHistory": 10,
"name": "validator",
"namespace": "sv",
"timeout": 600,
"values": {
"additionalEnvVars": [
{
"name": "ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION",
"value": "canton.validator-apps.validator_backend.disable-sv-validator-bft-sequencer-connection = true"
},
{
"name": "ADDITIONAL_CONFIG_TOPOLOGY_METRICS_EXPORT",
"value": "canton.validator-apps.validator_backend.automation.topology-metrics-polling-interval = 5m\n"
}
],
"additionalJvmOptions": "-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1",
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_apps",
"operator": "Exists"
}
]
}
]
}
}
},
"auth": {
"audience": "https://validator.example.com/api",
"jwksUrl": "https://canton-network-sv-test.us.auth0.com/.well-known/jwks.json"
},
"contactPoint": "sv-support@digitalasset.com",
"decentralizedSynchronizerUrl": "https://sequencer-3.sv-2.mock.global.canton.network.digitalasset.com",
"enablePostgresMetrics": true,
"enableWallet": true,
"imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker",
"maxVettingDelay": "1m",
"metrics": {
"enable": true
},
"migration": {
"id": "3"
},
"nodeIdentifier": "DA-Helm-Test-Node",
"participantAddress": "participant-3",
"participantIdentitiesDumpPeriodicBackup": {
"backupInterval": "10m",
"location": {
"bucket": {
"bucketName": "da-cn-data-dumps",
"jsonCredentials": "{\"bucketName\":\"data-export-bucket-name\",\"secretName\":\"data-export-bucket-sa-key-secret\",\"jsonCredentials\":\"data-export-bucket-sa-key-secret-creds\"}",
"projectId": "da-cn-devnet",
"secretName": "cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps"
},
"prefix": "mock/sv"
}
},
"persistence": {
"host": "apps-pg.sv.svc.cluster.local",
"postgresName": "apps-pg",
"secretName": "apps-pg-secret"
},
"resources": {
"limits": {
"memory": "4Gi"
},
"requests": {
"memory": "2Gi"
}
},
"scanAddress": "http://scan-app.sv:5012",
"spliceInstanceNames": {
"amuletName": "Amulet",
"amuletNameAcronym": "AMT",
"nameServiceName": "Amulet Name Service",
"nameServiceNameAcronym": "ANS",
"networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png",
"networkName": "Splice"
},
"svValidator": true,
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_apps",
"operator": "Exists"
}
],
"topup": {
"enabled": true,
"minTopupInterval": "1m",
"targetThroughput": 0
},
"useSequencerConnectionsFromScan": false,
"validatorWalletUsers": [
"google-oauth2|1234567890",
"auth0|64553aa683015a9687d9cc2e"
]
},
"version": "0.3.20"
},
"name": "validator",
"provider": "",
"type": "kubernetes:helm.sh/v3:Release"
}
]