1939 lines
47 KiB
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 |