{ "metadata": { "spec-version": "1.5" }, "display-name": "CloudSQL PostgreSQL", "configuration-groups": [ { "label": "Connection", "properties": [ { "widget-type": "toggle", "label": "Use connection", "name": "useConnection", "widget-attributes": { "on": { "value": "true", "label": "YES" }, "off": { "value": "false", "label": "NO" }, "default": "false" } }, { "widget-type": "connection-select", "label": "Connection", "name": "connection", "widget-attributes": { "connectionType": "CloudSQLPostgreSQL" } }, { "widget-type": "plugin-list", "label": "JDBC Driver name", "name": "jdbcPluginName", "widget-attributes": { "plugin-type": "jdbc" } }, { "widget-type": "radio-group", "label": "CloudSQL Instance Type", "name": "instanceType", "widget-attributes": { "layout": "inline", "default": "public", "options": [ { "id": "public", "label": "Public" }, { "id": "private", "label": "Private" } ] } }, { "widget-type": "textbox", "label": "Connection Name", "name": "connectionName", "widget-attributes": { "placeholder": "CloudSQL instance connection name" } }, { "widget-type": "number", "label": "Port", "name": "port", "widget-attributes": { "default": "5432" } }, { "widget-type": "textbox", "label": "Username", "name": "user" }, { "widget-type": "password", "label": "Password", "name": "password" }, { "widget-type": "select", "label": "Transaction Isolation Level", "name": "transactionIsolationLevel", "widget-attributes": { "default": "TRANSACTION_READ_COMMITTED", "values": [ "TRANSACTION_READ_COMMITTED", "TRANSACTION_REPEATABLE_READ", "TRANSACTION_SERIALIZABLE" ] } }, { "widget-type": "keyvalue", "label": "Connection Arguments", "name": "connectionArguments", "widget-attributes": { "showDelimiter": "false", "key-placeholder": "Key", "value-placeholder": "Value", "kv-delimiter" : "=", "delimiter" : ";" } } ] }, { "label": "Basic", "properties": [ { "widget-type": "textbox", "label": "Reference Name", "name": "referenceName", "widget-attributes": { "placeholder": "Name used to identify this source for lineage. Typically, the name of the table/view." } }, { "widget-type": "textbox", "label": "Database", "name": "database" }, { "widget-type": "connection-browser", "widget-category": "plugin", "widget-attributes": { "connectionType": "CloudSQLPostgreSQL", "label": "Browse Database" } } ] }, { "label": "CloudSQL Properties", "properties": [ { "widget-type": "textarea", "label": "Import Query", "name": "importQuery", "widget-attributes": { "rows": "4" } }, { "widget-type": "get-schema", "widget-category": "plugin" } ] }, { "label": "Advanced", "properties": [ { "widget-type": "textarea", "label": "Bounding Query", "name": "boundingQuery", "widget-attributes": { "rows": "4" } }, { "widget-type": "textbox", "label": "Split Column", "name": "splitBy" }, { "widget-type": "textbox", "label": "Number of Splits", "name": "numSplits", "widget-attributes": { "default": "1" } }, { "widget-type": "number", "label": "Fetch Size", "name": "fetchSize", "widget-attributes": { "default": "1000", "minimum": "0" } } ] }, { "properties": [ { "widget-type": "hidden", "label": "Initial Retry Duration (sec)", "name": "initialRetryDuration", "widget-attributes": { "default": 5, "minimum": 0 } }, { "widget-type": "hidden", "label": "Maximum Retry Duration (sec)", "name": "maxRetryDuration", "widget-attributes": { "default": 80, "minimum": 0 } }, { "widget-type": "hidden", "label": "Maximum Retry Count", "name": "maxRetryCount", "widget-attributes": { "default": 5, "minimum": 0 } } ] } ], "outputs": [ { "name": "schema", "widget-type": "schema", "widget-attributes": { "schema-types": [ "boolean", "int", "long", "float", "double", "bytes", "string" ], "schema-default-type": "string" } } ], "filters": [ { "name": "showConnectionProperties ", "condition": { "expression": "useConnection == false" }, "show": [ { "type": "property", "name": "jdbcPluginName" }, { "type": "property", "name": "instanceType" }, { "type": "property", "name": "connectionName" }, { "type": "property", "name": "user" }, { "type": "property", "name": "password" }, { "type": "property", "name": "database" }, { "type": "property", "name": "connectionArguments" } ] }, { "name": "showConnectionId", "condition": { "expression": "useConnection == true" }, "show": [ { "type": "property", "name": "connection" } ] }, { "name": "showPrivateInstanceProperties ", "condition": { "expression": "instanceType == 'private'" }, "show": [ { "type": "property", "name": "port" } ] } ], "jump-config": { "datasets": [ { "ref-property-name": "referenceName" } ] } }