@fairmint/canton-node-sdk
Version:
Canton Node SDK
1,041 lines • 1.74 MB
JSON
[
{
"custom": true,
"id": "",
"inputs": {
"resourceServerIdentifier": "https://ledger_api.sv-1.test-stack.canton.network",
"scopes": [
{
"description": "Access to the Ledger API",
"name": "daml_ledger_api"
}
]
},
"name": "LedgerApiScopessv1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServerScopes:ResourceServerScopes"
},
{
"custom": true,
"id": "",
"inputs": {
"resourceServerIdentifier": "https://ledger_api.sv-da-1.test-stack.canton.network",
"scopes": [
{
"description": "Access to the Ledger API",
"name": "daml_ledger_api"
}
]
},
"name": "LedgerApiScopessvda1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServerScopes:ResourceServerScopes"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://ledger_api.sv-1.test-stack.canton.network",
"name": "Ledger API for SV sv-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "LedgerApisv1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://ledger_api.sv-da-1.test-stack.canton.network",
"name": "Ledger API for SV sv-da-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "LedgerApisvda1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"authenticationMethod": "none",
"clientId": "Splitwell UI (Pulumi managed, test-stack)_id"
},
"name": "SplitwellUiAppCredentials",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/clientCredentials:ClientCredentials"
},
{
"custom": true,
"id": "",
"inputs": {
"allowedLogoutUrls": [
"https://wallet.splitwell.mock.network.canton.global",
"https://wallet.splitwell.mock.global.canton.network.digitalasset.com",
"https://cns.splitwell.mock.network.canton.global",
"https://cns.splitwell.mock.global.canton.network.digitalasset.com",
"https://splitwell.splitwell.mock.network.canton.global",
"https://splitwell.splitwell.mock.global.canton.network.digitalasset.com"
],
"allowedOrigins": [
"https://wallet.splitwell.mock.network.canton.global",
"https://wallet.splitwell.mock.global.canton.network.digitalasset.com",
"https://cns.splitwell.mock.network.canton.global",
"https://cns.splitwell.mock.global.canton.network.digitalasset.com",
"https://splitwell.splitwell.mock.network.canton.global",
"https://splitwell.splitwell.mock.global.canton.network.digitalasset.com"
],
"appType": "spa",
"callbacks": [
"https://wallet.splitwell.mock.network.canton.global",
"https://wallet.splitwell.mock.global.canton.network.digitalasset.com",
"https://cns.splitwell.mock.network.canton.global",
"https://cns.splitwell.mock.global.canton.network.digitalasset.com",
"https://splitwell.splitwell.mock.network.canton.global",
"https://splitwell.splitwell.mock.global.canton.network.digitalasset.com"
],
"crossOriginAuth": false,
"description": " ** Managed by Pulumi, do not edit manually **\nUsed for the Wallet, ANS and Splitwell UIs for the Splitwell validator",
"name": "Splitwell UI (Pulumi managed, test-stack)",
"webOrigins": [
"https://wallet.splitwell.mock.network.canton.global",
"https://wallet.splitwell.mock.global.canton.network.digitalasset.com",
"https://cns.splitwell.mock.network.canton.global",
"https://cns.splitwell.mock.global.canton.network.digitalasset.com",
"https://splitwell.splitwell.mock.network.canton.global",
"https://splitwell.splitwell.mock.global.canton.network.digitalasset.com"
]
},
"name": "SplitwellUiApp",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/client:Client"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://sv.sv-1.test-stack.canton.network/api",
"name": "SV App API for SV sv-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "SvAppApisv1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://sv.sv-da-1.test-stack.canton.network/api",
"name": "SV App API for SV sv-da-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "SvAppApisvda1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"authenticationMethod": "none",
"clientId": "ANS UI (Pulumi managed, test-stack)_id"
},
"name": "SvCnsUiCredentials",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/clientCredentials:ClientCredentials"
},
{
"custom": true,
"id": "",
"inputs": {
"allowedLogoutUrls": [
"https://cns.sv.mock.network.canton.global",
"https://cns.sv.mock.global.canton.network.digitalasset.com"
],
"allowedOrigins": [
"https://cns.sv.mock.network.canton.global",
"https://cns.sv.mock.global.canton.network.digitalasset.com"
],
"appType": "spa",
"callbacks": [
"https://cns.sv.mock.network.canton.global",
"https://cns.sv.mock.global.canton.network.digitalasset.com"
],
"crossOriginAuth": false,
"description": " ** Managed by Pulumi, do not edit manually **\nUsed for the ANS UI for the SV runbook",
"name": "ANS UI (Pulumi managed, test-stack)",
"webOrigins": [
"https://cns.sv.mock.network.canton.global",
"https://cns.sv.mock.global.canton.network.digitalasset.com"
]
},
"name": "SvCnsUi",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/client:Client"
},
{
"custom": true,
"id": "",
"inputs": {
"authenticationMethod": "none",
"clientId": "SV UI (Pulumi managed, test-stack)_id"
},
"name": "SvSvUiCredentials",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/clientCredentials:ClientCredentials"
},
{
"custom": true,
"id": "",
"inputs": {
"allowedLogoutUrls": [
"https://sv.sv.mock.network.canton.global",
"https://sv.sv.mock.global.canton.network.digitalasset.com"
],
"allowedOrigins": [
"https://sv.sv.mock.network.canton.global",
"https://sv.sv.mock.global.canton.network.digitalasset.com"
],
"appType": "spa",
"callbacks": [
"https://sv.sv.mock.network.canton.global",
"https://sv.sv.mock.global.canton.network.digitalasset.com"
],
"crossOriginAuth": false,
"description": " ** Managed by Pulumi, do not edit manually **\nUsed for the SV UI for the SV runbook",
"name": "SV UI (Pulumi managed, test-stack)",
"webOrigins": [
"https://sv.sv.mock.network.canton.global",
"https://sv.sv.mock.global.canton.network.digitalasset.com"
]
},
"name": "SvSvUi",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/client:Client"
},
{
"custom": true,
"id": "",
"inputs": {
"authenticationMethod": "none",
"clientId": "Wallet UI (Pulumi managed, test-stack)_id"
},
"name": "SvWalletUiCredentials",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/clientCredentials:ClientCredentials"
},
{
"custom": true,
"id": "",
"inputs": {
"allowedLogoutUrls": [
"https://wallet.sv.mock.network.canton.global",
"https://wallet.sv.mock.global.canton.network.digitalasset.com"
],
"allowedOrigins": [
"https://wallet.sv.mock.network.canton.global",
"https://wallet.sv.mock.global.canton.network.digitalasset.com"
],
"appType": "spa",
"callbacks": [
"https://wallet.sv.mock.network.canton.global",
"https://wallet.sv.mock.global.canton.network.digitalasset.com"
],
"crossOriginAuth": false,
"description": " ** Managed by Pulumi, do not edit manually **\nUsed for the Wallet UI for the SV runbook",
"name": "Wallet UI (Pulumi managed, test-stack)",
"webOrigins": [
"https://wallet.sv.mock.network.canton.global",
"https://wallet.sv.mock.global.canton.network.digitalasset.com"
]
},
"name": "SvWalletUi",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::sv::undefined_id",
"type": "auth0:index/client:Client"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://validator.sv-1.test-stack.canton.network/api",
"name": "Validator App API for SV sv-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "ValidatorAppApisv1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"allowOfflineAccess": true,
"identifier": "https://validator.sv-da-1.test-stack.canton.network/api",
"name": "Validator App API for SV sv-da-1 on test-stack (Pulumi managed)",
"tokenLifetime": 86400
},
"name": "ValidatorAppApisvda1",
"provider": "urn:pulumi:test-stack::test-project::pulumi:providers:auth0::dev::undefined_id",
"type": "auth0:index/resourceServer:ResourceServer"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "telemetry.istio.io/v1alpha1",
"kind": "Telemetry",
"metadata": {
"name": "access-logging-cometbft",
"namespace": "cluster-ingress"
},
"spec": {
"accessLogging": [
{
"providers": [
{
"name": "envoy"
}
]
}
],
"selector": {
"matchLabels": {
"app": "istio-ingress-cometbft"
}
}
}
},
"name": "access-logging-cometbft",
"provider": "",
"type": "kubernetes:telemetry.istio.io/v1alpha1:Telemetry"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "telemetry.istio.io/v1alpha1",
"kind": "Telemetry",
"metadata": {
"name": "access-logging",
"namespace": "cluster-ingress"
},
"spec": {
"accessLogging": [
{
"providers": [
{
"name": "envoy"
}
]
}
],
"selector": {
"matchLabels": {
"app": "istio-ingress"
}
}
}
},
"name": "access-logging",
"provider": "",
"type": "kubernetes:telemetry.istio.io/v1alpha1:Telemetry"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "VirtualService",
"metadata": {
"name": "alertmanager",
"namespace": "observability"
},
"spec": {
"gateways": [
"cluster-ingress/cn-http-gateway"
],
"hosts": [
"alertmanager.mock.global.canton.network.digitalasset.com"
],
"http": [
{
"match": [
{
"port": 443
},
{
"port": 80
}
],
"route": [
{
"destination": {
"host": "prometheus-alertmanager.observability.svc.cluster.local",
"port": {
"number": 9093
}
}
}
]
}
]
}
},
"name": "alertmanager-virtual-service",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:VirtualService"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "security.istio.io/v1beta1",
"kind": "AuthorizationPolicy",
"metadata": {
"name": "allow-sv-info",
"namespace": "cluster-ingress"
},
"spec": {
"action": "ALLOW",
"rules": [
{
"to": [
{
"operation": {
"hosts": [
"info.sv-2.mock.network.canton.global",
"info.sv-2.mock.global.canton.network.digitalasset.com",
"info.sv-1.mock.network.canton.global",
"info.sv-1.mock.global.canton.network.digitalasset.com",
"info.sv.mock.network.canton.global",
"info.sv.mock.global.canton.network.digitalasset.com"
]
}
}
]
}
],
"selector": {
"matchLabels": {
"istio": "ingress"
}
}
}
},
"name": "allow-sv-info",
"provider": "",
"type": "kubernetes:security.istio.io/v1beta1:AuthorizationPolicy"
},
{
"custom": false,
"id": "",
"inputs": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_infra",
"operator": "Exists"
}
]
}
]
}
}
},
"cainjector": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_infra",
"operator": "Exists"
}
]
}
]
}
}
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_infra",
"operator": "Exists"
}
]
},
"helmOptions": {
"namespace": "cert-manager",
"version": "1.18.2"
},
"installCRDs": true,
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_infra",
"operator": "Exists"
}
],
"webhook": {
"affinity": {
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "cn_infra",
"operator": "Exists"
}
]
}
]
}
}
},
"tolerations": [
{
"effect": "NoSchedule",
"key": "cn_infra",
"operator": "Exists"
}
]
}
},
"name": "cert-manager",
"provider": "",
"type": "kubernetes-cert-manager:index:CertManager"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "cert-manager"
}
},
"name": "cert-manager",
"provider": "",
"type": "kubernetes:core/v1:Namespace"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "cert-manager.io/v1",
"kind": "Certificate",
"metadata": {
"name": "cn-test-stack-certificate",
"namespace": "cluster-ingress"
},
"spec": {
"dnsNames": [
"mock.network.canton.global",
"*.mock.network.canton.global",
"*.validator.mock.network.canton.global",
"*.validator1.mock.network.canton.global",
"*.splitwell.mock.network.canton.global",
"*.sv.mock.network.canton.global",
"*.sv-2.mock.network.canton.global",
"*.sv-2-eng.mock.network.canton.global",
"*.sv-3-eng.mock.network.canton.global",
"*.sv-4-eng.mock.network.canton.global",
"*.sv-5-eng.mock.network.canton.global",
"*.sv-6-eng.mock.network.canton.global",
"*.sv-7-eng.mock.network.canton.global",
"*.sv-8-eng.mock.network.canton.global",
"*.sv-9-eng.mock.network.canton.global",
"*.sv-10-eng.mock.network.canton.global",
"*.sv-11-eng.mock.network.canton.global",
"*.sv-12-eng.mock.network.canton.global",
"*.sv-13-eng.mock.network.canton.global",
"*.sv-14-eng.mock.network.canton.global",
"*.sv-15-eng.mock.network.canton.global",
"*.sv-16-eng.mock.network.canton.global",
"*.sv-1.mock.network.canton.global",
"mock.global.canton.network.digitalasset.com",
"*.mock.global.canton.network.digitalasset.com",
"*.validator.mock.global.canton.network.digitalasset.com",
"*.validator1.mock.global.canton.network.digitalasset.com",
"*.splitwell.mock.global.canton.network.digitalasset.com",
"*.sv.mock.global.canton.network.digitalasset.com",
"*.sv-2.mock.global.canton.network.digitalasset.com",
"*.sv-2-eng.mock.global.canton.network.digitalasset.com",
"*.sv-3-eng.mock.global.canton.network.digitalasset.com",
"*.sv-4-eng.mock.global.canton.network.digitalasset.com",
"*.sv-5-eng.mock.global.canton.network.digitalasset.com",
"*.sv-6-eng.mock.global.canton.network.digitalasset.com",
"*.sv-7-eng.mock.global.canton.network.digitalasset.com",
"*.sv-8-eng.mock.global.canton.network.digitalasset.com",
"*.sv-9-eng.mock.global.canton.network.digitalasset.com",
"*.sv-10-eng.mock.global.canton.network.digitalasset.com",
"*.sv-11-eng.mock.global.canton.network.digitalasset.com",
"*.sv-12-eng.mock.global.canton.network.digitalasset.com",
"*.sv-13-eng.mock.global.canton.network.digitalasset.com",
"*.sv-14-eng.mock.global.canton.network.digitalasset.com",
"*.sv-15-eng.mock.global.canton.network.digitalasset.com",
"*.sv-16-eng.mock.global.canton.network.digitalasset.com",
"*.sv-1.mock.global.canton.network.digitalasset.com"
],
"issuerRef": {
"name": "letsencrypt-production"
},
"secretName": "cn-test-stacknet-tls"
}
},
"name": "certificate",
"provider": "",
"type": "kubernetes:cert-manager.io/v1:Certificate"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"key.json": "ZG5zLXNlY3JldA=="
}
},
"kind": "Secret",
"metadata": {
"name": "clouddns-dns01-solver-svc-acct",
"namespace": "cluster-ingress"
},
"type": "Opaque"
},
"name": "clouddns-dns01-solver-svc-acct",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "VirtualService",
"metadata": {
"name": "cluster-docs-releases",
"namespace": "cluster-ingress"
},
"spec": {
"gateways": [
"cn-http-gateway"
],
"hosts": [
"mock.network.canton.global",
"mock.global.canton.network.digitalasset.com"
],
"http": [
{
"match": [
{
"port": 443,
"uri": {
"prefix": "/cn-release-bundles"
}
}
],
"route": [
{
"destination": {
"host": "gcs-proxy.docs.svc.cluster.local",
"port": {
"number": 8080
}
}
}
]
},
{
"match": [
{
"port": 443
}
],
"route": [
{
"destination": {
"host": "docs.docs.svc.cluster.local",
"port": {
"number": 80
}
}
}
]
}
]
}
},
"name": "cluster-docs-releases",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:VirtualService"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"labels": {},
"name": "cluster-ingress"
}
},
"name": "cluster-ingress",
"provider": "",
"type": "kubernetes:core/v1:Namespace"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
"value": {
"postgresPassword": ""
}
},
"kind": "Secret",
"metadata": {
"name": "grafana-pg-secret",
"namespace": "observability"
},
"type": "Opaque"
},
"name": "cn-app-observability-grafana-pg-secret",
"provider": "",
"type": "kubernetes:core/v1:Secret"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "Gateway",
"metadata": {
"name": "cn-apps-gateway",
"namespace": "cluster-ingress"
},
"spec": {
"selector": {
"app": "istio-ingress-cometbft",
"istio": "ingress-cometbft"
},
"servers": [
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-0-0-gw",
"number": 26006,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-0-1-gw",
"number": 26016,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-0-2-gw",
"number": 26026,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-1-0-gw",
"number": 26106,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-1-1-gw",
"number": 26116,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-1-2-gw",
"number": 26126,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-2-0-gw",
"number": 26206,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-2-1-gw",
"number": 26216,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-2-2-gw",
"number": 26226,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-3-0-gw",
"number": 26306,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-3-1-gw",
"number": 26316,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-3-2-gw",
"number": 26326,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-4-0-gw",
"number": 26406,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-4-1-gw",
"number": 26416,
"protocol": "TCP"
}
},
{
"hosts": [
"*"
],
"port": {
"name": "cometbft-4-2-gw",
"number": 26426,
"protocol": "TCP"
}
}
]
}
},
"name": "cn-apps-gateway",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:Gateway"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "networking.istio.io/v1alpha3",
"kind": "Gateway",
"metadata": {
"name": "cn-http-gateway",
"namespace": "cluster-ingress"
},
"spec": {
"selector": {
"app": "istio-ingress",
"istio": "ingress"
},
"servers": [
{
"hosts": [
"mock.network.canton.global",
"*.mock.network.canton.global",
"mock.global.canton.network.digitalasset.com",
"*.mock.global.canton.network.digitalasset.com"
],
"port": {
"name": "http",
"number": 80,
"protocol": "HTTP"
},
"tls": {
"httpsRedirect": true
}
},
{
"hosts": [
"mock.network.canton.global",
"*.mock.network.canton.global",
"mock.global.canton.network.digitalasset.com",
"*.mock.global.canton.network.digitalasset.com"
],
"port": {
"name": "https",
"number": 443,
"protocol": "HTTPS"
},
"tls": {
"credentialName": "cn-test-stacknet-tls",
"mode": "SIMPLE"
}
}
]
}
},
"name": "cn-http-gateway",
"provider": "",
"type": "kubernetes:networking.istio.io/v1alpha3:Gateway"
},
{
"custom": true,
"id": "",
"inputs": {
"name": "cn-test-stack-out",
"networkTier": "PREMIUM"
},
"name": "cn-test-stack-out",
"provider": "",
"type": "gcp:compute/address:Address"
},
{
"custom": true,
"id": "",
"inputs": {
"name": "cn-test-stacknet-cometbft-ip",
"networkTier": "PREMIUM"
},
"name": "cn-test-stacknet-cometbft-ip",
"provider": "",
"type": "gcp:compute/address:Address"
},
{
"custom": true,
"id": "",
"inputs": {
"name": "cn-test-stacknet-ip",
"networkTier": "PREMIUM"
},
"name": "cn-test-stacknet-ip",
"provider": "",
"type": "gcp:compute/address:Address"
},
{
"custom": true,
"id": "projects/da-cn-devnet/global/networks/default",
"inputs": {},
"name": "default",
"provider": "",
"type": "gcp:compute/network:Network"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "snapshot.storage.k8s.io/v1",
"deletionPolicy": "Delete",
"driver": "pd.csi.storage.gke.io",
"kind": "VolumeSnapshotClass",
"metadata": {
"name": "dev-vsc"
}
},
"name": "dev-vsc",
"provider": "",
"type": "kubernetes:snapshot.storage.k8s.io/v1:VolumeSnapshotClass"
},
{
"custom": true,
"id": "",
"inputs": {
"clientId": "mgmt",
"clientSecret": "s3cr3t",
"domain": "canton-network-dev.us.auth0.com"
},
"name": "dev",
"provider": "",
"type": "pulumi:providers:auth0"
},
{
"custom": true,
"id": "projects/da-cn-devnet/secrets/dns01-sa-key-secret/versions/latest",
"inputs": {},
"name": "dns01-sa-key-secret",
"provider": "",
"type": "gcp:secretmanager/secretVersion:SecretVersion"
},
{
"custom": true,
"id": "",
"inputs": {
"apiVersion": "v1",
"data": {
"acknowledgement_alerts.yaml": "apiVersion: 1\ngroups:\n - orgId: 1\n name: acknowledgements\n folder: canton-network\n interval: 1m\n rules:\n - uid: aeg75a4mu72tcc\n title: Mediator Acknowledgement Lag\n condition: No recent report\n data:\n - refId: Mediator Acknowledgement Lag\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n datasource:\n type: prometheus\n uid: prometheus\n editorMode: code\n expr: time() - (max by (member_prefix) (label_replace(daml_sequencer_block_acknowledgments_micros{member=~\"MED::.*\"}, \"member_prefix\", \"$1\", \"member\", \"(MED::[^:]+::)[^:]+.*\")) / 1e6)\n instant: false\n interval: \"\"\n intervalMs: 30000\n legendFormat: '{{report_publisher}}'\n maxDataPoints: 43200\n range: true\n refId: Mediator Acknowledgement Lag\n - refId: Latest report time lag\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params: []\n type: gt\n operator:\n type: and\n query:\n params:\n - B\n reducer:\n params: []\n type: last\n type: query\n datasource:\n type: __expr__\n uid: __expr__\n expression: Mediator Acknowledgement Lag\n intervalMs: 1000\n maxDataPoints: 43200\n reducer: last\n refId: Latest report time lag\n settings:\n mode: dropNN\n type: reduce\n - refId: No recent report\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 900\n type: gt\n operator:\n type: and\n query:\n params:\n - C\n reducer:\n params: []\n type: last\n type: query\n datasource:\n type: __expr__\n uid: __expr__\n expression: Latest report time lag\n intervalMs: 1000\n maxDataPoints: 43200\n refId: No recent report\n type: threshold\n dashboardUid: cdlm6c7fn7vuod\n panelId: 18\n noDataState: Alerting\n execErrState: Alerting\n for: 5m\n annotations:\n __dashboardUid__: cdlm6c7fn7vuod\n __panelId__: \"18\"\n description: The mediator {{ $labels.member_prefix }} has not submitted a recent acknowledgement\n severity: critical\n summary: Mediator Acknowledgement lag\n labels: {}\n isPaused: false\n",
"automation_alerts.yaml": "apiVersion: 1\ngroups:\n - orgId: 1\n name: automation\n folder: canton-network\n interval: 5m\n rules:\n - uid: fe73c0e7-dcb3-4975-a7d1-04ed8da087be\n title: Automation Failures\n condition: threshold\n data:\n - refId: total\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: sum by(namespace, node_type, trigger_name, migration) (delta(splice_trigger_completed_total{trigger_name=~\".+\", outcome=~\".+\"}[10m]))\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: total\n - refId: failures\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n datasource:\n type: prometheus\n uid: prometheus\n editorMode: code\n expr: sum by(namespace, node_type, trigger_name, migration) (delta(splice_trigger_completed_total{trigger_name=~\".+\", outcome=~\"failure\"}[10m])) or on() vector(0)\n hide: false\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: failures\n - refId: failure_pct\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 0\n - 0\n type: gt\n operator:\n type: and\n query:\n params: []\n reducer:\n params: []\n type: avg\n type: query\n datasource:\n name: Expression\n type: __expr__\n uid: __expr__\n expression: ${failures} / ${total} * 100\n hide: false\n intervalMs: 1000\n maxDataPoints: 43200\n refId: failure_pct\n type: math\n - refId: threshold\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 0\n - 0\n type: gt\n operator:\n type: and\n query:\n params: []\n reducer:\n params: []\n type: avg\n type: query\n datasource:\n name: Expression\n type: __expr__\n uid: __expr__\n expression: failure_pct\n hide: false\n intervalMs: 1000\n maxDataPoints: 43200\n refId: threshold\n type: threshold\n dashboardUid: a3e1385f-6f03-46d9-908c-34aca0f507a6\n panelId: 14\n noDataState: Alerting\n execErrState: Alerting\n for: 5m\n annotations:\n __dashboardUid__: a3e1385f-6f03-46d9-908c-34aca0f507a6\n __panelId__: \"14\"\n description: The {{ index $labels \"trigger_name\" }} for the {{ index $labels \"node_type\" }} app in the {{ index $labels \"namespace\" }} namespace on migration id {{ index $labels \"migration\" }} experienced {{ index $values \"failure_pct\" }}% failures in the last 10 minutes.\n severity: |-\n {{- if (gt $values.failure_pct.Value 50.0) -}}\n critical\n {{- else -}}\n warning\n {{- end -}}\n summary: '{{ index $values \"failure_pct\" }}% fatal errors occurred in {{ index $labels \"namespace\" }} - {{ index $labels \"trigger_name\" }} automation trigger'\n labels:\n gcloud_filter: 'resource.labels.namespace_name=%22{{ index $labels \"namespace\" }}%22%0A%22{{ index $labels \"trigger_name\" }}%22'\n isPaused: false\n - uid: adwt1yr5xuscge\n title: ACS snapshot taking too long\n condition: too_long\n data:\n - refId: latency\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: histogram_quantile(0.99, rate(splice_trigger_latency_duration_seconds{trigger_name=\"AcsSnapshotTrigger\", namespace=\"sv-1\"}[10m]))\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: latency\n - refId: too_long\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 600\n - 0\n type: gt\n operator:\n type: and\n query:\n params: [ ]\n reducer:\n params: [ ]\n type: avg\n type: query\n datasource:\n name: Expression\n type: __expr__\n uid: __expr__\n expression: latency\n intervalMs: 1000\n maxDataPoints: 43200\n refId: too_long\n type: threshold\n noDataState: OK\n execErrState: Alerting\n for: 5m\n annotations:\n description: \"\"\n runbook_url: \"\"\n severity: warning\n summary: ACS snapshot took longer than 10m in {{ index $labels \"namespace\" }}'s Scan\n labels:\n \"\": \"\"\n gcloud_filter: resource.labels.namespace_name=%22{{ index \"namespace\" }}%22%0A%22{{ index \"trigger_name\" }}%22\n isPaused: false\n - uid: ady2ks9ehbw1sb\n title: Busy task-based automation\n condition: threshold\n data:\n - refId: runs\n relativeTimeRange:\n from: 300\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: sum by(namespace, node_type, node_name, job, trigger_name, migration, party) (rate(splice_trigger_completed_total{trigger_name!~\"ScanVerdictStoreIngestion|ScanHistoryBackfillingTrigger|AcsSnapshotTrigger|ScanBackfillAggregatesTrigger|TxLogBackfillingTrigger|ReportValidatorLicenseMetricsExportTrigger\"}[5m]))\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: runs\n - refId: threshold\n relativeTimeRange:\n from: 300\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 1\n - 0\n type: gt\n operator:\n type: and\n query:\n params: []\n reducer:\n params: []\n type: avg\n type: query\n datasource:\n name: Expression\n type: __expr__\n uid: __expr__\n expression: runs\n intervalMs: 1000\n maxDataPoints: 43200\n refId: threshold\n type: threshold\n dashboardUid: a3e1385f-6f03-46d9-908c-34aca0f507a6\n panelId: 14\n noDataState: OK\n execErrState: OK\n for: 5m\n annotations:\n __dashboardUid__: a3e1385f-6f03-46d9-908c-34aca0f507a6\n __panelId__: \"14\"\n description: The {{ index $labels \"trigger_name\" }} for the {{ index $labels \"node_type\" }} app in the {{ index $labels \"namespace\" }} namespace on migration id {{ index $labels \"migration\" }} experienced {{ index $values \"runs\" }} runs per second in the last 5 minutes.\n runbook_url: \"\"\n severity: |-\n {{- if and $values.runs (gt $values.runs.Value 2.0) -}}\n critical\n {{- else -}}\n warning\n {{- end -}}\n summary: '{{ index $values \"runs\" }} trigger runs per second occurred in {{ index $labels \"namespace\" }} - {{ index $labels \"trigger_name\" }} automation trigger'\n labels:\n \"\": \"\"\n gcloud_filter: resource.labels.namespace_name=%22{{ index \"namespace\" }}%22%0A%22{{ index \"trigger_name\" }}%22\n isPaused: false\n - uid: edz6eq1kc543ke\n title: Busy polling-based automation\n condition: threshold\n data:\n - refId: runs\n relativeTimeRange:\n from: 300\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: sum by(namespace, node_type, node_name, job, trigger_name, migration, party) (rate(splice_trigger_iterations_total{trigger_name!~\"ScanVerdictStoreIngestion|ScanHistoryBackfillingTrigger|AcsSnapshotTrigger|ScanBackfillAggregatesTrigger|TxLogBackfillingTrigger\"}[5m]))\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: runs\n - refId: threshold\n relativeTimeRange:\n from: 300\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 1\n - 0\n type: gt\n operator:\n type: and\n query:\n params: []\n reducer:\n params: []\n type: avg\n type: query\n datasource:\n name: Expression\n type: __expr__\n uid: __expr__\n expression: runs\n intervalMs: 1000\n maxDataPoints: 43200\n refId: threshold\n type: threshold\n dashboardUid: a3e1385f-6f03-46d9-908c-34aca0f507a6\n panelId: 14\n noDataState: OK\n execErrState: OK\n for: 5m\n annotations:\n __dashboardUid__: a3e1385f-6f03-46d9-908c-34aca0f507a6\n __panelId__: \"14\"\n description: The {{ index $labels \"trigger_name\" }} for the {{ index $labels \"node_type\" }} app in the {{ index $labels \"namespace\" }} namespace on migration id {{ index $labels \"migration\" }} experienced {{ index $values \"runs\" }} runs per second in the last 5 minutes.\n runbook_url: \"\"\n severity: |-\n {{- if and $values.runs (gt $values.runs.Value 2.0) -}}\n critical\n {{- else -}}\n warning\n {{- end -}}\n summary: '{{ index $values \"runs\" }} trigger runs per second occurred in {{ index $labels \"namespace\" }} - {{ index $labels \"trigger_name\" }} automation trigger'\n labels:\n \"\": \"\"\n gcloud_filter: resource.labels.namespace_name=%22{{ index \"namespace\" }}%22%0A%22{{ index \"trigger_name\" }}%22\n isPaused: false\n - uid: fe12i7xur3eo0d\n title: Backfilling not progressing\n condition: C\n data:\n - refId: Max (rate vs completed)\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: max by(namespace)(rate(splice_history_backfilling_transaction_count[5m]) > 0 or splice_history_backfilling_completed)\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: Max (rate vs completed)\n - refId: C\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 1e-11\n type: lt\n operator:\n type: and\n query:\n params:\n - C\n reducer:\n params: [ ]\n type: last\n type: query\n datasource:\n type: __expr__\n uid: __expr__\n expression: Max (rate vs completed)\n intervalMs: 1000\n maxDataPoints: 43200\n refId: C\n type: threshold\n noDataState: Alerting\n execErrState: Alerting\n for: 5m\n annotations:\n description: \"\"\n runbook_url: \"\"\n summary: History backfilling is not making any progress in {{ index $labels \"namespace\" }}\n labels:\n \"\": \"\"\n isPaused: false\n - uid: bel66uf182ha8e\n title: TxLog backfilling not progressing\n condition: C\n data:\n - refId: Max (rate vs completed)\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: |-\n max by(namespace)(\n rate(splice_history_txlog_backfilling_transaction_count[5m]) > 0 or\n splice_history_txlog_backfilling_completed or\n # TxLog backfilling can't start until history backfilling is completed\n absent(splice_history_backfilling_completed) or\n # Note: \"== bool\" is a boolean operator, \"==\" is a filter\n (splice_history_backfilling_completed == bool 0)\n )\n instant: true\n intervalMs: 1000\n legendFormat: __auto\n maxDataPoints: 43200\n range: false\n refId: Max (rate vs completed)\n - refId: C\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: __expr__\n model:\n conditions:\n - evaluator:\n params:\n - 1e-11\n type: lt\n operator:\n type: and\n query:\n params:\n - C\n reducer:\n params: [ ]\n type: last\n type: query\n datasource:\n type: __expr__\n uid: __expr__\n expression: Max (rate vs completed)\n intervalMs: 1000\n maxDataPoints: 43200\n refId: C\n type: threshold\n noDataState: Alerting\n execErrState: Alerting\n for: 5m\n annotations:\n description: \"\"\n runbook_url: \"\"\n summary: TxLog backfilling is not making any progress in {{ index $labels \"namespace\" }}\n labels:\n \"\": \"\"\n isPaused: false\n - uid: fentlrcbcrsaoa\n title: Delegateless trigger contention\n condition: threshold\n data:\n - refId: total_attempts\n relativeTimeRange:\n from: 600\n to: 0\n datasourceUid: prometheus\n model:\n editorMode: code\n expr: