2021-09-15 02:50:55 +00:00
{
2025-04-03 08:17:49 +00:00
"$schema" : "https://json-schema.org/draft/2020-12/schema" ,
2021-09-15 02:50:55 +00:00
"title" : "Postgresql datasource" ,
"description" : "A schema defining postgresql datasource" ,
2025-04-03 08:17:49 +00:00
"type" : "object" ,
"tj:version" : "1.0.0" ,
"tj:source" : {
2021-09-22 05:13:12 +00:00
"name" : "PostgreSQL" ,
"kind" : "postgresql" ,
2025-04-03 08:17:49 +00:00
"type" : "database"
2021-09-22 05:13:12 +00:00
} ,
2025-04-03 08:17:49 +00:00
"properties" : {
2024-10-28 17:56:26 +00:00
"connection_type" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "Connection type" ,
"description" : "Single select dropdown for connection_type" ,
2026-03-05 15:19:57 +00:00
"enum" : [ "manual" , "string" ] ,
2025-04-03 08:17:49 +00:00
"default" : "manual"
2024-10-28 17:56:26 +00:00
} ,
2022-01-27 05:25:16 +00:00
"host" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "Host" ,
"description" : "Enter host" ,
"default" : "localhost"
2022-01-27 05:25:16 +00:00
} ,
"port" : {
2025-04-03 08:17:49 +00:00
"type" : "number" ,
"title" : "Port" ,
"description" : "Enter port" ,
"default" : 5432
2022-01-27 05:25:16 +00:00
} ,
"database" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "Database name" ,
"description" : "Name of the database"
2022-01-27 05:25:16 +00:00
} ,
"username" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "Username" ,
"description" : "Enter username"
2022-01-27 05:25:16 +00:00
} ,
"password" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "Password" ,
"description" : "Enter password"
2022-01-27 05:25:16 +00:00
} ,
"ssl_enabled" : {
2026-03-12 06:38:33 +00:00
"type" : "boolean" ,
2026-03-05 15:19:57 +00:00
"title" : "SSL/TLS" ,
"description" : "Connect using SSL" ,
2026-03-12 06:38:33 +00:00
"default" : true
2022-04-18 14:56:05 +00:00
} ,
2022-12-27 14:40:33 +00:00
"ssl_certificate" : {
2025-04-03 08:17:49 +00:00
"type" : "string" ,
"title" : "SSL certificate" ,
"description" : "Single select dropdown for choosing certificates" ,
2026-03-05 15:19:57 +00:00
"enum" : [ "ca_certificate" , "self_signed" , "none" ] ,
2025-04-03 08:17:49 +00:00
"default" : "none"
} ,
"connection_string" : {
"type" : "string" ,
2026-03-23 04:54:58 +00:00
"title" : "Connection string (encoded)" ,
2025-04-03 08:17:49 +00:00
"description" : "postgres://username:password@hostname:port/database?sslmode=require"
} ,
"ca_cert" : {
"type" : "string" ,
"title" : "CA Cert" ,
"description" : "Enter ca certificate"
} ,
"client_key" : {
"type" : "string" ,
"title" : "Client Key" ,
"description" : "Enter client key"
} ,
"client_cert" : {
"type" : "string" ,
"title" : "Client Cert" ,
"description" : "Enter client certificate"
} ,
"root_cert" : {
"type" : "string" ,
"title" : "Root Cert" ,
"description" : "Enter root certificate"
2025-07-11 06:45:39 +00:00
} ,
"allow_dynamic_connection_parameters" : {
"type" : "boolean" ,
"title" : "Allow dynamic connection parameters" ,
"description" : "Turning this on will allow dynamically setting host name and database from application" ,
"default" : false
2026-03-05 15:19:57 +00:00
} ,
"ssh_enabled" : {
"type" : "string" ,
"title" : "SSH Tunnel" ,
"description" : "Connect through an SSH server" ,
"enum" : [ "enabled" , "disabled" ] ,
"default" : "disabled"
} ,
"ssh_host" : {
"type" : "string" ,
"title" : "SSH Host"
} ,
"ssh_port" : {
"type" : "number" ,
"title" : "SSH Port" ,
"default" : 22
} ,
"ssh_username" : {
"type" : "string" ,
"title" : "SSH Username"
} ,
"ssh_auth_type" : {
"type" : "string" ,
"title" : "SSH Authentication Type" ,
"enum" : [ "private_key" , "password" ] ,
"default" : "private_key"
} ,
"ssh_private_key" : {
"type" : "string" ,
"title" : "SSH Private Key"
} ,
"ssh_password" : {
"type" : "string" ,
"title" : "SSH Password"
} ,
"ssh_passphrase" : {
"type" : "string" ,
"title" : "SSH Passphrase"
2022-01-27 05:25:16 +00:00
}
2021-11-22 08:22:32 +00:00
} ,
2025-04-03 08:17:49 +00:00
"tj:encrypted" : [
"password" ,
"ca_cert" ,
"client_key" ,
"client_cert" ,
"root_cert" ,
2026-03-05 15:19:57 +00:00
"connection_string" ,
"ssh_private_key" ,
"ssh_password" ,
"ssh_passphrase"
2025-04-03 08:17:49 +00:00
] ,
2026-03-05 15:19:57 +00:00
"required" : [ "connection_type" ] ,
2025-04-03 08:17:49 +00:00
"allOf" : [
{
"if" : {
"properties" : {
2026-03-05 15:19:57 +00:00
"connection_type" : { "const" : "manual" }
2025-04-03 08:17:49 +00:00
}
} ,
"then" : {
2026-03-05 15:19:57 +00:00
"required" : [ "host" , "port" , "username" , "password" ] ,
2025-04-03 08:17:49 +00:00
"allOf" : [
{
"if" : {
"properties" : {
2026-03-12 06:38:33 +00:00
"ssl_enabled" : { "const" : true }
2025-04-03 08:17:49 +00:00
}
} ,
"then" : {
2026-03-05 15:19:57 +00:00
"required" : [ "ssl_certificate" ] ,
"allOf" : [
{
"if" : {
"properties" : {
"ssl_certificate" : { "const" : "ca_certificate" }
}
} ,
"then" : { "required" : [ "ca_cert" ] }
} ,
{
"if" : {
"properties" : {
"ssl_certificate" : { "const" : "self_signed" }
}
} ,
"then" : { "required" : [ "client_key" , "client_cert" , "root_cert" ] }
2025-04-03 08:17:49 +00:00
}
]
}
}
]
}
} ,
{
"if" : {
"properties" : {
2026-03-05 15:19:57 +00:00
"connection_type" : { "const" : "string" }
2025-04-03 08:17:49 +00:00
}
} ,
"then" : {
2026-03-05 15:19:57 +00:00
"required" : [ "connection_string" ]
}
} ,
{
"if" : {
"properties" : {
"ssh_enabled" : { "const" : "enabled" }
}
} ,
"then" : {
2026-03-12 06:38:33 +00:00
"required" : [ ]
2025-04-03 08:17:49 +00:00
}
}
] ,
"tj:ui:properties" : {
2024-10-28 17:56:26 +00:00
"connection_type" : {
2026-03-05 15:19:57 +00:00
"order" : 1 ,
2025-04-03 08:17:49 +00:00
"$ref" : "#/properties/connection_type" ,
2024-10-28 17:56:26 +00:00
"key" : "connection_type" ,
2025-04-03 08:17:49 +00:00
"label" : "Connection type" ,
2024-10-28 17:56:26 +00:00
"description" : "Single select dropdown for connection_type" ,
2025-04-03 08:17:49 +00:00
"widget" : "dropdown-component-flip" ,
2022-04-18 14:56:05 +00:00
"list" : [
2026-03-05 15:19:57 +00:00
{ "name" : "Manual connection" , "value" : "manual" } ,
2026-03-23 04:54:58 +00:00
{ "name" : "Connection string (encoded)" , "value" : "string" }
2026-03-05 15:19:57 +00:00
]
2024-10-28 17:56:26 +00:00
} ,
"manual" : {
2026-03-05 15:19:57 +00:00
"host" : {
"order" : 10 ,
"$ref" : "#/properties/host" ,
"key" : "host" ,
"label" : "Host" ,
"description" : "Enter host" ,
"widget" : "text-v3" ,
"required" : true
} ,
"port" : {
"order" : 20 ,
"$ref" : "#/properties/port" ,
"key" : "port" ,
"label" : "Port" ,
"description" : "Enter port" ,
"widget" : "text-v3" ,
"required" : true ,
"help_text" : "Default PostgreSQL port is 5432"
} ,
"database" : {
"order" : 30 ,
"$ref" : "#/properties/database" ,
"key" : "database" ,
"label" : "Database" ,
"description" : "Enter name of the database" ,
"widget" : "text-v3"
} ,
"username" : {
"order" : 40 ,
"$ref" : "#/properties/username" ,
"key" : "username" ,
"label" : "Username" ,
"description" : "Enter username" ,
"widget" : "text-v3" ,
"required" : true
} ,
"password" : {
"order" : 50 ,
"$ref" : "#/properties/password" ,
"key" : "password" ,
"label" : "Password" ,
"description" : "Enter password" ,
"widget" : "password-v3" ,
"required" : true ,
"help_text" : "Supports secrets (e.g.,{{secrets.db_password}})"
} ,
"connection_options" : {
"order" : 60 ,
"$ref" : "#/properties/connection_options" ,
"key" : "connection_options" ,
"label" : "Connection options" ,
"widget" : "react-component-headers"
} ,
"ssl_enabled" : {
"order" : 70 ,
"$ref" : "#/properties/ssl_enabled" ,
"key" : "ssl_enabled" ,
"label" : "SSL/TLS" ,
"description" : "Connect using SSL" ,
"widget" : "toggle-flip" ,
"help_text" : "Enable encrypted connections to PostgreSQL server" ,
2026-03-12 06:38:33 +00:00
"default" : true ,
"true" : {
2026-03-05 15:19:57 +00:00
"ssl_certificate" : {
"order" : 80 ,
"$ref" : "#/properties/ssl_certificate" ,
"key" : "ssl_certificate" ,
"label" : "SSL certificate" ,
"description" : "Single select dropdown for choosing certificates" ,
"widget" : "dropdown-component-flip" ,
"list" : [
{ "value" : "ca_certificate" , "name" : "CA certificate" } ,
{ "value" : "self_signed" , "name" : "Self-signed certificate" } ,
{ "value" : "none" , "name" : "None" }
]
2024-10-28 17:56:26 +00:00
} ,
2026-03-05 15:19:57 +00:00
"ca_certificate" : {
"ca_cert" : {
"order" : 90 ,
"$ref" : "#/properties/ca_cert" ,
"key" : "ca_cert" ,
"label" : "CA cert" ,
"description" : "Enter ca certificate" ,
"widget" : "password-v3-textarea"
}
} ,
"self_signed" : {
"client_key" : {
"order" : 90 ,
"$ref" : "#/properties/client_key" ,
"key" : "client_key" ,
"label" : "Client key" ,
"description" : "Enter client key" ,
"widget" : "password-v3-textarea"
} ,
"client_cert" : {
"order" : 100 ,
"$ref" : "#/properties/client_cert" ,
"key" : "client_cert" ,
"label" : "Client cert" ,
"description" : "Enter client certificate" ,
"widget" : "password-v3-textarea"
} ,
"root_cert" : {
"order" : 110 ,
"$ref" : "#/properties/root_cert" ,
"key" : "root_cert" ,
"label" : "Root cert" ,
"description" : "Enter root certificate" ,
"widget" : "password-v3-textarea"
}
} ,
"none" : { }
} ,
2026-03-12 06:38:33 +00:00
"false" : { }
2026-03-05 15:19:57 +00:00
} ,
"ssh_enabled" : {
"order" : 120 ,
"$ref" : "#/properties/ssh_enabled" ,
"key" : "ssh_enabled" ,
"label" : "SSH tunnel" ,
"description" : "Connect through an SSH server" ,
"help_text" : "Connect through an SSH server to access databases in private networks" ,
"widget" : "toggle-flip" ,
"default" : "disabled" ,
"enabled" : {
"ssh_host" : {
"order" : 130 ,
"$ref" : "#/properties/ssh_host" ,
"key" : "ssh_host" ,
"label" : "SSH host" ,
"description" : "ssh.example.com" ,
2025-04-03 08:17:49 +00:00
"widget" : "text-v3" ,
2026-03-05 15:19:57 +00:00
"help_text" : "SSH server hostname or IP address"
2024-10-28 17:56:26 +00:00
} ,
2026-03-05 15:19:57 +00:00
"ssh_port" : {
"order" : 140 ,
"$ref" : "#/properties/ssh_port" ,
"key" : "ssh_port" ,
"label" : "SSH port" ,
"description" : "22" ,
2025-04-03 08:17:49 +00:00
"widget" : "text-v3" ,
2026-03-05 15:19:57 +00:00
"help_text" : "Default SSH port is 22"
2024-10-28 17:56:26 +00:00
} ,
2026-03-05 15:19:57 +00:00
"ssh_username" : {
"order" : 150 ,
"$ref" : "#/properties/ssh_username" ,
"key" : "ssh_username" ,
"label" : "SSH username" ,
"description" : "SSH Username" ,
2025-04-03 08:17:49 +00:00
"widget" : "text-v3"
2024-10-28 17:56:26 +00:00
} ,
2026-03-05 15:19:57 +00:00
"ssh_auth_type" : {
"order" : 175 ,
"$ref" : "#/properties/ssh_auth_type" ,
"key" : "ssh_auth_type" ,
"label" : "Authentication type" ,
"widget" : "dropdown-component-flip" ,
"default" : "private_key" ,
"list" : [
{ "value" : "private_key" , "name" : "Private Key" } ,
{ "value" : "password" , "name" : "Password" }
]
2024-10-28 17:56:26 +00:00
} ,
2026-03-05 15:19:57 +00:00
"private_key" : {
"ssh_private_key" : {
"order" : 180 ,
"$ref" : "#/properties/ssh_private_key" ,
"key" : "ssh_private_key" ,
"label" : "SSH private key" ,
"widget" : "password-v3-textarea"
} ,
"ssh_passphrase" : {
"order" : 190 ,
"$ref" : "#/properties/ssh_passphrase" ,
"key" : "ssh_passphrase" ,
"label" : "SSH passphrase" ,
"widget" : "password-v3"
}
} ,
"password" : {
"ssh_password" : {
"order" : 180 ,
"$ref" : "#/properties/ssh_password" ,
"key" : "ssh_password" ,
"label" : "SSH password" ,
"widget" : "password-v3"
}
}
2022-12-27 14:40:33 +00:00
} ,
2026-03-05 15:19:57 +00:00
"disabled" : { }
} ,
"allow_dynamic_connection_parameters" : {
"order" : 200 ,
"$ref" : "#/properties/allow_dynamic_connection_parameters" ,
"key" : "allow_dynamic_connection_parameters" ,
"label" : "Allow dynamic connection parameters" ,
"description" : "Turning this on will allow dynamically setting host name and database from application" ,
"widget" : "toggle-v2" ,
"help_text" : "Enable this to override the default host and database at query runtime"
2022-04-18 14:56:05 +00:00
}
2021-09-15 02:50:55 +00:00
} ,
2024-10-28 17:56:26 +00:00
"string" : {
"connection_string" : {
2026-03-05 15:19:57 +00:00
"order" : 2 ,
2025-04-03 08:17:49 +00:00
"$ref" : "#/properties/connection_string" ,
2024-10-28 17:56:26 +00:00
"key" : "connection_string" ,
2026-03-23 04:54:58 +00:00
"label" : "Connection string (encoded)" ,
2025-04-03 08:17:49 +00:00
"description" : "postgres://username:password@hostname:port/database?sslmode=require" ,
2025-04-30 07:24:38 +00:00
"widget" : "password-v3-textarea" ,
2026-03-23 04:54:58 +00:00
"required" : true ,
"help_text" : "e.g., postgresql://admin:p%40ssword@localhost:5432/my%23db. Encode special characters using a <a href=\"https://meyerweb.com/eric/tools/dencoder/\" target=\"_blank\">URL encoder</a>."
} ,
2026-03-05 15:19:57 +00:00
"host" : {
"order" : 10 ,
"$ref" : "#/properties/host" ,
"key" : "host" ,
"label" : "Host" ,
"description" : "Enter host" ,
"widget" : "text-v3"
} ,
"port" : {
"order" : 20 ,
"$ref" : "#/properties/port" ,
"key" : "port" ,
"label" : "Port" ,
"description" : "Enter port" ,
"widget" : "text-v3" ,
"help_text" : "Default PostgreSQL port is 5432"
} ,
"database" : {
"order" : 30 ,
"$ref" : "#/properties/database" ,
"key" : "database" ,
"label" : "Database" ,
"description" : "Enter name of the database" ,
"widget" : "text-v3"
} ,
"username" : {
"order" : 40 ,
"$ref" : "#/properties/username" ,
"key" : "username" ,
"label" : "Username" ,
"description" : "Enter username" ,
"widget" : "text-v3"
} ,
"password" : {
"order" : 50 ,
"$ref" : "#/properties/password" ,
"key" : "password" ,
"label" : "Password" ,
"description" : "Enter password" ,
"widget" : "password-v3" ,
"help_text" : "Supports secrets (e.g.,{{secrets.db_password}})"
} ,
"connection_options" : {
"order" : 60 ,
"$ref" : "#/properties/connection_options" ,
"key" : "connection_options" ,
"label" : "Connection options" ,
"widget" : "react-component-headers"
} ,
"ssl_enabled" : {
"order" : 70 ,
"$ref" : "#/properties/ssl_enabled" ,
"key" : "ssl_enabled" ,
"label" : "SSL/TLS" ,
"description" : "Connect using SSL" ,
"widget" : "toggle-flip" ,
"help_text" : "Enable encrypted connections to PostgreSQL server" ,
2026-03-12 06:38:33 +00:00
"default" : true ,
"true" : {
2026-03-05 15:19:57 +00:00
"ssl_certificate" : {
"order" : 80 ,
"$ref" : "#/properties/ssl_certificate" ,
"key" : "ssl_certificate" ,
"label" : "SSL certificate" ,
"description" : "Single select dropdown for choosing certificates" ,
"widget" : "dropdown-component-flip" ,
"list" : [
{ "value" : "ca_certificate" , "name" : "CA certificate" } ,
{ "value" : "self_signed" , "name" : "Self-signed certificate" } ,
{ "value" : "none" , "name" : "None" }
]
} ,
"ca_certificate" : {
"ca_cert" : {
"order" : 90 ,
"$ref" : "#/properties/ca_cert" ,
"key" : "ca_cert" ,
"label" : "CA cert" ,
"description" : "Enter ca certificate" ,
"widget" : "password-v3-textarea"
}
} ,
"self_signed" : {
"client_key" : {
"order" : 90 ,
"$ref" : "#/properties/client_key" ,
"key" : "client_key" ,
"label" : "Client key" ,
"description" : "Enter client key" ,
"widget" : "password-v3-textarea"
} ,
"client_cert" : {
"order" : 100 ,
"$ref" : "#/properties/client_cert" ,
"key" : "client_cert" ,
"label" : "Client cert" ,
"description" : "Enter client certificate" ,
"widget" : "password-v3-textarea"
} ,
"root_cert" : {
"order" : 110 ,
"$ref" : "#/properties/root_cert" ,
"key" : "root_cert" ,
"label" : "Root cert" ,
"description" : "Enter root certificate" ,
"widget" : "password-v3-textarea"
}
} ,
"none" : { }
} ,
2026-03-12 06:38:33 +00:00
"false" : { }
2026-03-05 15:19:57 +00:00
} ,
"ssh_enabled" : {
"order" : 120 ,
"$ref" : "#/properties/ssh_enabled" ,
"key" : "ssh_enabled" ,
"label" : "SSH tunnel" ,
"description" : "Connect through an SSH server" ,
"widget" : "toggle-flip" ,
"help_text" : "Connect through an SSH server to access databases in private networks" ,
"default" : "disabled" ,
"enabled" : {
"ssh_host" : {
"order" : 130 ,
"$ref" : "#/properties/ssh_host" ,
"key" : "ssh_host" ,
"label" : "SSH host" ,
"description" : "ssh.example.com" ,
"widget" : "text-v3" ,
"help_text" : "SSH server hostname or IP address"
} ,
"ssh_port" : {
"order" : 140 ,
"$ref" : "#/properties/ssh_port" ,
"key" : "ssh_port" ,
"label" : "SSH port" ,
"description" : "22" ,
"widget" : "text-v3" ,
"help_text" : "Default SSH port is 22"
} ,
"ssh_username" : {
"order" : 150 ,
"$ref" : "#/properties/ssh_username" ,
"key" : "ssh_username" ,
"label" : "SSH username" ,
"description" : "SSH Username" ,
"widget" : "text-v3"
} ,
"ssh_auth_type" : {
"order" : 175 ,
"$ref" : "#/properties/ssh_auth_type" ,
"key" : "ssh_auth_type" ,
"label" : "Authentication type" ,
"widget" : "dropdown-component-flip" ,
"default" : "private_key" ,
"list" : [
{ "value" : "private_key" , "name" : "Private Key" } ,
{ "value" : "password" , "name" : "Password" }
]
} ,
"private_key" : {
"ssh_private_key" : {
"order" : 180 ,
"$ref" : "#/properties/ssh_private_key" ,
"key" : "ssh_private_key" ,
"label" : "SSH private key" ,
"widget" : "password-v3-textarea"
} ,
"ssh_passphrase" : {
"order" : 190 ,
"$ref" : "#/properties/ssh_passphrase" ,
"key" : "ssh_passphrase" ,
"label" : "SSH passphrase" ,
"widget" : "password-v3"
}
} ,
"password" : {
"ssh_password" : {
"order" : 180 ,
"$ref" : "#/properties/ssh_password" ,
"key" : "ssh_password" ,
"label" : "SSH password" ,
"widget" : "password-v3"
}
}
} ,
"disabled" : { }
} ,
"allow_dynamic_connection_parameters" : {
"order" : 130 ,
"$ref" : "#/properties/allow_dynamic_connection_parameters" ,
"key" : "allow_dynamic_connection_parameters" ,
"label" : "Allow dynamic connection parameters" ,
"description" : "Turning this on will allow dynamically setting host name and database from application" ,
"widget" : "toggle-v2" ,
"help_text" : "Enable this to override the default host and database at query runtime"
2022-04-18 14:56:05 +00:00
}
2021-09-15 02:50:55 +00:00
}
2025-04-03 08:17:49 +00:00
}
2022-01-27 05:25:16 +00:00
}