You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/02/12 21:29:51 UTC
(superset) branch docs/add-theme-api-to-openapi-spec created (now 0002f975354)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch docs/add-theme-api-to-openapi-spec
in repository https://gitbox.apache.org/repos/asf/superset.git
at 0002f975354 docs(api): regenerate OpenAPI spec to include Theme API endpoints
This branch includes the following new commits:
new 0002f975354 docs(api): regenerate OpenAPI spec to include Theme API endpoints
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(superset) 01/01: docs(api): regenerate OpenAPI spec to include Theme API endpoints
Posted by ru...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch docs/add-theme-api-to-openapi-spec
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 0002f9753549f39bb0e02a5c9a335964d67297e4
Author: Evan Rusackas <ev...@rusackas.com>
AuthorDate: Thu Feb 12 13:29:34 2026 -0800
docs(api): regenerate OpenAPI spec to include Theme API endpoints
The Theme API was added in #34182 but the OpenAPI spec used in the docs
hadn't been regenerated to include these endpoints. This commit:
- Regenerates openapi.json from the running Superset instance
- Adds Theme API endpoints (/api/v1/theme/*)
- Includes theme management, system theme settings, and export/import
- Adds "Themes" tag description to fix-openapi-spec.py
The Theme API provides:
- GET/POST /api/v1/theme/ - List and create themes
- PUT/DELETE /api/v1/theme/{pk} - Update and delete themes
- PUT /api/v1/theme/{pk}/set_system_default - Set system default theme
- PUT /api/v1/theme/{pk}/set_system_dark - Set system dark theme
- DELETE /api/v1/theme/unset_system_default - Clear system default
- DELETE /api/v1/theme/unset_system_dark - Clear system dark
- GET /api/v1/theme/export/ - Export themes as YAML
- POST /api/v1/theme/import/ - Import themes from YAML
Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
docs/scripts/fix-openapi-spec.py | 1 +
docs/static/resources/openapi.json | 8626 ++++++++++++++++++++++++++----------
2 files changed, 6284 insertions(+), 2343 deletions(-)
diff --git a/docs/scripts/fix-openapi-spec.py b/docs/scripts/fix-openapi-spec.py
index f2609b38c33..413c90540d0 100644
--- a/docs/scripts/fix-openapi-spec.py
+++ b/docs/scripts/fix-openapi-spec.py
@@ -295,6 +295,7 @@ TAG_DESCRIPTIONS = {
"Security Roles": "Manage security roles and their permissions.",
"Security Users": "Manage user accounts.",
"Tags": "Organize assets with tags.",
+ "Themes": "Manage UI themes for customizing Superset's appearance.",
"User": "User profile and preferences.",
}
diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json
index 4fa850bd838..30401c7ebce 100644
--- a/docs/static/resources/openapi.json
+++ b/docs/static/resources/openapi.json
@@ -276,7 +276,8 @@
"",
"opacityLow",
"opacityMedium",
- "opacityHigh"
+ "opacityHigh",
+ null
],
"nullable": true,
"type": "string"
@@ -980,15 +981,7 @@
"ChartDataDatasource": {
"properties": {
"id": {
- "description": "Datasource id/uuid",
- "oneOf": [
- {
- "type": "integer"
- },
- {
- "type": "string"
- }
- ]
+ "description": "Datasource id or uuid"
},
"type": {
"description": "Datasource type",
@@ -1009,6 +1002,14 @@
},
"ChartDataExtras": {
"properties": {
+ "column_order": {
+ "description": "Ordered list of column names for result ordering. Used to preserve user's column reordering (including mixed dimension columns and metrics)",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
"having": {
"description": "HAVING clause to be added to aggregate queries using AND operator.",
"type": "string"
@@ -1055,12 +1056,18 @@
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
"P1W/1970-01-03T00:00:00Z",
- "P1W/1970-01-04T00:00:00Z"
+ "P1W/1970-01-04T00:00:00Z",
+ null
],
"example": "P1D",
"nullable": true,
"type": "string"
},
+ "transpile_to_dialect": {
+ "description": "If true, WHERE/HAVING clauses will be transpiled to the target database dialect using SQLGlot.",
+ "nullable": true,
+ "type": "boolean"
+ },
"where": {
"description": "WHERE clause to be added to queries using AND operator.",
"type": "string"
@@ -1095,6 +1102,7 @@
"LIKE",
"NOT LIKE",
"ILIKE",
+ "NOT ILIKE",
"IS NULL",
"IS NOT NULL",
"IN",
@@ -1466,6 +1474,12 @@
"nullable": true,
"type": "string"
},
+ "group_others_when_limit_reached": {
+ "default": false,
+ "description": "When true, groups remaining series into an 'Others' category when series limit is reached. Prevents incomplete data.",
+ "nullable": true,
+ "type": "boolean"
+ },
"groupby": {
"description": "Columns by which to group the query. This field is deprecated, use `columns` instead.",
"items": {},
@@ -1537,7 +1551,8 @@
"samples",
"timegrains",
"post_processed",
- "drill_detail"
+ "drill_detail",
+ null
],
"nullable": true
},
@@ -1669,6 +1684,12 @@
},
"type": "array"
},
+ "detected_currency": {
+ "default": null,
+ "description": "Detected ISO 4217 currency code when AUTO mode is used. Returns the currency code if all filtered data contains a single currency or null if multiple currencies are present.",
+ "nullable": true,
+ "type": "string"
+ },
"error": {
"description": "Error",
"nullable": true,
@@ -1683,8 +1704,14 @@
"description": "Is the result cached",
"type": "boolean"
},
+ "queried_dttm": {
+ "description": "UTC timestamp when the query was executed (ISO 8601 format)",
+ "nullable": true,
+ "type": "string"
+ },
"query": {
- "description": "The executed query statement",
+ "description": "The executed query statement. May be absent when validation errors occur.",
+ "nullable": true,
"type": "string"
},
"rejected_filters": {
@@ -1727,7 +1754,7 @@
"cache_timeout",
"cached_dttm",
"is_cached",
- "query"
+ "queried_dttm"
],
"type": "object"
},
@@ -1745,125 +1772,12 @@
},
"ChartDataRestApi.get": {
"properties": {
- "cache_timeout": {
- "nullable": true,
- "type": "integer"
- },
- "certification_details": {
- "nullable": true,
- "type": "string"
- },
- "certified_by": {
- "nullable": true,
- "type": "string"
- },
- "changed_on_delta_humanized": {
- "readOnly": true
- },
- "dashboards": {
- "$ref": "#/components/schemas/ChartDataRestApi.get.Dashboard"
- },
- "description": {
- "nullable": true,
- "type": "string"
- },
"id": {
"type": "integer"
- },
- "is_managed_externally": {
- "type": "boolean"
- },
- "owners": {
- "$ref": "#/components/schemas/ChartDataRestApi.get.User"
- },
- "params": {
- "nullable": true,
- "type": "string"
- },
- "query_context": {
- "nullable": true,
- "type": "string"
- },
- "slice_name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
- },
- "tags": {
- "$ref": "#/components/schemas/ChartDataRestApi.get.Tag"
- },
- "thumbnail_url": {
- "readOnly": true
- },
- "url": {
- "readOnly": true
- },
- "viz_type": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- },
- "ChartDataRestApi.get.Dashboard": {
- "properties": {
- "dashboard_title": {
- "maxLength": 500,
- "nullable": true,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "json_metadata": {
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- },
- "ChartDataRestApi.get.Tag": {
- "properties": {
- "id": {
- "type": "integer"
- },
- "name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
- },
- "type": {
- "enum": [
- 1,
- 2,
- 3,
- 4
- ]
}
},
"type": "object"
},
- "ChartDataRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": [
- "first_name",
- "last_name"
- ],
- "type": "object"
- },
"ChartDataRestApi.get_list": {
"properties": {
"cache_timeout": {
@@ -2202,6 +2116,11 @@
"minLength": 1,
"type": "string"
},
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ },
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
@@ -2257,7 +2176,8 @@
"dataset",
"query",
"saved_query",
- "view"
+ "view",
+ null
],
"nullable": true,
"type": "string"
@@ -2311,6 +2231,11 @@
},
"type": "array"
},
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ },
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
@@ -2568,125 +2493,95 @@
},
"type": "object"
},
- "ChartRestApi.get": {
+ "ChartGetResponseSchema": {
"properties": {
"cache_timeout": {
- "nullable": true,
- "type": "integer"
+ "type": "string"
},
"certification_details": {
- "nullable": true,
"type": "string"
},
"certified_by": {
- "nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
- "readOnly": true
+ "type": "string"
},
"dashboards": {
- "$ref": "#/components/schemas/ChartRestApi.get.Dashboard"
+ "items": {
+ "$ref": "#/components/schemas/Dashboard"
+ },
+ "type": "array"
+ },
+ "datasource_id": {
+ "type": "integer"
+ },
+ "datasource_name_text": {
+ "readOnly": true
+ },
+ "datasource_type": {
+ "type": "string"
+ },
+ "datasource_url": {
+ "readOnly": true
+ },
+ "datasource_uuid": {
+ "format": "uuid",
+ "type": "string"
},
"description": {
- "nullable": true,
"type": "string"
},
"id": {
+ "description": "The id of the chart.",
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"owners": {
- "$ref": "#/components/schemas/ChartRestApi.get.User"
+ "items": {
+ "$ref": "#/components/schemas/User"
+ },
+ "type": "array"
},
"params": {
- "nullable": true,
"type": "string"
},
"query_context": {
- "nullable": true,
"type": "string"
},
"slice_name": {
- "maxLength": 250,
- "nullable": true,
"type": "string"
},
"tags": {
- "$ref": "#/components/schemas/ChartRestApi.get.Tag"
+ "items": {
+ "$ref": "#/components/schemas/Tag"
+ },
+ "type": "array"
},
"thumbnail_url": {
- "readOnly": true
+ "type": "string"
},
"url": {
- "readOnly": true
- },
- "viz_type": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- },
- "ChartRestApi.get.Dashboard": {
- "properties": {
- "dashboard_title": {
- "maxLength": 500,
- "nullable": true,
"type": "string"
},
- "id": {
- "type": "integer"
- },
- "json_metadata": {
- "nullable": true,
+ "uuid": {
+ "format": "uuid",
"type": "string"
- }
- },
- "type": "object"
- },
- "ChartRestApi.get.Tag": {
- "properties": {
- "id": {
- "type": "integer"
},
- "name": {
- "maxLength": 250,
- "nullable": true,
+ "viz_type": {
"type": "string"
- },
- "type": {
- "enum": [
- 1,
- 2,
- 3,
- 4
- ]
}
},
"type": "object"
},
- "ChartRestApi.get.User": {
+ "ChartRestApi.get": {
"properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
"id": {
"type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
}
},
- "required": [
- "first_name",
- "last_name"
- ],
"type": "object"
},
"ChartRestApi.get_list": {
@@ -3027,6 +2922,11 @@
"minLength": 1,
"type": "string"
},
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ },
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
@@ -3082,7 +2982,8 @@
"dataset",
"query",
"saved_query",
- "view"
+ "view",
+ null
],
"nullable": true,
"type": "string"
@@ -3136,6 +3037,11 @@
},
"type": "array"
},
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ },
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
@@ -3316,6 +3222,41 @@
},
"type": "object"
},
+ "CurrentUserPutSchema": {
+ "properties": {
+ "first_name": {
+ "description": "The current user's first name",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ },
+ "last_name": {
+ "description": "The current user's last name",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ },
+ "password": {
+ "description": "The current user's password for authentication",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Dashboard": {
+ "properties": {
+ "dashboard_title": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "json_metadata": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"DashboardCacheScreenshotResponseSchema": {
"properties": {
"cache_key": {
@@ -3397,6 +3338,9 @@
},
"type": "array"
},
+ "currency_code_column": {
+ "type": "string"
+ },
"database": {
"$ref": "#/components/schemas/Database"
},
@@ -3525,7 +3469,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
},
"changed_by_name": {
"type": "string"
@@ -3545,7 +3489,7 @@
"type": "array"
},
"created_by": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
},
"created_on_delta_humanized": {
"type": "string"
@@ -3554,6 +3498,12 @@
"description": "Override CSS for the dashboard.",
"type": "string"
},
+ "custom_tags": {
+ "items": {
+ "$ref": "#/components/schemas/Tag1"
+ },
+ "type": "array"
+ },
"dashboard_title": {
"description": "A title for the dashboard.",
"type": "string"
@@ -3571,7 +3521,7 @@
},
"owners": {
"items": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
},
"type": "array"
},
@@ -3593,16 +3543,29 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag"
+ "$ref": "#/components/schemas/Tag1"
},
"type": "array"
},
+ "theme": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Theme"
+ }
+ ],
+ "nullable": true
+ },
"thumbnail_url": {
"nullable": true,
"type": "string"
},
"url": {
"type": "string"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"type": "object"
@@ -3622,6 +3585,11 @@
"nullable": true,
"type": "string"
},
+ "chartStates": {
+ "description": "Chart-level state for stateful tables (column order, sorting, filtering)",
+ "nullable": true,
+ "type": "object"
+ },
"dataMask": {
"description": "Data mask used for native filter state",
"nullable": true,
@@ -3880,6 +3848,16 @@
"minLength": 1,
"nullable": true,
"type": "string"
+ },
+ "theme_id": {
+ "description": "Theme ID for the dashboard",
+ "nullable": true,
+ "type": "integer"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"type": "object"
@@ -3961,6 +3939,42 @@
"type": "integer"
},
"type": "array"
+ },
+ "theme_id": {
+ "description": "Theme ID for the dashboard",
+ "nullable": true,
+ "type": "integer"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "DashboardScreenshotPostSchema": {
+ "properties": {
+ "activeTabs": {
+ "description": "A list representing active tabs.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "anchor": {
+ "description": "A string representing the anchor.",
+ "type": "string"
+ },
+ "dataMask": {
+ "additionalProperties": {},
+ "description": "An object representing the data mask.",
+ "type": "object"
+ },
+ "urlParams": {
+ "description": "A list of tuples, each containing two strings.",
+ "items": {},
+ "type": "array"
}
},
"type": "object"
@@ -4333,6 +4347,11 @@
"changed_on_delta_humanized": {
"readOnly": true
},
+ "configuration_method": {
+ "maxLength": 255,
+ "nullable": true,
+ "type": "string"
+ },
"created_by": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list.User1"
},
@@ -5067,6 +5086,12 @@
"minLength": 1,
"type": "string"
},
+ "datetime_format": {
+ "maxLength": 100,
+ "minLength": 1,
+ "nullable": true,
+ "type": "string"
+ },
"description": {
"nullable": true,
"type": "string"
@@ -5170,6 +5195,21 @@
],
"type": "object"
},
+ "DatasetMetricCurrencyPut": {
+ "properties": {
+ "symbol": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "symbolPosition": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"DatasetMetricRestApi.get": {
"properties": {
"id": {
@@ -5205,10 +5245,12 @@
"DatasetMetricsPut": {
"properties": {
"currency": {
- "maxLength": 128,
- "minLength": 1,
- "nullable": true,
- "type": "string"
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/DatasetMetricCurrencyPut"
+ }
+ ],
+ "nullable": true
},
"d3format": {
"maxLength": 128,
@@ -5342,8 +5384,7 @@
"type": "boolean"
},
"cache_timeout": {
- "nullable": true,
- "type": "integer"
+ "readOnly": true
},
"catalog": {
"maxLength": 256,
@@ -5378,6 +5419,11 @@
"created_on_humanized": {
"readOnly": true
},
+ "currency_code_column": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
"database": {
"$ref": "#/components/schemas/DatasetRestApi.get.Database"
},
@@ -5480,6 +5526,11 @@
"url": {
"readOnly": true
},
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ },
"verbose_map": {
"readOnly": true
}
@@ -5506,6 +5557,11 @@
},
"id": {
"type": "integer"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"required": [
@@ -5793,6 +5849,11 @@
},
"id": {
"type": "integer"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"required": [
@@ -5887,6 +5948,15 @@
"maxLength": 250,
"minLength": 1,
"type": "string"
+ },
+ "template_params": {
+ "nullable": true,
+ "type": "string"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"required": [
@@ -5917,6 +5987,12 @@
},
"type": "array"
},
+ "currency_code_column": {
+ "maxLength": 250,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
"database_id": {
"type": "integer"
},
@@ -6003,6 +6079,11 @@
"template_params": {
"nullable": true,
"type": "string"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
}
},
"type": "object"
@@ -6090,7 +6171,7 @@
"type": "array"
},
"changed_by": {
- "$ref": "#/components/schemas/User1"
+ "$ref": "#/components/schemas/User2"
},
"changed_on": {
"format": "date-time",
@@ -6214,10 +6295,6 @@
"nullable": true,
"type": "boolean"
},
- "json": {
- "nullable": true,
- "type": "boolean"
- },
"queryLimit": {
"nullable": true,
"type": "integer"
@@ -6404,6 +6481,31 @@
],
"type": "object"
},
+ "FormatQueryPayloadSchema": {
+ "properties": {
+ "database_id": {
+ "description": "The database id",
+ "nullable": true,
+ "type": "integer"
+ },
+ "engine": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "type": "string"
+ },
+ "template_params": {
+ "description": "The SQL query template params as JSON string",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "required": [
+ "sql"
+ ],
+ "type": "object"
+ },
"GetFavStarIdsSchema": {
"properties": {
"result": {
@@ -6459,6 +6561,290 @@
],
"type": "object"
},
+ "GroupApi.get": {
+ "properties": {
+ "description": {
+ "maxLength": 512,
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 150,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "roles": {
+ "$ref": "#/components/schemas/GroupApi.get.Role"
+ },
+ "users": {
+ "$ref": "#/components/schemas/GroupApi.get.User"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupApi.get.Role": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupApi.get.User": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "maxLength": 128,
+ "type": "string"
+ }
+ },
+ "required": [
+ "username"
+ ],
+ "type": "object"
+ },
+ "GroupApi.get_list": {
+ "properties": {
+ "description": {
+ "maxLength": 512,
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 150,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "roles": {
+ "$ref": "#/components/schemas/GroupApi.get_list.Role"
+ },
+ "users": {
+ "$ref": "#/components/schemas/GroupApi.get_list.User"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupApi.get_list.Role": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupApi.get_list.User": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "maxLength": 128,
+ "type": "string"
+ }
+ },
+ "required": [
+ "username"
+ ],
+ "type": "object"
+ },
+ "GroupApi.post": {
+ "properties": {
+ "description": {
+ "description": "Group description",
+ "maxLength": 512,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "description": "Group label",
+ "maxLength": 150,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Group name",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "roles": {
+ "description": "Group roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "users": {
+ "description": "Group users",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupApi.put": {
+ "properties": {
+ "description": {
+ "description": "Group description",
+ "maxLength": 512,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "description": "Group label",
+ "maxLength": 150,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Group name",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "roles": {
+ "description": "Group roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "users": {
+ "description": "Group users",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "GroupPostSchema": {
+ "properties": {
+ "description": {
+ "description": "Group description",
+ "maxLength": 512,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "description": "Group label",
+ "maxLength": 150,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Group name",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "roles": {
+ "description": "Group roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "users": {
+ "description": "Group users",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "GroupPutSchema": {
+ "properties": {
+ "description": {
+ "description": "Group description",
+ "maxLength": 512,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "description": "Group label",
+ "maxLength": 150,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Group name",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "roles": {
+ "description": "Group roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "users": {
+ "description": "Group users",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"GuestTokenCreate": {
"properties": {
"resources": {
@@ -6474,7 +6860,7 @@
"type": "array"
},
"user": {
- "$ref": "#/components/schemas/User2"
+ "$ref": "#/components/schemas/User3"
}
},
"required": [
@@ -6504,6 +6890,15 @@
"nullable": true,
"type": "integer"
},
+ "configuration_method": {
+ "default": "sqlalchemy_form",
+ "enum": [
+ "sqlalchemy_form",
+ "dynamic_form",
+ null
+ ],
+ "nullable": true
+ },
"database_name": {
"type": "string"
},
@@ -6593,6 +6988,9 @@
"additionalProperties": {},
"type": "object"
},
+ "per_user_caching": {
+ "type": "boolean"
+ },
"schema_options": {
"additionalProperties": {},
"type": "object"
@@ -6646,21 +7044,28 @@
"user": {
"$ref": "#/components/schemas/LogRestApi.get.User"
},
- "user_id": {
- "nullable": true,
- "type": "integer"
- }
+ "user_id": {}
},
"type": "object"
},
"LogRestApi.get.User": {
"properties": {
- "username": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
"maxLength": 64,
"type": "string"
+ },
+ "username": {
+ "maxLength": 128,
+ "type": "string"
}
},
"required": [
+ "first_name",
+ "last_name",
"username"
],
"type": "object"
@@ -6701,21 +7106,28 @@
"user": {
"$ref": "#/components/schemas/LogRestApi.get_list.User"
},
- "user_id": {
- "nullable": true,
- "type": "integer"
- }
+ "user_id": {}
},
"type": "object"
},
"LogRestApi.get_list.User": {
"properties": {
- "username": {
+ "first_name": {
"maxLength": 64,
"type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "username": {
+ "maxLength": 128,
+ "type": "string"
}
},
"required": [
+ "first_name",
+ "last_name",
"username"
],
"type": "object"
@@ -6882,27 +7294,15 @@
},
"PermissionViewMenuApi.post": {
"properties": {
- "permission_id": {
- "nullable": true,
- "type": "integer"
- },
- "view_menu_id": {
- "nullable": true,
- "type": "integer"
- }
+ "permission_id": {},
+ "view_menu_id": {}
},
"type": "object"
},
"PermissionViewMenuApi.put": {
"properties": {
- "permission_id": {
- "nullable": true,
- "type": "integer"
- },
- "view_menu_id": {
- "nullable": true,
- "type": "integer"
- }
+ "permission_id": {},
+ "view_menu_id": {}
},
"type": "object"
},
@@ -7112,7 +7512,7 @@
"type": "string"
},
"user": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
}
},
"type": "object"
@@ -7272,7 +7672,7 @@
"RLSRestApi.get_list": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
},
"changed_on_delta_humanized": {
"readOnly": true
@@ -7644,7 +8044,8 @@
"enum": [
"Email",
"Slack",
- "SlackV2"
+ "SlackV2",
+ "Webhook"
],
"type": "string"
}
@@ -7896,10 +8297,7 @@
"changed_on_delta_humanized": {
"readOnly": true
},
- "chart_id": {
- "nullable": true,
- "type": "integer"
- },
+ "chart_id": {},
"created_by": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
},
@@ -7920,10 +8318,7 @@
"crontab_humanized": {
"readOnly": true
},
- "dashboard_id": {
- "nullable": true,
- "type": "integer"
- },
+ "dashboard_id": {},
"description": {
"nullable": true,
"type": "string"
@@ -8255,6 +8650,7 @@
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
+ "America/Coyhaique",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
@@ -8807,7 +9203,8 @@
"enum": [
"charts",
"dashboards",
- "alerts_reports"
+ "alerts_reports",
+ null
],
"nullable": true
},
@@ -8996,6 +9393,7 @@
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
+ "America/Coyhaique",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
@@ -9511,7 +9909,8 @@
"description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
"enum": [
"not null",
- "operator"
+ "operator",
+ null
],
"nullable": true,
"type": "string"
@@ -9557,6 +9956,21 @@
],
"type": "object"
},
+ "RoleGroupPutSchema": {
+ "properties": {
+ "group_ids": {
+ "description": "List of group ids",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "group_ids"
+ ],
+ "type": "object"
+ },
"RolePermissionListSchema": {
"properties": {
"id": {
@@ -9831,10 +10245,7 @@
"database": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
},
- "db_id": {
- "nullable": true,
- "type": "integer"
- },
+ "db_id": {},
"description": {
"nullable": true,
"type": "string"
@@ -9958,10 +10369,7 @@
"nullable": true,
"type": "string"
},
- "db_id": {
- "nullable": true,
- "type": "integer"
- },
+ "db_id": {},
"description": {
"nullable": true,
"type": "string"
@@ -9998,10 +10406,7 @@
"nullable": true,
"type": "string"
},
- "db_id": {
- "nullable": true,
- "type": "integer"
- },
+ "db_id": {},
"description": {
"nullable": true,
"type": "string"
@@ -10265,6 +10670,9 @@
"maxLength": 64,
"type": "string"
},
+ "groups": {
+ "$ref": "#/components/schemas/SupersetUserApi.get.Group"
+ },
"id": {
"type": "integer"
},
@@ -10285,7 +10693,7 @@
"$ref": "#/components/schemas/SupersetUserApi.get.Role"
},
"username": {
- "maxLength": 64,
+ "maxLength": 128,
"type": "string"
}
},
@@ -10297,6 +10705,31 @@
],
"type": "object"
},
+ "SupersetUserApi.get.Group": {
+ "properties": {
+ "description": {
+ "maxLength": 512,
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 150,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
"SupersetUserApi.get.Role": {
"properties": {
"id": {
@@ -10362,6 +10795,9 @@
"maxLength": 64,
"type": "string"
},
+ "groups": {
+ "$ref": "#/components/schemas/SupersetUserApi.get_list.Group"
+ },
"id": {
"type": "integer"
},
@@ -10382,7 +10818,7 @@
"$ref": "#/components/schemas/SupersetUserApi.get_list.Role"
},
"username": {
- "maxLength": 64,
+ "maxLength": 128,
"type": "string"
}
},
@@ -10394,6 +10830,31 @@
],
"type": "object"
},
+ "SupersetUserApi.get_list.Group": {
+ "properties": {
+ "description": {
+ "maxLength": 512,
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 150,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
"SupersetUserApi.get_list.Role": {
"properties": {
"id": {
@@ -10439,6 +10900,13 @@
"description": "The user's first name",
"type": "string"
},
+ "groups": {
+ "description": "The user's roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
"last_name": {
"description": "The user's last name",
"type": "string"
@@ -10452,7 +10920,6 @@
"items": {
"type": "integer"
},
- "minItems": 1,
"type": "array"
},
"username": {
@@ -10467,7 +10934,6 @@
"first_name",
"last_name",
"password",
- "roles",
"username"
],
"type": "object"
@@ -10486,6 +10952,13 @@
"description": "The user's first name",
"type": "string"
},
+ "groups": {
+ "description": "The user's roles",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
"last_name": {
"description": "The user's last name",
"type": "string"
@@ -10499,7 +10972,6 @@
"items": {
"type": "integer"
},
- "minItems": 1,
"type": "array"
},
"username": {
@@ -10817,6 +11289,25 @@
},
"type": "object"
},
+ "Tag1": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ },
+ "type": "object"
+ },
"TagGetResponseSchema": {
"properties": {
"id": {
@@ -10939,63 +11430,18 @@
},
"TagRestApi.get.User1": {
"properties": {
- "active": {
- "nullable": true,
- "type": "boolean"
- },
- "changed_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "created_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "email": {
- "maxLength": 320,
- "type": "string"
- },
- "fail_login_count": {
- "nullable": true,
- "type": "integer"
- },
"first_name": {
"maxLength": 64,
"type": "string"
},
- "id": {
- "type": "integer"
- },
- "last_login": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
"last_name": {
"maxLength": 64,
"type": "string"
- },
- "login_count": {
- "nullable": true,
- "type": "integer"
- },
- "password": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
- },
- "username": {
- "maxLength": 64,
- "type": "string"
}
},
"required": [
- "email",
"first_name",
- "last_name",
- "username"
+ "last_name"
],
"type": "object"
},
@@ -11113,7 +11559,7 @@
"type": "string"
},
"created_by": {
- "$ref": "#/components/schemas/User"
+ "$ref": "#/components/schemas/User1"
},
"creator": {
"type": "string"
@@ -11126,7 +11572,7 @@
},
"owners": {
"items": {
- "$ref": "#/components/schemas/User1"
+ "$ref": "#/components/schemas/User2"
},
"type": "array"
},
@@ -11169,6 +11615,218 @@
],
"type": "object"
},
+ "Theme": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "json_data": {
+ "type": "string"
+ },
+ "theme_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ThemeRestApi.get": {
+ "properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/ThemeRestApi.get.User"
+ },
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/ThemeRestApi.get.User1"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_system": {
+ "type": "boolean"
+ },
+ "is_system_dark": {
+ "type": "boolean"
+ },
+ "is_system_default": {
+ "type": "boolean"
+ },
+ "json_data": {
+ "nullable": true,
+ "type": "string"
+ },
+ "theme_name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ThemeRestApi.get.User": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ThemeRestApi.get.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ThemeRestApi.get_list": {
+ "properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/ThemeRestApi.get_list.User"
+ },
+ "changed_by_name": {
+ "readOnly": true
+ },
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/ThemeRestApi.get_list.User1"
+ },
+ "created_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_system": {
+ "type": "boolean"
+ },
+ "is_system_dark": {
+ "type": "boolean"
+ },
+ "is_system_default": {
+ "type": "boolean"
+ },
+ "json_data": {
+ "nullable": true,
+ "type": "string"
+ },
+ "theme_name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ThemeRestApi.get_list.User": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ThemeRestApi.get_list.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ThemeRestApi.post": {
+ "properties": {
+ "json_data": {
+ "type": "string"
+ },
+ "theme_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "json_data",
+ "theme_name"
+ ],
+ "type": "object"
+ },
+ "ThemeRestApi.put": {
+ "properties": {
+ "json_data": {
+ "type": "string"
+ },
+ "theme_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "json_data",
+ "theme_name"
+ ],
+ "type": "object"
+ },
"UploadFileMetadata": {
"properties": {
"items": {
@@ -11359,6 +12017,20 @@
"type": "object"
},
"User1": {
+ "properties": {
+ "first_name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "User2": {
"properties": {
"first_name": {
"type": "string"
@@ -11375,18 +12047,82 @@
},
"type": "object"
},
- "User2": {
+ "User3": {
+ "properties": {
+ "first_name": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "UserRegistrationsRestAPI.get": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "UserRegistrationsRestAPI.get_list": {
"properties": {
+ "email": {
+ "maxLength": 320,
+ "type": "string"
+ },
"first_name": {
+ "maxLength": 64,
"type": "string"
},
+ "id": {
+ "type": "integer"
+ },
"last_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "registration_date": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "registration_hash": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
},
"username": {
+ "maxLength": 128,
"type": "string"
}
},
+ "required": [
+ "email",
+ "first_name",
+ "last_name",
+ "username"
+ ],
+ "type": "object"
+ },
+ "UserRegistrationsRestAPI.post": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "UserRegistrationsRestAPI.put": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
"type": "object"
},
"UserResponseSchema": {
@@ -11409,6 +12145,9 @@
"last_name": {
"type": "string"
},
+ "login_count": {
+ "type": "integer"
+ },
"username": {
"type": "string"
}
@@ -11714,6 +12453,19 @@
"type": "boolean"
},
{
+ "items": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
"type": "array"
}
]
@@ -11857,39 +12609,6 @@
},
"type": "object"
},
- "DashboardScreenshotPostSchema": {
- "type": "object",
- "properties": {
- "dataMask": {
- "type": "object",
- "description": "An object representing the data mask.",
- "additionalProperties": true
- },
- "activeTabs": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "A list representing active tabs."
- },
- "anchor": {
- "type": "string",
- "description": "A string representing the anchor."
- },
- "urlParams": {
- "type": "array",
- "items": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 2,
- "maxItems": 2
- },
- "description": "A list of tuples, each containing two strings."
- }
- }
- },
"DashboardNativeFiltersConfigUpdateSchema": {
"type": "object",
"properties": {
@@ -11959,33 +12678,6 @@
}
}
},
- "FormatQueryPayloadSchema": {
- "type": "object",
- "required": [
- "sql"
- ],
- "properties": {
- "sql": {
- "type": "string",
- "description": "The SQL query to format."
- },
- "engine": {
- "type": "string",
- "nullable": true,
- "description": "The database engine."
- },
- "database_id": {
- "type": "integer",
- "nullable": true,
- "description": "The database id."
- },
- "template_params": {
- "type": "string",
- "nullable": true,
- "description": "The SQL query template params as JSON string."
- }
- }
- },
"get_slack_channels_schema": {
"type": "object",
"properties": {
@@ -14185,6 +14877,7 @@
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
"viz_type": [
"bar",
"area",
@@ -14229,6 +14922,7 @@
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
"viz_type": [
"bar",
"area",
@@ -14956,15 +15650,17 @@
]
}
},
- "/api/v1/chart/{pk}": {
- "delete": {
+ "/api/v1/chart/{id_or_uuid}": {
+ "get": {
+ "description": "Get a chart",
"parameters": [
{
+ "description": "Either the id of the chart, or its uuid",
"in": "path",
- "name": "pk",
+ "name": "id_or_uuid",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
@@ -14974,33 +15670,53 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "$ref": "#/components/schemas/ChartGetResponseSchema"
}
},
"type": "object"
},
"example": {
- "message": "string"
+ "result": {
+ "cache_timeout": "string",
+ "certification_details": "string",
+ "certified_by": "string",
+ "changed_on_delta_humanized": "string",
+ "dashboards": [],
+ "datasource_id": 1,
+ "datasource_name_text": {},
+ "datasource_type": "string",
+ "datasource_url": {},
+ "datasource_uuid": "550e8400-e29b-41d4-a716-446655440000",
+ "description": "string",
+ "id": 1,
+ "is_managed_externally": true,
+ "owners": [],
+ "params": "string",
+ "query_context": "string",
+ "slice_name": "string",
+ "tags": [],
+ "thumbnail_url": "string",
+ "url": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
+ "viz_type": "string"
+ }
}
}
},
- "description": "Chart delete"
+ "description": "Chart"
+ },
+ "302": {
+ "description": "Redirects to the current digest"
+ },
+ "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": [
@@ -15008,7 +15724,7 @@
"jwt": []
}
],
- "summary": "Delete a chart",
+ "summary": "Get a chart detail information",
"tags": [
"Charts"
],
@@ -15016,22 +15732,23 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/chart/{id_or_uuid}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/{id_or_uuid}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/{id_or_uuid}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
- },
- "get": {
- "description": "Get an item model",
+ }
+ },
+ "/api/v1/chart/{pk}": {
+ "delete": {
"parameters": [
{
"in": "path",
@@ -15040,17 +15757,6 @@
"schema": {
"type": "integer"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_item_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -15059,86 +15765,25 @@
"application/json": {
"schema": {
"properties": {
- "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"
- },
- "id": {
- "description": "The item id",
- "type": "string"
- },
- "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"
- },
- "result": {
- "$ref": "#/components/schemas/ChartRestApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
+ "message": {
"type": "string"
}
},
"type": "object"
},
"example": {
- "description_columns": {
- "column_name": "A Nice description for the column"
- },
- "id": "string",
- "label_columns": {
- "column_name": "A Nice label for the column"
- },
- "result": {
- "cache_timeout": 1,
- "certification_details": "string",
- "certified_by": "string",
- "changed_on_delta_humanized": {},
- "description": "string",
- "id": 1,
- "is_managed_externally": true,
- "params": "string",
- "query_context": "string",
- "slice_name": "string",
- "thumbnail_url": {},
- "url": {},
- "viz_type": "string"
- },
- "show_columns": [
- "string"
- ],
- "show_title": "Show Item Details"
+ "message": "string"
}
}
},
- "description": "Item from Model"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Chart delete"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -15154,7 +15799,7 @@
"jwt": []
}
],
- "summary": "Get a chart detail information",
+ "summary": "Delete a chart",
"tags": [
"Charts"
],
@@ -15162,17 +15807,17 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
@@ -15215,6 +15860,7 @@
"tags": [
1
],
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
"viz_type": [
"bar",
"area",
@@ -15259,6 +15905,7 @@
"query_context_generation": true,
"slice_name": "string",
"tags": [],
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
"viz_type": [
"bar",
"area",
@@ -16705,59 +17352,17 @@
"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"
+ "type": "integer"
},
"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": "integer"
},
"type": "array"
},
"result": {
- "description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list"
+ "type": "object"
},
"type": "array"
}
@@ -16765,22 +17370,9 @@
"type": "object"
},
"example": {
- "count": 1.0,
- "description_columns": {
- "column_name": "A Nice description for the column"
- },
+ "count": 1,
"ids": [
- "string"
- ],
- "label_columns": {
- "column_name": "A Nice label for the column"
- },
- "list_columns": [
- "string"
- ],
- "list_title": "List Items",
- "order_columns": [
- "string"
+ 1
],
"result": [
{}
@@ -16788,7 +17380,7 @@
}
}
},
- "description": "Items from Model"
+ "description": "Dashboards"
},
"400": {
"$ref": "#/components/responses/400"
@@ -16853,7 +17445,9 @@
"roles": [
1
],
- "slug": "string"
+ "slug": "string",
+ "theme_id": 1,
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
},
@@ -16889,7 +17483,9 @@
"position_json": "string",
"published": true,
"roles": [],
- "slug": "string"
+ "slug": "string",
+ "theme_id": 1,
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
@@ -17483,6 +18079,7 @@
"charts": [],
"created_on_delta_humanized": "string",
"css": "string",
+ "custom_tags": [],
"dashboard_title": "string",
"id": 1,
"is_managed_externally": true,
@@ -17493,8 +18090,10 @@
"roles": [],
"slug": "string",
"tags": [],
+ "theme": {},
"thumbnail_url": "string",
- "url": "string"
+ "url": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
@@ -18292,7 +18891,9 @@
"slug": "string",
"tags": [
1
- ]
+ ],
+ "theme_id": 1,
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
},
@@ -18333,7 +18934,9 @@
"published": true,
"roles": [],
"slug": "string",
- "tags": []
+ "tags": [],
+ "theme_id": 1,
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
@@ -18406,18 +19009,12 @@
"$ref": "#/components/schemas/DashboardScreenshotPostSchema"
},
"example": {
- "dataMask": {
- "key": "value"
- },
"activeTabs": [
"string"
],
"anchor": "string",
- "urlParams": [
- [
- "string"
- ]
- ]
+ "dataMask": {},
+ "urlParams": []
}
}
}
@@ -18481,6 +19078,95 @@
]
}
},
+ "/api/v1/dashboard/{pk}/chart_customizations": {
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardChartCustomizationsConfigUpdateSchema"
+ }
+ }
+ },
+ "description": "Chart customizations configuration",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": []
+ }
+ }
+ },
+ "description": "Dashboard chart customizations updated"
+ },
+ "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": "Update chart customizations configuration for a dashboard.",
+ "tags": [
+ "Dashboards"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/chart_customizations\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/chart_customizations\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/chart_customizations\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
"/api/v1/dashboard/{pk}/colors": {
"put": {
"parameters": [
@@ -18594,6 +19280,90 @@
]
}
},
+ "/api/v1/dashboard/{pk}/export_as_example/": {
+ "get": {
+ "description": "Exports a dashboard with its charts and datasets in the example format used by the Superset example loading system. The export includes Parquet data files and YAML configuration files.",
+ "parameters": [
+ {
+ "description": "The dashboard id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Whether to include Parquet data files",
+ "in": "query",
+ "name": "export_data",
+ "schema": {
+ "default": true,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Limit data export to this many rows per dataset",
+ "in": "query",
+ "name": "sample_rows",
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/zip": {
+ "schema": {
+ "format": "binary",
+ "type": "string"
+ }
+ }
+ },
+ "description": "Example bundle ZIP file"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Export dashboard as example bundle",
+ "tags": [
+ "Dashboards"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/export_as_example/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/export_as_example/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/export_as_example/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
"/api/v1/dashboard/{pk}/favorites/": {
"delete": {
"parameters": [
@@ -19422,6 +20192,7 @@
"string"
],
"anchor": "string",
+ "chartStates": {},
"dataMask": {},
"urlParams": [
{}
@@ -21652,81 +22423,6 @@
]
}
},
- "/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"
- },
- "example": {
- "message": "string"
- }
- }
- },
- "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"
- ],
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
- }
- ]
- }
- },
"/api/v1/database/{pk}/sync_permissions/": {
"post": {
"parameters": [
@@ -22696,7 +23392,9 @@
],
"schema": "string",
"sql": "string",
- "table_name": "string"
+ "table_name": "string",
+ "template_params": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
},
@@ -22730,7 +23428,9 @@
"owners": [],
"schema": "string",
"sql": "string",
- "table_name": "string"
+ "table_name": "string",
+ "template_params": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
@@ -23476,90 +24176,17 @@
]
}
},
- "/api/v1/dataset/{pk}": {
- "delete": {
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "message": "string"
- }
- }
- },
- "description": "Dataset delete"
- },
- "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 dataset",
- "tags": [
- "Datasets"
- ],
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
- }
- ]
- },
+ "/api/v1/dataset/{id_or_uuid}": {
"get": {
"description": "Get a dataset by ID",
"parameters": [
{
- "description": "The dataset ID",
+ "description": "Either the id of the dataset, or its uuid",
"in": "path",
- "name": "pk",
+ "name": "id_or_uuid",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
},
{
@@ -23602,13 +24229,14 @@
"id": "string",
"result": {
"always_filter_main_dttm": true,
- "cache_timeout": 1,
+ "cache_timeout": {},
"catalog": "string",
"changed_on": "2024-01-15T10:30:00Z",
"changed_on_humanized": {},
"column_formats": {},
"created_on": "2024-01-15T10:30:00Z",
"created_on_humanized": {},
+ "currency_code_column": "string",
"datasource_name": {},
"datasource_type": {},
"default_endpoint": "string",
@@ -23635,6 +24263,7 @@
"time_grain_sqla": {},
"uid": {},
"url": {},
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
"verbose_map": {}
}
}
@@ -23668,17 +24297,157 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/{id_or_uuid}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/{id_or_uuid}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/{id_or_uuid}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/dataset/{id_or_uuid}/related_objects": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id_or_uuid",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
+ },
+ "example": {
+ "charts": {},
+ "dashboards": {}
+ }
+ }
+ },
+ "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 dataset",
+ "tags": [
+ "Datasets"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/{id_or_uuid}/related_objects\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/{id_or_uuid}/related_objects\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/{id_or_uuid}/related_objects\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/dataset/{pk}": {
+ "delete": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "message": "string"
+ }
+ }
+ },
+ "description": "Dataset delete"
+ },
+ "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 dataset",
+ "tags": [
+ "Datasets"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
@@ -23713,6 +24482,7 @@
"columns": [
{}
],
+ "currency_code_column": "string",
"database_id": 1,
"default_endpoint": "string",
"description": "string",
@@ -23737,7 +24507,8 @@
"schema": "string",
"sql": "string",
"table_name": "string",
- "template_params": "string"
+ "template_params": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
},
@@ -23766,6 +24537,7 @@
"cache_timeout": 1,
"catalog": "string",
"columns": [],
+ "currency_code_column": "string",
"database_id": 1,
"default_endpoint": "string",
"description": "string",
@@ -23784,7 +24556,8 @@
"schema": "string",
"sql": "string",
"table_name": "string",
- "template_params": "string"
+ "template_params": "string",
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
}
@@ -23923,26 +24696,17 @@
]
}
},
- "/api/v1/dataset/{pk}/metric/{metric_id}": {
- "delete": {
+ "/api/v1/dataset/{pk}/drill_info/": {
+ "get": {
"parameters": [
{
- "description": "The dataset pk for this column",
+ "description": "The dataset ID",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
- },
- {
- "description": "The metric id for this dataset",
- "in": "path",
- "name": "metric_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
}
],
"responses": {
@@ -23951,18 +24715,18 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "type": "object"
}
},
"type": "object"
},
"example": {
- "message": "string"
+ "result": {}
}
}
},
- "description": "Metric deleted"
+ "description": "Dataset drill info"
},
"401": {
"$ref": "#/components/responses/401"
@@ -23985,7 +24749,7 @@
"jwt": []
}
],
- "summary": "Delete a dataset metric",
+ "summary": "Get dataset drill info",
"tags": [
"Datasets"
],
@@ -23993,31 +24757,41 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1/drill_info/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1/drill_info/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/drill_info/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/dataset/{pk}/refresh": {
- "put": {
+ "/api/v1/dataset/{pk}/metric/{metric_id}": {
+ "delete": {
"parameters": [
{
+ "description": "The dataset pk for this column",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
+ },
+ {
+ "description": "The metric id for this dataset",
+ "in": "path",
+ "name": "metric_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
@@ -24037,7 +24811,7 @@
}
}
},
- "description": "Dataset delete"
+ "description": "Metric deleted"
},
"401": {
"$ref": "#/components/responses/401"
@@ -24060,7 +24834,7 @@
"jwt": []
}
],
- "summary": "Refresh and update columns of a dataset",
+ "summary": "Delete a dataset metric",
"tags": [
"Datasets"
],
@@ -24068,23 +24842,23 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
}
},
- "/api/v1/dataset/{pk}/related_objects": {
- "get": {
+ "/api/v1/dataset/{pk}/refresh": {
+ "put": {
"parameters": [
{
"in": "path",
@@ -24100,22 +24874,32 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"example": {
- "charts": {},
- "dashboards": {}
+ "message": "string"
}
}
},
- "description": "Query result"
+ "description": "Dataset delete"
},
"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"
}
@@ -24125,7 +24909,7 @@
"jwt": []
}
],
- "summary": "Get charts and dashboards count associated to a dataset",
+ "summary": "Refresh and update columns of a dataset",
"tags": [
"Datasets"
],
@@ -24133,17 +24917,17 @@
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1/related_objects\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
@@ -24263,6 +25047,159 @@
]
}
},
+ "/api/v1/datasource/{datasource_type}/{datasource_id}/validate_expression/": {
+ "post": {
+ "parameters": [
+ {
+ "description": "The type of datasource",
+ "in": "path",
+ "name": "datasource_type",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the datasource",
+ "in": "path",
+ "name": "datasource_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "clause": {
+ "description": "SQL clause type for filter expressions",
+ "enum": [
+ "WHERE",
+ "HAVING"
+ ],
+ "type": "string"
+ },
+ "expression": {
+ "description": "The SQL expression to validate",
+ "type": "string"
+ },
+ "expression_type": {
+ "default": "where",
+ "description": "The type of SQL expression",
+ "enum": [
+ "column",
+ "metric",
+ "where",
+ "having"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "expression"
+ ],
+ "type": "object"
+ },
+ "example": {
+ "clause": "WHERE",
+ "expression": "string",
+ "expression_type": "column"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "description": "Empty array for success, errors for failure",
+ "items": {
+ "properties": {
+ "end_column": {
+ "type": "integer"
+ },
+ "line_number": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "start_column": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": [
+ {
+ "end_column": 1,
+ "line_number": 1,
+ "message": "string",
+ "start_column": 1
+ }
+ ]
+ }
+ }
+ },
+ "description": "Validation result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Validate a SQL expression against a datasource",
+ "tags": [
+ "Datasources"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/validate_expression/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/validate_expression/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/validate_expression/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
"/api/v1/embedded_dashboard/{uuid}": {
"get": {
"parameters": [
@@ -25377,7 +26314,7 @@
"json": "string",
"referrer": "string",
"slice_id": 1,
- "user_id": 1
+ "user_id": {}
},
"show_columns": [
"string"
@@ -25455,6 +26392,7 @@
"is_active": true,
"is_anonymous": true,
"last_name": "string",
+ "login_count": 1,
"username": "string"
}
}
@@ -25466,6 +26404,11 @@
"$ref": "#/components/responses/401"
}
},
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
"summary": "Get the user object",
"tags": [
"Current User"
@@ -25487,6 +26430,85 @@
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
+ },
+ "put": {
+ "description": "Updates the current user's first name, last name, or password.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CurrentUserPutSchema"
+ },
+ "example": {
+ "first_name": "string",
+ "last_name": "string",
+ "password": "string"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UserResponseSchema"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "email": "string",
+ "first_name": "string",
+ "id": 1,
+ "is_active": true,
+ "is_anonymous": true,
+ "last_name": "string",
+ "login_count": 1,
+ "username": "string"
+ }
+ }
+ }
+ },
+ "description": "User updated successfully"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Update the current user",
+ "tags": [
+ "Current User"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/me/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/me/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
}
},
"/api/v1/me/roles/": {
@@ -25512,6 +26534,7 @@
"is_active": true,
"is_anonymous": true,
"last_name": "string",
+ "login_count": 1,
"username": "string"
}
}
@@ -25523,6 +26546,11 @@
"$ref": "#/components/responses/401"
}
},
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
"summary": "Get the user roles",
"tags": [
"Current User"
@@ -28582,7 +29610,7 @@
},
"example": {
"catalog": "string",
- "db_id": 1,
+ "db_id": {},
"description": "string",
"extra_json": "string",
"label": "string",
@@ -28614,7 +29642,7 @@
"id": "string",
"result": {
"catalog": "string",
- "db_id": 1,
+ "db_id": {},
"description": "string",
"extra_json": "string",
"label": "string",
@@ -29339,7 +30367,7 @@
},
"example": {
"catalog": "string",
- "db_id": 1,
+ "db_id": {},
"description": "string",
"extra_json": "string",
"label": "string",
@@ -29367,7 +30395,7 @@
"example": {
"result": {
"catalog": "string",
- "db_id": 1,
+ "db_id": {},
"description": "string",
"extra_json": "string",
"label": "string",
@@ -29480,192 +30508,7 @@
]
}
},
- "/api/v1/security/guest_token/": {
- "post": {
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/GuestTokenCreate"
- },
- "example": {
- "resources": [
- {}
- ],
- "rls": [
- {}
- ],
- "user": {
- "first_name": "string",
- "last_name": "string",
- "username": "string"
- }
- }
- }
- },
- "description": "Parameters for the guest token",
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "token": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "token": "string"
- }
- }
- },
- "description": "Result contains the guest token"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "summary": "Get a guest token",
- "tags": [
- "Security"
- ],
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/guest_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
- }
- ]
- }
- },
- "/api/v1/security/login": {
- "post": {
- "description": "Authenticate and get a JWT access and refresh token",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "password": {
- "description": "The password for authentication",
- "example": "complex-password",
- "type": "string"
- },
- "provider": {
- "description": "Choose an authentication provider",
- "enum": [
- "db",
- "ldap"
- ],
- "example": "db",
- "type": "string"
- },
- "refresh": {
- "description": "If true a refresh token is provided also",
- "example": true,
- "type": "boolean"
- },
- "username": {
- "description": "The username for authentication",
- "example": "admin",
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "password": "complex-password",
- "provider": "db",
- "refresh": true,
- "username": "admin"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "access_token": {
- "type": "string"
- },
- "refresh_token": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "access_token": "string",
- "refresh_token": "string"
- }
- }
- },
- "description": "Authentication Successful"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "tags": [
- "Security"
- ],
- "operationId": "create_security_login",
- "summary": "Create security login",
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/login\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/login\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/login\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
- }
- ]
- }
- },
- "/api/v1/security/permissions-resources/": {
+ "/api/v1/security/groups/": {
"get": {
"description": "Get a list of models",
"parameters": [
@@ -29740,7 +30583,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.get_list"
+ "$ref": "#/components/schemas/GroupApi.get_list"
},
"type": "array"
}
@@ -29792,25 +30635,25 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "get_security_permissions_resources",
- "summary": "Get security permissions resources",
+ "operationId": "get_security_groups",
+ "summary": "Get security groups",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/groups/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/groups/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
@@ -29819,11 +30662,18 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.post"
+ "$ref": "#/components/schemas/GroupPostSchema"
},
"example": {
- "permission_id": 1,
- "view_menu_id": 1
+ "description": "string",
+ "label": "string",
+ "name": "string",
+ "roles": [
+ 1
+ ],
+ "users": [
+ 1
+ ]
}
}
},
@@ -29836,25 +30686,24 @@
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "string"
- },
"result": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.post"
+ "$ref": "#/components/schemas/GroupPostSchema"
}
},
"type": "object"
},
"example": {
- "id": "string",
"result": {
- "permission_id": 1,
- "view_menu_id": 1
+ "description": "string",
+ "label": "string",
+ "name": "string",
+ "roles": [],
+ "users": []
}
}
}
},
- "description": "Item inserted"
+ "description": "Group created"
},
"400": {
"$ref": "#/components/responses/400"
@@ -29875,30 +30724,30 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "create_security_permissions_resources",
- "summary": "Create security permissions resources",
+ "operationId": "create_security_groups",
+ "summary": "Create security groups",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/groups/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/groups/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/permissions-resources/_info": {
+ "/api/v1/security/groups/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
@@ -29992,30 +30841,30 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "get_security_permissions_resources__info",
- "summary": "Get security permissions resources info",
+ "operationId": "get_security_groups__info",
+ "summary": "Get security groups info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/groups/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/groups/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/permissions-resources/{pk}": {
+ "/api/v1/security/groups/{pk}": {
"delete": {
"parameters": [
{
@@ -30062,25 +30911,25 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "delete_security_permissions_resources_by_pk",
- "summary": "Delete security permissions resources by pk",
+ "operationId": "delete_security_groups_by_pk",
+ "summary": "Delete security groups by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/groups/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/groups/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
@@ -30138,7 +30987,7 @@
"type": "object"
},
"result": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.get"
+ "$ref": "#/components/schemas/GroupApi.get"
},
"show_columns": {
"description": "A list of columns",
@@ -30164,7 +31013,10 @@
"column_name": "A Nice label for the column"
},
"result": {
- "id": 1
+ "description": "string",
+ "id": 1,
+ "label": "string",
+ "name": "string"
},
"show_columns": [
"string"
@@ -30197,25 +31049,25 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "get_security_permissions_resources_by_pk",
- "summary": "Get security permissions resources by pk",
+ "operationId": "get_security_groups_by_pk",
+ "summary": "Get security groups by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/groups/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/groups/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
@@ -30234,11 +31086,18 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.put"
+ "$ref": "#/components/schemas/GroupPutSchema"
},
"example": {
- "permission_id": 1,
- "view_menu_id": 1
+ "description": "string",
+ "label": "string",
+ "name": "string",
+ "roles": [
+ 1
+ ],
+ "users": [
+ 1
+ ]
}
}
},
@@ -30252,20 +31111,23 @@
"schema": {
"properties": {
"result": {
- "$ref": "#/components/schemas/PermissionViewMenuApi.put"
+ "$ref": "#/components/schemas/GroupPutSchema"
}
},
"type": "object"
},
"example": {
"result": {
- "permission_id": 1,
- "view_menu_id": 1
+ "description": "string",
+ "label": "string",
+ "name": "string",
+ "roles": [],
+ "users": []
}
}
}
},
- "description": "Item changed"
+ "description": "Group updated"
},
"400": {
"$ref": "#/components/responses/400"
@@ -30289,30 +31151,215 @@
}
],
"tags": [
- "Security Permissions on Resources (View Menus)"
+ "Security Groups"
],
- "operationId": "update_security_permissions_resources_by_pk",
- "summary": "Update security permissions resources by pk",
+ "operationId": "update_security_groups_by_pk",
+ "summary": "Update security groups by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/groups/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/groups/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/groups/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/permissions/": {
+ "/api/v1/security/guest_token/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GuestTokenCreate"
+ },
+ "example": {
+ "resources": [
+ {}
+ ],
+ "rls": [
+ {}
+ ],
+ "user": {
+ "first_name": "string",
+ "last_name": "string",
+ "username": "string"
+ }
+ }
+ }
+ },
+ "description": "Parameters for the guest token",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "token": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "token": "string"
+ }
+ }
+ },
+ "description": "Result contains the guest token"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a guest token",
+ "tags": [
+ "Security"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/guest_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/login": {
+ "post": {
+ "description": "Authenticate and get a JWT access and refresh token",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "password": {
+ "description": "The password for authentication",
+ "example": "complex-password",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Choose an authentication provider",
+ "enum": [
+ "db",
+ "ldap"
+ ],
+ "example": "db",
+ "type": "string"
+ },
+ "refresh": {
+ "description": "If true a refresh token is provided also",
+ "example": true,
+ "type": "boolean"
+ },
+ "username": {
+ "description": "The username for authentication",
+ "example": "admin",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "password": "complex-password",
+ "provider": "db",
+ "refresh": true,
+ "username": "admin"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "access_token": {
+ "type": "string"
+ },
+ "refresh_token": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "access_token": "string",
+ "refresh_token": "string"
+ }
+ }
+ },
+ "description": "Authentication Successful"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "tags": [
+ "Security"
+ ],
+ "operationId": "create_security_login",
+ "summary": "Create security login",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/login\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/login\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/login\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/permissions-resources/": {
"get": {
"description": "Get a list of models",
"parameters": [
@@ -30387,7 +31434,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/PermissionApi.get_list"
+ "$ref": "#/components/schemas/PermissionViewMenuApi.get_list"
},
"type": "array"
}
@@ -30439,30 +31486,113 @@
}
],
"tags": [
- "Security Permissions"
+ "Security Permissions on Resources (View Menus)"
],
- "operationId": "get_security_permissions",
- "summary": "Get security permissions",
+ "operationId": "get_security_permissions_resources",
+ "summary": "Get security permissions resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PermissionViewMenuApi.post"
+ },
+ "example": {
+ "permission_id": {},
+ "view_menu_id": {}
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "result": {
+ "$ref": "#/components/schemas/PermissionViewMenuApi.post"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "id": "string",
+ "result": {
+ "permission_id": {},
+ "view_menu_id": {}
+ }
+ }
+ }
+ },
+ "description": "Item inserted"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "Security Permissions on Resources (View Menus)"
+ ],
+ "operationId": "create_security_permissions_resources",
+ "summary": "Create security permissions resources",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/permissions/_info": {
+ "/api/v1/security/permissions-resources/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
@@ -30556,30 +31686,98 @@
}
],
"tags": [
- "Security Permissions"
+ "Security Permissions on Resources (View Menus)"
],
- "operationId": "get_security_permissions__info",
- "summary": "Get security permissions info",
+ "operationId": "get_security_permissions_resources__info",
+ "summary": "Get security permissions resources info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/permissions/{pk}": {
+ "/api/v1/security/permissions-resources/{pk}": {
+ "delete": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "message": "string"
+ }
+ }
+ },
+ "description": "Item deleted"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "Security Permissions on Resources (View Menus)"
+ ],
+ "operationId": "delete_security_permissions_resources_by_pk",
+ "summary": "Delete security permissions resources by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ }
+ ]
+ },
"get": {
"description": "Get an item model",
"parameters": [
@@ -30634,7 +31832,7 @@
"type": "object"
},
"result": {
- "$ref": "#/components/schemas/PermissionApi.get"
+ "$ref": "#/components/schemas/PermissionViewMenuApi.get"
},
"show_columns": {
"description": "A list of columns",
@@ -30660,8 +31858,7 @@
"column_name": "A Nice label for the column"
},
"result": {
- "id": 1,
- "name": "string"
+ "id": 1
},
"show_columns": [
"string"
@@ -30694,89 +31891,122 @@
}
],
"tags": [
- "Security Permissions"
+ "Security Permissions on Resources (View Menus)"
],
- "operationId": "get_security_permissions_by_pk",
- "summary": "Get security permissions by pk",
+ "operationId": "get_security_permissions_resources_by_pk",
+ "summary": "Get security permissions resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
- }
- },
- "/api/v1/security/refresh": {
- "post": {
- "description": "Use the refresh token to get a new JWT access token",
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PermissionViewMenuApi.put"
+ },
+ "example": {
+ "permission_id": {},
+ "view_menu_id": {}
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "access_token": {
- "description": "A new refreshed access token",
- "type": "string"
+ "result": {
+ "$ref": "#/components/schemas/PermissionViewMenuApi.put"
}
},
"type": "object"
},
"example": {
- "access_token": "string"
+ "result": {
+ "permission_id": {},
+ "view_menu_id": {}
+ }
}
}
},
- "description": "Refresh Successful"
+ "description": "Item changed"
+ },
+ "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_refresh": []
+ "jwt": []
}
],
"tags": [
- "Security"
+ "Security Permissions on Resources (View Menus)"
],
- "operationId": "create_security_refresh",
- "summary": "Create security refresh",
+ "operationId": "update_security_permissions_resources_by_pk",
+ "summary": "Update security permissions resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/refresh\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/resources/": {
+ "/api/v1/security/permissions/": {
"get": {
"description": "Get a list of models",
"parameters": [
@@ -30851,7 +32081,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/ViewMenuApi.get_list"
+ "$ref": "#/components/schemas/PermissionApi.get_list"
},
"type": "array"
}
@@ -30903,111 +32133,30 @@
}
],
"tags": [
- "Security Resources (View Menus)"
- ],
- "operationId": "get_security_resources",
- "summary": "Get security resources",
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
- }
- ]
- },
- "post": {
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ViewMenuApi.post"
- },
- "example": {
- "name": "string"
- }
- }
- },
- "description": "Model schema",
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "id": {
- "type": "string"
- },
- "result": {
- "$ref": "#/components/schemas/ViewMenuApi.post"
- }
- },
- "type": "object"
- },
- "example": {
- "id": "string",
- "result": {
- "name": "string"
- }
- }
- }
- },
- "description": "Item inserted"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": [
- "Security Resources (View Menus)"
+ "Security Permissions"
],
- "operationId": "create_security_resources",
- "summary": "Create security resources",
+ "operationId": "get_security_permissions",
+ "summary": "Get security permissions",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/resources/_info": {
+ "/api/v1/security/permissions/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
@@ -31101,98 +32250,30 @@
}
],
"tags": [
- "Security Resources (View Menus)"
+ "Security Permissions"
],
- "operationId": "get_security_resources__info",
- "summary": "Get security resources info",
+ "operationId": "get_security_permissions__info",
+ "summary": "Get security permissions info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/resources/{pk}": {
- "delete": {
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "message": "string"
- }
- }
- },
- "description": "Item deleted"
- },
- "404": {
- "$ref": "#/components/responses/404"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": [
- "Security Resources (View Menus)"
- ],
- "operationId": "delete_security_resources_by_pk",
- "summary": "Delete security resources by pk",
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
- }
- ]
- },
+ "/api/v1/security/permissions/{pk}": {
"get": {
"description": "Get an item model",
"parameters": [
@@ -31247,7 +32328,7 @@
"type": "object"
},
"result": {
- "$ref": "#/components/schemas/ViewMenuApi.get"
+ "$ref": "#/components/schemas/PermissionApi.get"
},
"show_columns": {
"description": "A list of columns",
@@ -31307,120 +32388,89 @@
}
],
"tags": [
- "Security Resources (View Menus)"
+ "Security Permissions"
],
- "operationId": "get_security_resources_by_pk",
- "summary": "Get security resources by pk",
+ "operationId": "get_security_permissions_by_pk",
+ "summary": "Get security permissions by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
- },
- "put": {
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ViewMenuApi.put"
- },
- "example": {
- "name": "string"
- }
- }
- },
- "description": "Model schema",
- "required": true
- },
+ }
+ },
+ "/api/v1/security/refresh": {
+ "post": {
+ "description": "Use the refresh token to get a new JWT access token",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "result": {
- "$ref": "#/components/schemas/ViewMenuApi.put"
+ "access_token": {
+ "description": "A new refreshed access token",
+ "type": "string"
}
},
"type": "object"
},
"example": {
- "result": {
- "name": "string"
- }
+ "access_token": "string"
}
}
},
- "description": "Item changed"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Refresh Successful"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
- "jwt": []
+ "jwt_refresh": []
}
],
"tags": [
- "Security Resources (View Menus)"
+ "Security"
],
- "operationId": "update_security_resources_by_pk",
- "summary": "Update security resources by pk",
+ "operationId": "create_security_refresh",
+ "summary": "Create security refresh",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/refresh\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/": {
+ "/api/v1/security/resources/": {
"get": {
"description": "Get a list of models",
"parameters": [
@@ -31495,7 +32545,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/SupersetRoleApi.get_list"
+ "$ref": "#/components/schemas/ViewMenuApi.get_list"
},
"type": "array"
}
@@ -31547,25 +32597,25 @@
}
],
"tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
- "operationId": "get_security_roles",
- "summary": "Get security roles",
+ "operationId": "get_security_resources",
+ "summary": "Get security resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
@@ -31574,7 +32624,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SupersetRoleApi.post"
+ "$ref": "#/components/schemas/ViewMenuApi.post"
},
"example": {
"name": "string"
@@ -31594,7 +32644,7 @@
"type": "string"
},
"result": {
- "$ref": "#/components/schemas/SupersetRoleApi.post"
+ "$ref": "#/components/schemas/ViewMenuApi.post"
}
},
"type": "object"
@@ -31628,30 +32678,30 @@
}
],
"tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
- "operationId": "create_security_roles",
- "summary": "Create security roles",
+ "operationId": "create_security_resources",
+ "summary": "Create security resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/_info": {
+ "/api/v1/security/resources/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
@@ -31745,170 +32795,30 @@
}
],
"tags": [
- "Security Roles"
- ],
- "operationId": "get_security_roles__info",
- "summary": "Get security roles info",
- "x-codeSamples": [
- {
- "lang": "cURL",
- "label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
- },
- {
- "lang": "Python",
- "label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
- },
- {
- "lang": "JavaScript",
- "label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
- }
- ]
- }
- },
- "/api/v1/security/roles/search/": {
- "get": {
- "description": "Fetch a paginated list of roles with user and permission IDs.",
- "parameters": [
- {
- "in": "query",
- "name": "q",
- "schema": {
- "properties": {
- "filters": {
- "items": {
- "properties": {
- "col": {
- "enum": [
- "user_ids",
- "permission_ids",
- "name"
- ],
- "type": "string"
- },
- "value": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "order_column": {
- "default": "id",
- "enum": [
- "id",
- "name"
- ],
- "type": "string"
- },
- "order_direction": {
- "default": "asc",
- "enum": [
- "asc",
- "desc"
- ],
- "type": "string"
- },
- "page": {
- "default": 0,
- "type": "integer"
- },
- "page_size": {
- "default": 10,
- "type": "integer"
- }
- },
- "type": "object"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/RolesResponseSchema"
- },
- "example": {
- "count": 1,
- "ids": [
- 1
- ],
- "result": []
- }
- }
- },
- "description": "Successfully retrieved roles"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "error": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "error": "string"
- }
- }
- },
- "description": "Bad request (invalid input)"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "error": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "example": {
- "error": "string"
- }
- }
- },
- "description": "Forbidden"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "summary": "List roles",
- "tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
+ "operationId": "get_security_resources__info",
+ "summary": "Get security resources info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/search/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/{pk}": {
+ "/api/v1/security/resources/{pk}": {
"delete": {
"parameters": [
{
@@ -31955,25 +32865,25 @@
}
],
"tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
- "operationId": "delete_security_roles_by_pk",
- "summary": "Delete security roles by pk",
+ "operationId": "delete_security_resources_by_pk",
+ "summary": "Delete security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
@@ -32031,7 +32941,7 @@
"type": "object"
},
"result": {
- "$ref": "#/components/schemas/SupersetRoleApi.get"
+ "$ref": "#/components/schemas/ViewMenuApi.get"
},
"show_columns": {
"description": "A list of columns",
@@ -32091,25 +33001,25 @@
}
],
"tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
- "operationId": "get_security_roles_by_pk",
- "summary": "Get security roles by pk",
+ "operationId": "get_security_resources_by_pk",
+ "summary": "Get security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
@@ -32128,7 +33038,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SupersetRoleApi.put"
+ "$ref": "#/components/schemas/ViewMenuApi.put"
},
"example": {
"name": "string"
@@ -32145,7 +33055,7 @@
"schema": {
"properties": {
"result": {
- "$ref": "#/components/schemas/SupersetRoleApi.put"
+ "$ref": "#/components/schemas/ViewMenuApi.put"
}
},
"type": "object"
@@ -32181,77 +33091,217 @@
}
],
"tags": [
- "Security Roles"
+ "Security Resources (View Menus)"
],
- "operationId": "update_security_roles_by_pk",
- "summary": "Update security roles by pk",
+ "operationId": "update_security_resources_by_pk",
+ "summary": "Update security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/{role_id}/permissions": {
- "post": {
+ "/api/v1/security/roles/": {
+ "get": {
+ "description": "Get a list of models",
"parameters": [
{
- "in": "path",
- "name": "role_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "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/SupersetRoleApi.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "count": 1.0,
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "ids": [
+ "string"
+ ],
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "list_columns": [
+ "string"
+ ],
+ "list_title": "List Items",
+ "order_columns": [
+ "string"
+ ],
+ "result": [
+ {}
+ ]
+ }
+ }
+ },
+ "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": []
}
],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "get_security_roles",
+ "summary": "Get security roles",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RolePermissionPostSchema"
+ "$ref": "#/components/schemas/SupersetRoleApi.post"
},
"example": {
- "permission_view_menu_ids": [
- 1
- ]
+ "name": "string"
}
}
},
- "description": "Add role permissions schema",
+ "description": "Model schema",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
+ "id": {
+ "type": "string"
+ },
"result": {
- "$ref": "#/components/schemas/RolePermissionPostSchema"
+ "$ref": "#/components/schemas/SupersetRoleApi.post"
}
},
"type": "object"
},
"example": {
+ "id": "string",
"result": {
- "permission_view_menu_ids": []
+ "name": "string"
}
}
}
},
- "description": "Permissions added"
+ "description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
@@ -32259,8 +33309,122 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "create_security_roles",
+ "summary": "Create security roles",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/_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"
+ },
+ "example": {
+ "add_columns": {},
+ "edit_columns": {},
+ "filters": {
+ "column_name": [
+ {}
+ ]
+ },
+ "permissions": [
+ "string"
+ ]
+ }
+ }
+ },
+ "description": "Item from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
@@ -32277,33 +33441,173 @@
"tags": [
"Security Roles"
],
- "operationId": "create_security_roles_by_role_id_permissions",
- "summary": "Create security roles by role_id permissions",
+ "operationId": "get_security_roles__info",
+ "summary": "Get security roles info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/{role_id}/permissions/": {
+ "/api/v1/security/roles/search/": {
"get": {
+ "description": "Fetch a paginated list of roles with user and permission IDs.",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "q",
+ "schema": {
+ "properties": {
+ "filters": {
+ "items": {
+ "properties": {
+ "col": {
+ "enum": [
+ "user_ids",
+ "permission_ids",
+ "name"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "order_column": {
+ "default": "id",
+ "enum": [
+ "id",
+ "name"
+ ],
+ "type": "string"
+ },
+ "order_direction": {
+ "default": "asc",
+ "enum": [
+ "asc",
+ "desc"
+ ],
+ "type": "string"
+ },
+ "page": {
+ "default": 0,
+ "type": "integer"
+ },
+ "page_size": {
+ "default": 10,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RolesResponseSchema"
+ },
+ "example": {
+ "count": 1,
+ "ids": [
+ 1
+ ],
+ "result": []
+ }
+ }
+ },
+ "description": "Successfully retrieved roles"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "error": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "error": "string"
+ }
+ }
+ },
+ "description": "Bad request (invalid input)"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "error": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "error": "string"
+ }
+ }
+ },
+ "description": "Forbidden"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "List roles",
+ "tags": [
+ "Security Roles"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/search/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/{pk}": {
+ "delete": {
"parameters": [
{
"in": "path",
- "name": "role_id",
+ "name": "pk",
"required": true,
"schema": {
"type": "integer"
@@ -32316,22 +33620,2842 @@
"application/json": {
"schema": {
"properties": {
- "result": {
- "$ref": "#/components/schemas/RolePermissionListSchema"
+ "message": {
+ "type": "string"
}
},
"type": "object"
},
"example": {
- "result": {
- "id": 1,
- "permission_name": "string",
- "view_menu_name": "string"
- }
+ "message": "string"
+ }
+ }
+ },
+ "description": "Item deleted"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "delete_security_roles_by_pk",
+ "summary": "Delete security roles by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ }
+ ]
+ },
+ "get": {
+ "description": "Get an item model",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "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"
+ },
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "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"
+ },
+ "result": {
+ "$ref": "#/components/schemas/SupersetRoleApi.get"
+ },
+ "show_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "show_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "Show Item Details",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "id": "string",
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "result": {
+ "id": 1,
+ "name": "string"
+ },
+ "show_columns": [
+ "string"
+ ],
+ "show_title": "Show Item Details"
+ }
+ }
+ },
+ "description": "Item from Model"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "get_security_roles_by_pk",
+ "summary": "Get security roles by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SupersetRoleApi.put"
+ },
+ "example": {
+ "name": "string"
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/SupersetRoleApi.put"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "name": "string"
+ }
+ }
+ }
+ },
+ "description": "Item changed"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "update_security_roles_by_pk",
+ "summary": "Update security roles by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/{role_id}/groups": {
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "role_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RoleGroupPutSchema"
+ },
+ "example": {
+ "group_ids": [
+ 1
+ ]
+ }
+ }
+ },
+ "description": "Update role groups schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/RoleGroupPutSchema"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "group_ids": []
+ }
+ }
+ }
+ },
+ "description": "Role groups updated"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "update_security_roles_by_role_id_groups",
+ "summary": "Update security roles by role_id groups",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/{role_id}/groups\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/groups\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/groups\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/{role_id}/permissions": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "role_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RolePermissionPostSchema"
+ },
+ "example": {
+ "permission_view_menu_ids": [
+ 1
+ ]
+ }
+ }
+ },
+ "description": "Add role permissions schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/RolePermissionPostSchema"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "permission_view_menu_ids": []
+ }
+ }
+ }
+ },
+ "description": "Permissions added"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "create_security_roles_by_role_id_permissions",
+ "summary": "Create security roles by role_id permissions",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/{role_id}/permissions/": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "role_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/RolePermissionListSchema"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": [
+ {}
+ ]
+ }
+ }
+ },
+ "description": "List of permissions"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "get_security_roles_by_role_id_permissions",
+ "summary": "Get security roles by role_id permissions",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/roles/{role_id}/users": {
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "role_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RoleUserPutSchema"
+ },
+ "example": {
+ "user_ids": [
+ 1
+ ]
+ }
+ }
+ },
+ "description": "Update role users schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/RoleUserPutSchema"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "user_ids": []
+ }
+ }
+ }
+ },
+ "description": "Role users updated"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Roles"
+ ],
+ "operationId": "update_security_roles_by_role_id_users",
+ "summary": "Update security roles by role_id users",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/{role_id}/users\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/user_registrations/": {
+ "get": {
+ "description": "Get a list of models",
+ "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/UserRegistrationsRestAPI.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "count": 1.0,
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "ids": [
+ "string"
+ ],
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "list_columns": [
+ "string"
+ ],
+ "list_title": "List Items",
+ "order_columns": [
+ "string"
+ ],
+ "result": [
+ {}
+ ]
+ }
+ }
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "get_security_user_registrations",
+ "summary": "Get security user registrations",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/user_registrations/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/user_registrations/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserRegistrationsRestAPI.post"
+ },
+ "example": {
+ "id": 1
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "result": {
+ "$ref": "#/components/schemas/UserRegistrationsRestAPI.post"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "id": "string",
+ "result": {
+ "id": 1
+ }
+ }
+ }
+ },
+ "description": "Item inserted"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "create_security_user_registrations",
+ "summary": "Create security user registrations",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/user_registrations/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/user_registrations/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/user_registrations/_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"
+ },
+ "example": {
+ "add_columns": {},
+ "edit_columns": {},
+ "filters": {
+ "column_name": [
+ {}
+ ]
+ },
+ "permissions": [
+ "string"
+ ]
+ }
+ }
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "get_security_user_registrations__info",
+ "summary": "Get security user registrations info",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/user_registrations/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/user_registrations/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/user_registrations/distinct/{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/DistincResponseSchema"
+ },
+ "example": {
+ "count": 1,
+ "result": []
+ }
+ }
+ },
+ "description": "Distinct field 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 distinct values from field data (security-user-registrations-distinct-column-name)",
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/user_registrations/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/user_registrations/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/user_registrations/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"
+ },
+ "example": {
+ "count": 1,
+ "result": []
+ }
+ }
+ },
+ "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 (security-user-registrations-related-column-name)",
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/user_registrations/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/user_registrations/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/user_registrations/{pk}": {
+ "delete": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "message": "string"
+ }
+ }
+ },
+ "description": "Item deleted"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "delete_security_user_registrations_by_pk",
+ "summary": "Delete security user registrations by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/user_registrations/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ }
+ ]
+ },
+ "get": {
+ "description": "Get an item model",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "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"
+ },
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "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"
+ },
+ "result": {
+ "$ref": "#/components/schemas/UserRegistrationsRestAPI.get"
+ },
+ "show_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "show_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "Show Item Details",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "id": "string",
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "result": {
+ "id": 1
+ },
+ "show_columns": [
+ "string"
+ ],
+ "show_title": "Show Item Details"
+ }
+ }
+ },
+ "description": "Item from Model"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "get_security_user_registrations_by_pk",
+ "summary": "Get security user registrations by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/user_registrations/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserRegistrationsRestAPI.put"
+ },
+ "example": {
+ "id": 1
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UserRegistrationsRestAPI.put"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "id": 1
+ }
+ }
+ }
+ },
+ "description": "Item changed"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "UserRegistrationsRestAPI"
+ ],
+ "operationId": "update_security_user_registrations_by_pk",
+ "summary": "Update security user registrations by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/user_registrations/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/user_registrations/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/users/": {
+ "get": {
+ "description": "Get a list of models",
+ "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/SupersetUserApi.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "count": 1.0,
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "ids": [
+ "string"
+ ],
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "list_columns": [
+ "string"
+ ],
+ "list_title": "List Items",
+ "order_columns": [
+ "string"
+ ],
+ "result": [
+ {}
+ ]
+ }
+ }
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "get_security_users",
+ "summary": "Get security users",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SupersetUserApi.post"
+ },
+ "example": {
+ "active": true,
+ "email": "string",
+ "first_name": "string",
+ "groups": [
+ 1
+ ],
+ "last_name": "string",
+ "password": "string",
+ "roles": [
+ 1
+ ],
+ "username": "string"
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/SupersetUserApi.post"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "active": true,
+ "email": "string",
+ "first_name": "string",
+ "groups": [],
+ "last_name": "string",
+ "password": "string",
+ "roles": [],
+ "username": "string"
+ }
+ }
+ }
+ },
+ "description": "Item changed"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "create_security_users",
+ "summary": "Create security users",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/users/_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"
+ },
+ "example": {
+ "add_columns": {},
+ "edit_columns": {},
+ "filters": {
+ "column_name": [
+ {}
+ ]
+ },
+ "permissions": [
+ "string"
+ ]
+ }
+ }
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "get_security_users__info",
+ "summary": "Get security users info",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/security/users/{pk}": {
+ "delete": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "message": "string"
+ }
+ }
+ },
+ "description": "Item deleted"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "delete_security_users_by_pk",
+ "summary": "Delete security users by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ }
+ ]
+ },
+ "get": {
+ "description": "Get an item model",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "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"
+ },
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "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"
+ },
+ "result": {
+ "$ref": "#/components/schemas/SupersetUserApi.get"
+ },
+ "show_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "show_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "Show Item Details",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "description_columns": {
+ "column_name": "A Nice description for the column"
+ },
+ "id": "string",
+ "label_columns": {
+ "column_name": "A Nice label for the column"
+ },
+ "result": {
+ "active": true,
+ "changed_on": "2024-01-15T10:30:00Z",
+ "created_on": "2024-01-15T10:30:00Z",
+ "email": "string",
+ "fail_login_count": 1,
+ "first_name": "string",
+ "id": 1,
+ "last_login": "2024-01-15T10:30:00Z",
+ "last_name": "string",
+ "login_count": 1,
+ "username": "string"
+ },
+ "show_columns": [
+ "string"
+ ],
+ "show_title": "Show Item Details"
+ }
+ }
+ },
+ "description": "Item from Model"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "get_security_users_by_pk",
+ "summary": "Get security users by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SupersetUserApi.put"
+ },
+ "example": {
+ "active": true,
+ "email": "string",
+ "first_name": "string",
+ "groups": [
+ 1
+ ],
+ "last_name": "string",
+ "password": "string",
+ "roles": [
+ 1
+ ],
+ "username": "string"
+ }
+ }
+ },
+ "description": "Model schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/SupersetUserApi.put"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {
+ "active": true,
+ "email": "string",
+ "first_name": "string",
+ "groups": [],
+ "last_name": "string",
+ "password": "string",
+ "roles": [],
+ "username": "string"
+ }
+ }
+ }
+ },
+ "description": "Item changed"
+ },
+ "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": []
+ }
+ ],
+ "tags": [
+ "Security Users"
+ ],
+ "operationId": "update_security_users_by_pk",
+ "summary": "Update security users by pk",
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X PUT \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/": {
+ "get": {
+ "description": "Assembles SQLLab bootstrap data (active_tab, databases, queries, tab_state_ids) in a single endpoint. The data can be assembled from the current user's id.",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SQLLabBootstrapSchema"
+ },
+ "example": {
+ "active_tab": {},
+ "databases": {
+ "key": "value"
+ },
+ "queries": {
+ "key": "value"
+ },
+ "tab_state_ids": [
+ "string"
+ ]
+ }
+ }
+ },
+ "description": "Returns the initial bootstrap data for SqlLab"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get the bootstrap data for SqlLab page",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/estimate/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EstimateQueryCostSchema"
+ },
+ "example": {
+ "catalog": "string",
+ "database_id": 1,
+ "schema": "string",
+ "sql": "string",
+ "template_params": {}
+ }
+ }
+ },
+ "description": "SQL query and params",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": {}
+ }
+ }
+ },
+ "description": "Query estimation result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Estimate the SQL query execution cost",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/estimate/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/execute/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ExecutePayloadSchema"
+ },
+ "example": {
+ "catalog": "string",
+ "client_id": "string",
+ "ctas_method": "string",
+ "database_id": 1,
+ "expand_data": true,
+ "queryLimit": 1,
+ "runAsync": true,
+ "schema": "string",
+ "select_as_cta": true,
+ "sql": "string",
+ "sql_editor_id": "string",
+ "tab": "string",
+ "templateParams": "string",
+ "tmp_table_name": "string"
+ }
+ }
+ },
+ "description": "SQL query and params",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueryExecutionResponseSchema"
+ },
+ "example": {
+ "columns": [
+ {}
+ ],
+ "data": [
+ {}
+ ],
+ "expanded_columns": [
+ {}
+ ],
+ "query": {},
+ "query_id": 1,
+ "selected_columns": [
+ {}
+ ],
+ "status": "string"
+ }
+ }
+ },
+ "description": "Query execution result"
+ },
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueryExecutionResponseSchema"
+ },
+ "example": {
+ "columns": [
+ {}
+ ],
+ "data": [
+ {}
+ ],
+ "expanded_columns": [
+ {}
+ ],
+ "query": {},
+ "query_id": 1,
+ "selected_columns": [
+ {}
+ ],
+ "status": "string"
+ }
+ }
+ },
+ "description": "Query execution result, query still running"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Execute a SQL query",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/execute/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/export/{client_id}/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The SQL query result identifier",
+ "in": "path",
+ "name": "client_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/csv": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "SQL query results"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Export the SQL query results to a CSV",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/export_streaming/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/x-www-form-urlencoded": {
+ "schema": {
+ "properties": {
+ "client_id": {
+ "description": "The SQL query result identifier",
+ "type": "string"
+ },
+ "expected_rows": {
+ "description": "Optional expected row count for progress tracking",
+ "type": "integer"
+ },
+ "filename": {
+ "description": "Optional filename for the export",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Export parameters",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "text/csv": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Streaming CSV export"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Export SQL query results to CSV with streaming",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/export_streaming/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/export_streaming/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/export_streaming/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/format_sql/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FormatQueryPayloadSchema"
+ },
+ "example": {
+ "database_id": 1,
+ "engine": "string",
+ "sql": "string",
+ "template_params": "string"
+ }
+ }
+ },
+ "description": "SQL query",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "result": "string"
+ }
+ }
+ },
+ "description": "Format SQL result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Format SQL code",
+ "tags": [
+ "SQL Lab"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/format_sql/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/permalink": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ExplorePermalinkStateSchema"
+ },
+ "example": {
+ "formData": {},
+ "urlParams": [
+ {}
+ ]
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "key": {
+ "description": "The key to retrieve the permanent link data.",
+ "type": "string"
+ },
+ "url": {
+ "description": "permanent link.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "key": "string",
+ "url": "string"
+ }
+ }
+ },
+ "description": "The permanent link was stored successfully."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Create a new permanent link (sqllab-permalink)",
+ "tags": [
+ "SQL Lab Permanent Link"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/permalink/{key}": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "state": {
+ "description": "The stored state",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "example": {
+ "state": {}
+ }
+ }
+ },
+ "description": "Returns the stored form_data."
+ },
+ "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 permanent link state for SQLLab editor.",
+ "tags": [
+ "SQL Lab Permanent Link"
+ ],
+ "x-codeSamples": [
+ {
+ "lang": "cURL",
+ "label": "cURL",
+ "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ },
+ {
+ "lang": "Python",
+ "label": "Python",
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ },
+ {
+ "lang": "JavaScript",
+ "label": "JavaScript",
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ }
+ ]
+ }
+ },
+ "/api/v1/sqllab/results/": {
+ "get": {
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/sql_lab_get_results_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueryExecutionResponseSchema"
+ },
+ "example": {
+ "columns": [
+ {}
+ ],
+ "data": [
+ {}
+ ],
+ "expanded_columns": [
+ {}
+ ],
+ "query": {},
+ "query_id": 1,
+ "selected_columns": [
+ {}
+ ],
+ "status": "string"
}
}
},
- "description": "List of permissions"
+ "description": "SQL query execution result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -32339,11 +36463,14 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "410": {
+ "$ref": "#/components/responses/410"
},
"500": {
"$ref": "#/components/responses/500"
@@ -32354,85 +36481,70 @@
"jwt": []
}
],
+ "summary": "Get the result of a SQL query execution",
"tags": [
- "Security Roles"
+ "SQL Lab"
],
- "operationId": "get_security_roles_by_role_id_permissions",
- "summary": "Get security roles by role_id permissions",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/results/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/roles/{role_id}/users": {
- "put": {
+ "/api/v1/tag/": {
+ "delete": {
+ "description": "Bulk deletes tags. This will remove all tagged objects with this tag.",
"parameters": [
{
- "in": "path",
- "name": "role_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/delete_tags_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/RoleUserPutSchema"
- },
- "example": {
- "user_ids": [
- 1
- ]
- }
- }
- },
- "description": "Update role users schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "result": {
- "$ref": "#/components/schemas/RoleUserPutSchema"
+ "message": {
+ "type": "string"
}
},
"type": "object"
},
"example": {
- "result": {
- "user_ids": []
- }
+ "message": "string"
}
}
},
- "description": "Role users updated"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Deletes multiple Tags"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -32448,33 +36560,30 @@
"jwt": []
}
],
+ "summary": "Bulk delete tags",
"tags": [
- "Security Roles"
+ "Tags"
],
- "operationId": "update_security_roles_by_role_id_users",
- "summary": "Update security roles by role_id users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/{role_id}/users\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
- }
- },
- "/api/v1/security/users/": {
+ },
"get": {
- "description": "Get a list of models",
+ "description": "Get a list of tags, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -32547,7 +36656,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/SupersetUserApi.get_list"
+ "$ref": "#/components/schemas/TagRestApi.get_list"
},
"type": "array"
}
@@ -32598,50 +36707,44 @@
"jwt": []
}
],
+ "summary": "Get a list of tags",
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "get_security_users",
- "summary": "Get security users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
+ "description": "Create a new Tag",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SupersetUserApi.post"
+ "$ref": "#/components/schemas/TagRestApi.post"
},
"example": {
- "active": true,
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "password": "string",
- "roles": [
- 1
- ],
- "username": "string"
+ "description": "string",
+ "name": "string",
+ "objects_to_tag": []
}
}
},
- "description": "Model schema",
+ "description": "Tag schema",
"required": true
},
"responses": {
@@ -32650,26 +36753,26 @@
"application/json": {
"schema": {
"properties": {
+ "id": {
+ "type": "number"
+ },
"result": {
- "$ref": "#/components/schemas/SupersetUserApi.post"
+ "$ref": "#/components/schemas/TagRestApi.post"
}
},
"type": "object"
},
"example": {
+ "id": 1.0,
"result": {
- "active": true,
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "password": "string",
- "roles": [],
- "username": "string"
+ "description": "string",
+ "name": "string",
+ "objects_to_tag": []
}
}
}
},
- "description": "Item changed"
+ "description": "Tag added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -32677,9 +36780,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -32692,31 +36792,30 @@
"jwt": []
}
],
+ "summary": "Create a tag",
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "create_security_users",
- "summary": "Create security users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X POST \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X POST \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/users/_info": {
+ "/api/v1/tag/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
@@ -32809,67 +36908,73 @@
"jwt": []
}
],
+ "summary": "Get metadata information about tag API endpoints",
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "get_security_users__info",
- "summary": "Get security users info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/tag/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/security/users/{pk}": {
- "delete": {
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
+ "/api/v1/tag/bulk_create": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagPostBulkSchema"
+ },
+ "example": {
+ "tags": [
+ {}
+ ]
+ }
}
- }
- ],
+ },
+ "description": "Tag schema",
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/TagPostBulkResponseSchema"
},
"example": {
- "message": "string"
+ "result": {}
}
}
},
- "description": "Item deleted"
+ "description": "Bulk created tags and tagged objects"
+ },
+ "302": {
+ "description": "Redirects to the current digest"
+ },
+ "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"
}
@@ -32879,45 +36984,38 @@
"jwt": []
}
],
+ "summary": "Bulk create tags and tagged objects",
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "delete_security_users_by_pk",
- "summary": "Delete security users by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X POST \"http://localhost:8088/api/v1/tag/bulk_create\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
+ "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
- },
+ }
+ },
+ "/api/v1/tag/favorite_status/": {
"get": {
- "description": "Get an item model",
+ "description": "Get favorited tags for current user",
"parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_item_schema"
+ "$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
@@ -32930,78 +37028,14 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "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"
- },
- "id": {
- "description": "The item id",
- "type": "string"
- },
- "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"
- },
- "result": {
- "$ref": "#/components/schemas/SupersetUserApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/GetFavStarIdsSchema"
},
"example": {
- "description_columns": {
- "column_name": "A Nice description for the column"
- },
- "id": "string",
- "label_columns": {
- "column_name": "A Nice label for the column"
- },
- "result": {
- "active": true,
- "changed_on": "2024-01-15T10:30:00Z",
- "created_on": "2024-01-15T10:30:00Z",
- "email": "string",
- "fail_login_count": 1,
- "first_name": "string",
- "id": 1,
- "last_login": "2024-01-15T10:30:00Z",
- "last_name": "string",
- "login_count": 1,
- "username": "string"
- },
- "show_columns": [
- "string"
- ],
- "show_title": "Show Item Details"
+ "result": []
}
}
},
- "description": "Item from Model"
+ "description": "None"
},
"400": {
"$ref": "#/components/responses/400"
@@ -33012,9 +37046,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -33025,61 +37056,41 @@
}
],
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "get_security_users_by_pk",
- "summary": "Get security users by pk",
+ "operationId": "get_tag_favorite_status",
+ "summary": "Get tag favorite status",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/tag/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
- },
- "put": {
+ }
+ },
+ "/api/v1/tag/get_objects/": {
+ "get": {
"parameters": [
{
"in": "path",
- "name": "pk",
+ "name": "tag_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/SupersetUserApi.put"
- },
- "example": {
- "active": true,
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "password": "string",
- "roles": [
- 1
- ],
- "username": "string"
- }
- }
- },
- "description": "Model schema",
- "required": true
- },
"responses": {
"200": {
"content": {
@@ -33087,25 +37098,25 @@
"schema": {
"properties": {
"result": {
- "$ref": "#/components/schemas/SupersetUserApi.put"
+ "items": {
+ "$ref": "#/components/schemas/TaggedObjectEntityResponseSchema"
+ },
+ "type": "array"
}
},
"type": "object"
},
"example": {
- "result": {
- "active": true,
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "password": "string",
- "roles": [],
- "username": "string"
- }
+ "result": [
+ {}
+ ]
}
}
},
- "description": "Item changed"
+ "description": "List of tagged objects associated with a Tag"
+ },
+ "302": {
+ "description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
@@ -33116,9 +37127,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -33128,55 +37136,66 @@
"jwt": []
}
],
+ "summary": "Get all objects associated with a tag",
"tags": [
- "Security Users"
+ "Tags"
],
- "operationId": "update_security_users_by_pk",
- "summary": "Update security users by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X PUT \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
+ "source": "curl -X GET \"http://localhost:8088/api/v1/tag/get_objects/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/sqllab/": {
+ "/api/v1/tag/related/{column_name}": {
"get": {
- "description": "Assembles SQLLab bootstrap data (active_tab, databases, queries, tab_state_ids) in a single endpoint. The data can be assembled from the current user's id.",
+ "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/SQLLabBootstrapSchema"
+ "$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
- "active_tab": {},
- "databases": {
- "key": "value"
- },
- "queries": {
- "key": "value"
- },
- "tab_state_ids": [
- "string"
- ]
+ "count": 1,
+ "result": []
}
}
},
- "description": "Returns the initial bootstrap data for SqlLab"
+ "description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
@@ -33184,8 +37203,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -33196,67 +37215,81 @@
"jwt": []
}
],
- "summary": "Get the bootstrap data for SqlLab page",
+ "summary": "Get related fields data (tag-related-column-name)",
"tags": [
- "SQL Lab"
+ "Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
- "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
+ "source": "curl -X GET \"http://localhost:8088/api/v1/tag/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
- "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
+ "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
- "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
+ "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
- "/api/v1/sqllab/estimate/": {
+ "/api/v1/tag/{object_type}/{object_id}/": {
"post": {
+ "description": "Adds tags to an object. Creates new tags if they do not already exist.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "object_type",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "path",
+ "name": "object_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/EstimateQueryCostSchema"
- },
- "example": {
- "catalog": "string",
- "database_id": 1,
- "schema": "string",
- "sql": "string",
- "template_params": {}
- }
- }
- },
- "description": "SQL query and params",
- "required": true
- },
... 1998 lines suppressed ...