Files
ss-tools/.ai/openapi/superset/paths/database.json

1939 lines
47 KiB
JSON

{
"/api/v1/database/": {
"get": {
"description": "Gets a list of databases, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of databases",
"tags": [
"Database"
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Database added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new database",
"tags": [
"Database"
]
}
},
"/api/v1/database/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource",
"tags": [
"Database"
]
}
},
"/api/v1/database/available/": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"properties": {
"available_drivers": {
"description": "Installed drivers for the engine",
"items": {
"type": "string"
},
"type": "array"
},
"default_driver": {
"description": "Default driver for the engine",
"type": "string"
},
"engine": {
"description": "Name of the SQLAlchemy engine",
"type": "string"
},
"engine_information": {
"description": "Dict with public properties form the DB Engine",
"properties": {
"disable_ssh_tunneling": {
"description": "Whether the engine supports SSH Tunnels",
"type": "boolean"
},
"supports_file_upload": {
"description": "Whether the engine supports file uploads",
"type": "boolean"
}
},
"type": "object"
},
"name": {
"description": "Name of the database",
"type": "string"
},
"parameters": {
"description": "JSON schema defining the needed parameters",
"type": "object"
},
"preferred": {
"description": "Is the database preferred?",
"type": "boolean"
},
"sqlalchemy_uri_placeholder": {
"description": "Example placeholder for the SQLAlchemy URI",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
}
},
"description": "Database names"
},
"400": {
"$ref": "#/components/responses/400"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get names of databases currently available",
"tags": [
"Database"
]
}
},
"/api/v1/database/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with database(s) and dataset(s) as YAML"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download database(s) and associated dataset(s) as a zip file",
"tags": [
"Database"
]
}
},
"/api/v1/database/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing databases?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import database(s) with associated datasets",
"tags": [
"Database"
]
}
},
"/api/v1/database/oauth2/": {
"get": {
"description": "-> Receive and store personal access tokens from OAuth for user-level authorization",
"parameters": [
{
"in": "query",
"name": "state",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "code",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "scope",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "error",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
},
"description": "A dummy self-closing HTML page"
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Receive personal access tokens from OAuth2",
"tags": [
"Database"
]
}
},
"/api/v1/database/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get related fields data",
"tags": [
"Database"
]
}
},
"/api/v1/database/test_connection/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseTestConnectionSchema"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database Test Connection"
},
"400": {
"$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Test a database connection",
"tags": [
"Database"
]
}
},
"/api/v1/database/upload_metadata/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UploadFileMetadataPostSchema"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/UploadFileMetadata"
}
},
"type": "object"
}
}
},
"description": "Upload response"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Upload a file and returns file metadata",
"tags": [
"Database"
]
}
},
"/api/v1/database/validate_parameters/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseValidateParametersSchema"
}
}
},
"description": "DB-specific parameters",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database Test Connection"
},
"400": {
"$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Validate database connection parameters",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a database",
"tags": [
"Database"
]
},
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "Database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a database",
"tags": [
"Database"
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Database changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Change a database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/catalogs/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_catalogs_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsResponseSchema"
}
}
},
"description": "A List of all catalogs from the database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get all catalogs from a database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/connection": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseConnectionSchema"
}
}
},
"description": "Database with connection info"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a database connection info",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/function_names/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get function names supported by a database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/related_objects/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get charts and dashboards count associated to a database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/schemas/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_schemas_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SchemasResponseSchema"
}
}
},
"description": "A List of all schemas from the database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get all schemas from a database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/schemas_access_for_file_upload/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
}
}
},
"description": "The list of the database schemas where to upload information"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "The list of the database schemas where to upload information",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database select star for table",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database select star for table",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/ssh_tunnel/": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "SSH Tunnel deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a SSH tunnel",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/sync_permissions/": {
"post": {
"parameters": [
{
"description": "The database connection ID",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Task created to sync permissions."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Re-sync all permissions for a database connection",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableMetadataResponseSchema"
}
}
},
"description": "Table metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database table metadata",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
"get": {
"description": "Response depends on each DB engine spec normally focused on partitions.",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
"description": "Table extra metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get table extra metadata",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/table_metadata/": {
"get": {
"description": "Metadata associated with the table (columns, indexes, etc.)",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "query",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Optional table schema, if not passed default schema will be used",
"in": "query",
"name": "schema",
"schema": {
"type": "string"
}
},
{
"description": "Optional table catalog, if not passed default catalog will be used",
"in": "query",
"name": "catalog",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
"description": "Table metadata information"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get table metadata",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/table_metadata/extra/": {
"get": {
"description": "Extra metadata associated with the table (partitions, description, etc.)",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "query",
"name": "name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Optional table schema, if not passed the schema configured in the database will be used",
"in": "query",
"name": "schema",
"schema": {
"type": "string"
}
},
{
"description": "Optional table catalog, if not passed the catalog configured in the database will be used",
"in": "query",
"name": "catalog",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
"description": "Table extra metadata information"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get table extra metadata",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/tables/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_tables_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"type": "integer"
},
"result": {
"description": "A List of tables for given database",
"items": {
"$ref": "#/components/schemas/DatabaseTablesResponse"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Tables list"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of tables for given database",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/upload/": {
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UploadPostSchema"
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "CSV upload response"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Upload a file to a database table",
"tags": [
"Database"
]
}
},
"/api/v1/database/{pk}/validate_sql/": {
"post": {
"description": "Validates that arbitrary SQL is acceptable for the given database.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateSQLRequest"
}
}
},
"description": "Validate SQL request",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"description": "A List of SQL errors found on the statement",
"items": {
"$ref": "#/components/schemas/ValidateSQLResponse"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Validation result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Validate arbitrary SQL",
"tags": [
"Database"
]
}
}
}\n