- Overview
- Setup
- Tutorials
- How Tos
- Reference
- DAR Versions
- API Reference
- Commercials API
- Credential API
- Registry API
- Utility.Registry
- Utility.Registry.V0.Configuration.AppReward
- Utility.Registry.V0.Configuration.Instrument
- Utility.Registry.V0.Holding.Allocation
- Utility.Registry.V0.Holding.Burn
- Utility.Registry.V0.Holding.Lock
- Utility.Registry.V0.Holding.Mint
- Utility.Registry.V0.Holding.Transfer
- Utility.Registry.V0.Holding.Unlock
- Utility.Registry.V0.Rule.Transfer
- Utility.Registry.V0.Types
- Utility.Registry.V0.Util
- Utility.Registry.App
- Utility.Holding
- Utility.Registry
- Settlement Utility API
- Collateral Utility API
- Operator Backend API
Install (Docker Compose)¶
Note
Make sure to complete the Prerequisites before proceeding.
If you deploy your validator using Docker Compose, then you can use this guide to add the DA Utilities to your setup.
Prerequisite: Auth¶
You need to set up auth for the utilities to work.
Don’t forget to use the -a
flag when starting your node:
./start.sh -s "<SPONSOR_SV_URL>" -o "<ONBOARDING_SECRET>" -p "<party_hint>" -m "<MIGRATION_ID>" -w -a
Additional Environment Variables for Utilities¶
Add the following to your splice-node/docker-compose/validator/.env
:
# Utility
AUTH_AUTHORITY=${AUTH_URL}
OIDC_AUTHORITY_URL=${AUTH_URL}
AUTH_AUDIENCE=${LEDGER_API_AUTH_AUDIENCE}
OIDC_AUTHORITY_LEDGER_API_AUDIENCE=${LEDGER_API_AUTH_AUDIENCE}
VALIDATOR_CLIENT_SECRET=${VALIDATOR_AUTH_CLIENT_SECRET}
VALIDATOR_CLIENT_ID=${VALIDATOR_AUTH_CLIENT_ID}
CNS_UI_CLIENT_ID=${ANS_UI_CLIENT_ID}
UTILITIES_IMAGE_REPO="europe-docker.pkg.dev/da-images/public/docker"
UTILITIES_IMAGE_VERSION="0.8.0"
AUTH_CLIENT_ID="<see below>"
UTILITY_APP_UTILITY_BACKEND_URL="<see below>"
AUTH_CLIENT_ID
: the one you created for the Utility UIUTILITY_APP_UTILITY_BACKEND_URL
: depends on which network you’re connecting to
Update compose.yaml¶
Edit your participant deployment¶
participant:
image: "${IMAGE_REPO}canton-participant:${IMAGE_TAG}"
environment:
+ - CANTON_PARTICIPANT_JSON_API_SERVER_PATH_PREFIX=/api/json-api
- AUTH_JWKS_URL=${AUTH_JWKS_URL}
Add the Utilities¶
utility-ui:
image: "${UTILITIES_IMAGE_REPO}/frontend:${UTILITIES_IMAGE_VERSION}"
environment:
- AUTH_AUTHORITY=${AUTH_AUTHORITY}
- AUTH_CLIENT_ID=${AUTH_CLIENT_ID}
- AUTH_AUDIENCE=${AUTH_AUDIENCE}
- UTILITY_APP_UTILITY_BACKEND_URL=${UTILITY_APP_UTILITY_BACKEND_URL}
depends_on:
- participant
- validator
networks:
- ${DOCKER_NETWORK:-splice_validator}
darsyncer:
image: "${UTILITIES_IMAGE_REPO}/utilities-darsyncer:${UTILITIES_IMAGE_VERSION}"
command:
- --endpoint=participant:5002
environment:
- DARS=/dars
- CLIENT_ID=${VALIDATOR_AUTH_CLIENT_ID}
- CLIENT_SECRET=${VALIDATOR_AUTH_CLIENT_SECRET}
- OAUTH_DOMAIN=${AUTH_AUTHORITY}
depends_on:
- participant
- validator
networks:
- ${DOCKER_NETWORK:-splice_validator}
Make nginx depend on utility-ui
¶
nginx:
image: "nginx:${NGINX_VERSION}"
depends_on:
- ans-web-ui
- wallet-web-ui
- validator
+ - utility-ui
Update nginx.conf¶
Add this to splice-node/docker-compose/validator/nginx.conf
to access the Utility UI at http://utility.localhost:
http {
...
server {
listen 80;
server_name utility.localhost;
location /api/validator/ {
rewrite ^\/(.*) /$1 break;
proxy_pass http://validator:5003/api/validator;
}
location /api/json-api {
rewrite ^\/(.*) /$1 break;
proxy_pass http://participant:7575/;
}
location / {
proxy_pass http://utility-ui:8080/;
}
}
}