{"templateId":"markdown","versions":[{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/deployment/reference/urls","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/reference/urls","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/reference/urls","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/reference/urls","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/reference/urls","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/reference/urls","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"URL configuration","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"url-configuration","__idx":0},"children":["URL configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this page to understand service URL fields for ","Ripple Custody",". The example shows one possible URL shape; your DNS records, ingress hosts, TLS certificates, and service subdomains depend on your deployment."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page applies to on-premise deployments only. For current defaults and the full supported schema, use the configuration packaged with your release."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-config-controls","__idx":1},"children":["What this config controls"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.urls"]}," section defines the base URL and service URLs used by ","Ripple Custody",". By default, service URLs are derived as subdomains of the base URL."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configuration-fields","__idx":2},"children":["Configuration fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Location: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.urls"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["base"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flat.m3t4c0.fun"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Base URL for services. Other URLs are derived as subdomains of this value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tls"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enables TLS/HTTPS for ingress endpoints."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontend"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UI URL for Frontend V1."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontend-v2"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v2.<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UI URL for Frontend V2."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API Gateway URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["graphapi"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["graphapi.<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["GraphQL API URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["auth"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openid.<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenID authentication URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["oidc"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openid.<base>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OIDC/Keycloak URL."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Additional internal subdomains, such as Notary and Vault services, follow the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["<service>.<base>"]}," pattern unless you override them in your release configuration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"constraints-and-relationships","__idx":3},"children":["Constraints and relationships"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["DNS records need to resolve the configured hostnames to your ingress or load balancer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["TLS certificates need to cover the configured hostnames when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tls"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Override individual service URLs only when your DNS layout requires a non-default pattern."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ingress certificate and route settings are configured separately. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/networking"},"children":["Networking configuration"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":4},"children":["Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example uses the default subdomain pattern:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"harmonize:\n  urls:\n    base: \"custody.yourcompany.com\"\n    tls: true\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This creates:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["https://custody.yourcompany.com — Frontend"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["https://v2.custody.yourcompany.com — Frontend V2"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["https://api.custody.yourcompany.com — API Gateway"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["https://openid.custody.yourcompany.com — OpenID authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Additional service URLs (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["graphapi"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notary-bridge"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vault-bridge"]},", etc.) are also derived automatically. Override individual URLs only when you need a non-standard subdomain pattern."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":5},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/networking"},"children":["Networking configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/oauth-server"},"children":["OAuth server configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/keycloak"},"children":["Keycloak configuration"]}]}]}]},"headings":[{"value":"URL configuration","id":"url-configuration","depth":1},{"value":"What this config controls","id":"what-this-config-controls","depth":2},{"value":"Configuration fields","id":"configuration-fields","depth":2},{"value":"Constraints and relationships","id":"constraints-and-relationships","depth":2},{"value":"Example","id":"example","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"URL configuration"}},"lastModified":"2026-08-04T20:25:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/deployment/reference/urls","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}