| { |
| "responses": { |
| "200": { |
| "content": { |
| "application/json": { |
| "schema": { |
| "properties": { |
| "allow_ctas": { |
| "description": "Allow CREATE TABLE AS option in SQL Lab", |
| "type": "boolean" |
| }, |
| "allow_cvas": { |
| "description": "Allow CREATE VIEW AS option in SQL Lab", |
| "type": "boolean" |
| }, |
| "allow_dml": { |
| "description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab", |
| "type": "boolean" |
| }, |
| "allow_file_upload": { |
| "description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.", |
| "type": "boolean" |
| }, |
| "allow_run_async": { |
| "description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.", |
| "type": "boolean" |
| }, |
| "backend": { |
| "description": "SQLAlchemy engine to use", |
| "nullable": true, |
| "type": "string" |
| }, |
| "cache_timeout": { |
| "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.", |
| "nullable": true, |
| "type": "integer" |
| }, |
| "configuration_method": { |
| "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.", |
| "type": "string" |
| }, |
| "database_name": { |
| "description": "A database name to identify this connection.", |
| "maxLength": 250, |
| "minLength": 1, |
| "nullable": true, |
| "type": "string" |
| }, |
| "driver": { |
| "description": "SQLAlchemy driver to use", |
| "nullable": true, |
| "type": "string" |
| }, |
| "engine_information": { |
| "properties": { |
| "disable_ssh_tunneling": { |
| "description": "SSH tunnel is not available to the database", |
| "type": "boolean" |
| }, |
| "supports_dynamic_catalog": { |
| "description": "The database supports multiple catalogs in a single connection", |
| "type": "boolean" |
| }, |
| "supports_file_upload": { |
| "description": "Users can upload files to the database", |
| "type": "boolean" |
| }, |
| "supports_oauth2": { |
| "description": "The database supports OAuth2", |
| "type": "boolean" |
| } |
| }, |
| "type": "object", |
| "title": "EngineInformation" |
| }, |
| "expose_in_sqllab": { |
| "description": "Expose this database to SQLLab", |
| "type": "boolean" |
| }, |
| "extra": { |
| "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>", |
| "type": "string" |
| }, |
| "force_ctas_schema": { |
| "description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema", |
| "maxLength": 250, |
| "minLength": 0, |
| "nullable": true, |
| "type": "string" |
| }, |
| "id": { |
| "description": "Database ID (for updates)", |
| "type": "integer" |
| }, |
| "impersonate_user": { |
| "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.", |
| "type": "boolean" |
| }, |
| "is_managed_externally": { "nullable": true, "type": "boolean" }, |
| "masked_encrypted_extra": { |
| "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>", |
| "nullable": true, |
| "type": "string" |
| }, |
| "parameters": { |
| "additionalProperties": {}, |
| "description": "DB-specific parameters for configuration", |
| "type": "object" |
| }, |
| "parameters_schema": { |
| "additionalProperties": {}, |
| "description": "JSONSchema for configuring the database by parameters instead of SQLAlchemy URI", |
| "type": "object" |
| }, |
| "server_cert": { |
| "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>", |
| "nullable": true, |
| "type": "string" |
| }, |
| "sqlalchemy_uri": { |
| "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>", |
| "maxLength": 1024, |
| "minLength": 1, |
| "type": "string" |
| }, |
| "ssh_tunnel": { |
| "allOf": [ |
| { |
| "properties": { |
| "id": { |
| "description": "SSH Tunnel ID (for updates)", |
| "nullable": true, |
| "type": "integer" |
| }, |
| "password": { "type": "string" }, |
| "private_key": { "type": "string" }, |
| "private_key_password": { "type": "string" }, |
| "server_address": { "type": "string" }, |
| "server_port": { "type": "integer" }, |
| "username": { "type": "string" } |
| }, |
| "type": "object", |
| "title": "DatabaseSSHTunnel" |
| } |
| ], |
| "nullable": true |
| }, |
| "uuid": { "type": "string" } |
| }, |
| "type": "object", |
| "title": "DatabaseConnectionSchema" |
| }, |
| "example": { |
| "allow_ctas": true, |
| "allow_cvas": true, |
| "allow_dml": true, |
| "allow_file_upload": true, |
| "allow_run_async": true, |
| "backend": "string", |
| "cache_timeout": 1, |
| "configuration_method": "string", |
| "database_name": "string", |
| "driver": "string", |
| "engine_information": {}, |
| "expose_in_sqllab": true, |
| "extra": "string", |
| "force_ctas_schema": "string", |
| "id": 1, |
| "impersonate_user": true, |
| "is_managed_externally": true, |
| "masked_encrypted_extra": "string", |
| "parameters": {}, |
| "parameters_schema": {}, |
| "server_cert": "string", |
| "sqlalchemy_uri": "string", |
| "ssh_tunnel": {}, |
| "uuid": "string" |
| } |
| } |
| }, |
| "description": "Database with connection info" |
| }, |
| "400": { |
| "content": { |
| "application/json": { |
| "schema": { |
| "properties": { "message": { "type": "string" } }, |
| "type": "object" |
| }, |
| "example": { "message": "Bad request: Invalid parameters provided" } |
| } |
| }, |
| "description": "Bad request" |
| }, |
| "401": { |
| "content": { |
| "application/json": { |
| "schema": { |
| "properties": { "message": { "type": "string" } }, |
| "type": "object" |
| }, |
| "example": { "message": "Unauthorized: Authentication required" } |
| } |
| }, |
| "description": "Unauthorized" |
| }, |
| "422": { |
| "content": { |
| "application/json": { |
| "schema": { |
| "properties": { "message": { "type": "string" } }, |
| "type": "object" |
| }, |
| "example": { "message": "Unprocessable entity: Validation error" } |
| } |
| }, |
| "description": "Could not process entity" |
| }, |
| "500": { |
| "content": { |
| "application/json": { |
| "schema": { |
| "properties": { "message": { "type": "string" } }, |
| "type": "object" |
| }, |
| "example": { |
| "message": "Internal server error: An unexpected error occurred" |
| } |
| } |
| }, |
| "description": "Fatal error" |
| } |
| } |
| } |