{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/deployment/reference/postgresql","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/deployment/reference/postgresql","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/reference/postgresql","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/reference/postgresql","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/reference/postgresql","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/reference/postgresql","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/reference/postgresql","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"PostgreSQL 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":"postgresql-configuration","__idx":0},"children":["PostgreSQL configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this page to understand PostgreSQL connection fields for ","Ripple Custody",". The example shows one possible external database configuration; hostnames, credentials, SSL certificates, connection limits, and database operations 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":"p","attributes":{},"children":["For database planning, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/planning/database"},"children":["Database planning"]},"."]},{"$$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":["Ripple Custody"," uses PostgreSQL as its primary data store. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.postgresql"]}," section supplies global connection values used by platform components."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some release packages can also deploy an internal PostgreSQL instance for non-production or test-style environments. If you use an external database, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["postgresql.enabled: false"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"connection-fields","__idx":2},"children":["Connection fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Location: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.postgresql"]}]},{"$$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":["host"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Database server host address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["port"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Database server port. Common value: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5432"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["database"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"postgres\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Default database name to connect to."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["username"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Database username."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["password"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Database password."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxConnections"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"8\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum number of concurrent connections per component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["urlParams"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Extra connection parameters for Java/JDBC containers."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dotNetParams"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Extra connection parameters for .NET containers."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"ssltls-fields","__idx":3},"children":["SSL/TLS fields"]},{"$$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":["sslmode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["SSL connection mode. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#ssl-modes"},"children":["SSL modes"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sslrootcert"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File path containing SSL certificate authority certificates."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sslcert"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File path of the client SSL certificate."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sslkey"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File path for the secret key in PEM format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sslcertpfx"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File path for the secret key in PKCS#12 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sslkeypkcs8"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File path for the secret key in PKCS#8 format."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ssl-modes","__idx":4},"children":["SSL modes"]},{"$$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":"Mode"},"children":["Mode"]},{"$$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":["disable"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only try a non-SSL connection."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allow"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["First try a non-SSL connection; if that fails, try SSL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prefer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["First try SSL; if that fails, try a non-SSL connection."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["require"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only try SSL. If a root CA file is present, verify the certificate."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verify-ca"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only try SSL and verify that the server certificate is issued by a trusted CA."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verify-full"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only try SSL, verify the CA, and verify that the server hostname matches the certificate."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For PostgreSQL SSL behavior, see the PostgreSQL documentation for ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING","target":"_blank"},"children":["connection strings"]}," and ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.postgresql.org/docs/current/ssl-tcp.html","target":"_blank"},"children":["SSL support"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"database-schemas","__idx":5},"children":["Database schemas"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," uses separate PostgreSQL schemas for logical isolation between components. The database user specified in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.postgresql.username"]}," needs permission to create or use the required schemas."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"constraints-and-relationships","__idx":6},"children":["Constraints and relationships"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Database credentials should come from your secret-management process."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["SSL certificate file paths must match files mounted into the relevant components."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["urlParams"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dotNetParams"]}," let different runtime stacks receive equivalent database connection options."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Component-specific database secrets are covered in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/auth-secrets"},"children":["Secret management for authentication"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":7},"children":["Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example shows an external PostgreSQL connection with SSL enabled:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"harmonize:\n  postgresql:\n    host: \"postgres.example.com\"\n    port: \"5432\"\n    database: \"harmonize\"\n    username: \"harmonize_user\"\n    password: \"<database-password>\"\n    maxConnections: \"20\"\n    sslmode: \"require\"\n    urlParams: \"ssl=true&sslmode=require\"\n    dotNetParams: \"SSL Mode=Require\"\n\npostgresql:\n  enabled: false\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":8},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/planning/database"},"children":["Database planning"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/amqp"},"children":["AMQP configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/networking"},"children":["Networking configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/auth-secrets"},"children":["Secret management for authentication"]}]}]}]},"headings":[{"value":"PostgreSQL configuration","id":"postgresql-configuration","depth":1},{"value":"What this config controls","id":"what-this-config-controls","depth":2},{"value":"Connection fields","id":"connection-fields","depth":2},{"value":"SSL/TLS fields","id":"ssltls-fields","depth":2},{"value":"SSL modes","id":"ssl-modes","depth":3},{"value":"Database schemas","id":"database-schemas","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":"PostgreSQL configuration"}},"lastModified":"2026-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/deployment/reference/postgresql","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}