diff --git a/src/components/DBOverview.vue b/src/components/DBOverview.vue index 97bfef4fd8bb1919d1e9b375616b62a4b49ed405..d1ad58b2c6ef4065a1d5150150681a2fb38cbed9 100644 --- a/src/components/DBOverview.vue +++ b/src/components/DBOverview.vue @@ -9,6 +9,7 @@ import SourceDBSelector from "@/components/helpers/SourceDBSelector.vue"; import MarkFK from "@/components/subcomponents/view/MarkFK.vue"; import * as d3 from "d3" import {useSelectionStore} from "@/services/selectionStore"; +import HelpButton from "@/components/helpers/HelpButton.vue"; const api = useAPI() @@ -108,6 +109,7 @@ const resizeSVG = () => { // Set the width and height of the SVG to match the container's dimensions d3.select(svgElement) + .attr('maxWidth', "100%") .attr('width', width) .attr('height', height) .attr('viewBox', `0 0 ${width} ${height}`) @@ -172,6 +174,9 @@ async function applyFilter(selection) { </v-col> <v-col> <v-btn :disabled="disabled" :loading="loading" @click="getMermaid(null)">Generate Diagram</v-btn> + <v-tooltip text="Clicking on the name of a table toggles its favorited status." v-slot:activator="{props}"> + <v-icon v-bind="props" class="mx-2">mdi-help-circle-outline</v-icon> + </v-tooltip> </v-col> <v-col> <v-dialog close-on-back max-width="30%" location="center center"> @@ -208,7 +213,7 @@ async function applyFilter(selection) { </template> <style scoped> -.v-container >>> .makeClickable { +.v-container:deep() .makeClickable { cursor: pointer; } </style> diff --git a/src/components/ExportView.vue b/src/components/ExportView.vue index 9851d84d54239d9da075784b089fb571ff740e65..1e22c8f9d8745f84e25f34a34e6aaf86c559f684 100644 --- a/src/components/ExportView.vue +++ b/src/components/ExportView.vue @@ -9,6 +9,7 @@ import {useSelectionStore} from "@/services/selectionStore"; import MappingsTable from "@/components/subcomponents/map/MappingsTable.vue"; import {useExportStore} from "@/services/exportStore"; import ReadinessPoller from "@/components/helpers/ReadinessPoller.vue"; +import HelpButton from "@/components/helpers/HelpButton.vue"; const selection = useSelectionStore() const mappings = useMappingStore() @@ -21,6 +22,7 @@ const api = useAPI() const loading = ref(false) const isPublish = ref(true) +const isStreaming = ref(true) const mappingsSelection = ref([]) const invisibleLinks = useTemplateRef("invisibleLinks") @@ -49,7 +51,7 @@ async function generate() { loading.value = true console.log(`Making ${isPublish.value ? '(published)' : '(inline)'} export request:\n`, exportRequest) if (isPublish.value) - await exports.publishExport(exportRequest) + await exports.publishExport(exportRequest, isStreaming.value) else await api.exportMitM(exportRequest).then(hackyStuff) loading.value = false @@ -73,28 +75,19 @@ async function pollExport(url: string) { <v-switch class="ml-6 pt-6" inline v-model="isPublish" :label="isPublish ? 'Save Export' : 'Download Directly'"> </v-switch> - <v-dialog close-on-content-click> - <template v-slot:default> - <v-card title="Info"> - <v-card-text class="ma-2"> - In "Save Export" mode, a download link is generated by the server that in theory allows anyone with the + <HelpButton text="In 'Save Export' mode, a download link is generated by the server that in theory allows anyone with the link to access the created export file. - In contrast, by selecting the "Download Directly" mode, the resulting export file is part of the response + In contrast, by selecting the 'Download Directly' mode, the resulting export file is part of the response and immediately downloaded without being written to disk on the backend server. In terms of security, no guarantees can be made in either case due to the insecure nature of unauthenticated access and lack of encryption. - The above considerations are irrelevant if you are running this application locally. "Save Export" mode is - recommended due to its improved integration with other MAED tooling. - </v-card-text> - </v-card> - </template> - <template v-slot:activator="{props}"> - <v-btn variant="text" class="mx-2" v-bind="props" icon="mdi-help-circle-outline"></v-btn> - </template> - </v-dialog> + The above considerations are irrelevant if you are running this application locally. 'Save Export' mode is + recommended due to its improved integration with other MAED tooling and better performance."></HelpButton> + <v-checkbox v-if="isPublish" class="mx-3 pt-6" inline v-model="isStreaming" label="stream queries?"> + </v-checkbox> <v-btn @click="generate" :loading="loading">Generate</v-btn> </div> diff --git a/src/components/MapView.vue b/src/components/MapView.vue index dc9a43672a0f613f3d1db9f6808e970d07b90743..f408ee93d23d003a49e1337c351b81d18f43996c 100644 --- a/src/components/MapView.vue +++ b/src/components/MapView.vue @@ -75,7 +75,7 @@ const isValid = computed(() => { return (!(concept.value in def.abstract_concepts) || !!kindCol.value) && (Object.keys(cr.identity).length == 0 || formvalidity.identityCols) && (Object.keys(cr.inline).length == 0 || formvalidity.inlineCols) - && (Object.keys(cr.to_one).length == 0 || formvalidity.fkRelationCols) + && (Object.keys(cr.foreign).length == 0 || formvalidity.fkRelationCols) }) function suggestTypeCol(columns?: ExtendedColumnListItem[]): ExtendedColumnListItem | null { @@ -114,7 +114,7 @@ function suggestFKColMaps(columns?: ExtendedColumnListItem[]): { } { if (!!recreatedMapping.value?.foreign_relations) return Object.fromEntries(Object.entries(recreatedMapping.value.foreign_relations).map(([fkRelName, fkRel]) => [fkRelName, colMapFromNames(columns, harmonizeToObj(fkRel.fk_columns))])) const mitmDef = selectedMitMDef.value - const toOne = currentConceptRelations.value?.to_one + const toOne = currentConceptRelations.value?.foreign if (!toOne || !mitmDef) return {} else return Object.fromEntries(Object.entries(toOne).map(([fkRelName, fkRelInfo]) => [fkRelName, suggestColMap(columns, Object.fromEntries(Object.entries(fkRelInfo.fk_relations).map(([nameToMap, targetCol]) => [nameToMap, mitmDef.concept_relations[fkRelInfo.target_concept].identity[targetCol]])))])) @@ -122,7 +122,7 @@ function suggestFKColMaps(columns?: ExtendedColumnListItem[]): { function suggestFKTables(): { [fkRelName: string]: TableIdentifier | null } { if (!!recreatedMapping.value?.foreign_relations) return Object.fromEntries(Object.entries(recreatedMapping.value.foreign_relations).map(([fkRelName, fkRel]) => [fkRelName, anyTIDtoTID(fkRel.referred_table)])) - const toOne = currentConceptRelations.value?.to_one + const toOne = currentConceptRelations.value?.foreign if (!toOne) return {} else return Object.fromEntries(Object.entries(toOne).map(([fkRelName, fkRelInfo]) => { const matchingTable = mappings.currentMappings.find(cme => cme.mapping.concept === fkRelInfo.target_concept)?.mapping.base_table @@ -303,7 +303,7 @@ const expanded = ref([0]) <RelationsColumnMapper class="ma-2 pa-2" title="Foreign Relations" :mitm-def="selectedMitMDef" :base-table="selectedTable" - :to-map="currentConceptRelations?.to_one" + :to-map="currentConceptRelations?.foreign" :column-list="columnList" v-model:foreign-relations="foreignRelationMappings" v-model:is-valid="formvalidity.fkRelationCols" diff --git a/src/components/helpers/HelpButton.vue b/src/components/helpers/HelpButton.vue new file mode 100644 index 0000000000000000000000000000000000000000..da63dedb884c3867c28f9c4e7da86370dd5d39e7 --- /dev/null +++ b/src/components/helpers/HelpButton.vue @@ -0,0 +1,24 @@ +<script setup lang="ts"> + +const props = defineProps({text: {type: String, required: true}, useBtn: {type: Boolean, required: false, default: true}}) + +</script> + +<template> + <v-dialog close-on-content-click> + <template v-slot:default> + <v-card title="Info"> + <v-card-text class="ma-2"> + {{ props.text }} + </v-card-text> + </v-card> + </template> + <template v-slot:activator="{props}"> + <v-btn variant="text" class="mx-2" v-bind="props" icon="mdi-help-circle-outline"></v-btn> + </template> + </v-dialog> +</template> + +<style scoped> + +</style> diff --git a/src/services/api-schema/openapi.d.ts b/src/services/api-schema/openapi.d.ts index c25cf842ed77a12846c47d5001de26913971a036..8323c1b7dc0b5e847cc681adf921794c443c1860 100644 --- a/src/services/api-schema/openapi.d.ts +++ b/src/services/api-schema/openapi.d.ts @@ -791,6 +791,12 @@ declare namespace Components { * OwnedRelations */ export interface OwnedRelations { + /** + * Foreign + */ + foreign: { + [name: string]: /* ForeignRelationInfo */ ForeignRelationInfo; + }; /** * Identity */ @@ -803,18 +809,6 @@ declare namespace Components { inline: { [name: string]: string; }; - /** - * To Many - */ - to_many: { - [name: string]: /* ForeignRelationInfo */ ForeignRelationInfo; - }; - /** - * To One - */ - to_one: { - [name: string]: /* ForeignRelationInfo */ ForeignRelationInfo; - }; } /** * PostProcessing @@ -1837,6 +1831,13 @@ declare namespace Paths { * Simple Session */ export type SimpleSession = string; + /** + * Use Streaming Export + */ + export type UseStreamingExport = boolean; + } + export interface QueryParameters { + use_streaming_export?: /* Use Streaming Export */ Parameters.UseStreamingExport; } export type RequestBody = /* ExportRequest */ Components.Schemas.ExportRequest; namespace Responses { @@ -2317,7 +2318,7 @@ export interface OperationMethods { * publish_mitm_export - Publish Mitm Export */ 'publish_mitm_export'( - parameters?: Parameters<Paths.PublishMitmExport.CookieParameters> | null, + parameters?: Parameters<Paths.PublishMitmExport.QueryParameters & Paths.PublishMitmExport.CookieParameters> | null, data?: Paths.PublishMitmExport.RequestBody, config?: AxiosRequestConfig ): OperationResponse<Paths.PublishMitmExport.Responses.$200> @@ -2695,7 +2696,7 @@ export interface PathsDictionary { * publish_mitm_export - Publish Mitm Export */ 'post'( - parameters?: Parameters<Paths.PublishMitmExport.CookieParameters> | null, + parameters?: Parameters<Paths.PublishMitmExport.QueryParameters & Paths.PublishMitmExport.CookieParameters> | null, data?: Paths.PublishMitmExport.RequestBody, config?: AxiosRequestConfig ): OperationResponse<Paths.PublishMitmExport.Responses.$200> @@ -2883,8 +2884,8 @@ export type FKCreationResponse = Components.Schemas.FKCreationResponse; export type ForeignKeyConstraintBase = Components.Schemas.ForeignKeyConstraintBase; export type ForeignKeyConstraintRequest = Components.Schemas.ForeignKeyConstraintRequest; export type ForeignRelationInfo = Components.Schemas.ForeignRelationInfo; -export type ForeignRelation-Input = Components.Schemas.ForeignRelationInput; -export type ForeignRelation-Output = Components.Schemas.ForeignRelationOutput; +export type ForeignRelation_Input = Components.Schemas.ForeignRelationInput; +export type ForeignRelation_Output = Components.Schemas.ForeignRelationOutput; export type GroupValidationResult = Components.Schemas.GroupValidationResult; export type HTTPValidationError = Components.Schemas.HTTPValidationError; export type IndividualValidationResult = Components.Schemas.IndividualValidationResult; diff --git a/src/services/api-schema/openapi.json b/src/services/api-schema/openapi.json index 2769bccfbc79d1a49c3e4afdd7e6bdbbac3baac9..d208a55a1549ee9851c9fb4ec01b20d01958b12f 100644 --- a/src/services/api-schema/openapi.json +++ b/src/services/api-schema/openapi.json @@ -1,5069 +1 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "MitMExtractorBackend", - "version": "0.1.0" - }, - "paths": { - "/admin/clear-sessions": { - "post": { - "tags": [ - "admin" - ], - "summary": "Clear Sessions", - "operationId": "clear_sessions", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/admin/active-sessions": { - "get": { - "tags": [ - "admin" - ], - "summary": "Get Active Sessions", - "operationId": "get_active_sessions", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": { - "type": "string", - "format": "date-time" - }, - "type": "object", - "title": "Response Get Active Sessions Admin Active Sessions Get" - } - } - } - } - } - } - }, - "/admin/clear-exports": { - "post": { - "tags": [ - "admin" - ], - "summary": "Clear Exports", - "operationId": "clear_exports", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/definitions/mitms": { - "get": { - "tags": [ - "definitions" - ], - "summary": "Get Mitms", - "operationId": "get_mitms", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/MITM" - }, - "type": "array", - "title": "Response Get Mitms Definitions Mitms Get" - } - } - } - } - } - } - }, - "/definitions/mitm-definition": { - "get": { - "tags": [ - "definitions" - ], - "summary": "Get Mitm Definition", - "operationId": "get_mitm_definition", - "parameters": [ - { - "name": "mitm", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/MITM" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MITMDefinition" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/definitions/mitm-data-types": { - "get": { - "tags": [ - "definitions" - ], - "summary": "Get Mitm Data Types", - "operationId": "get_mitm_data_types", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": { - "$ref": "#/components/schemas/MitMDataTypeInfos" - }, - "type": "object", - "title": "Response Get Mitm Data Types Definitions Mitm Data Types Get" - } - } - } - } - } - } - }, - "/session/start-session": { - "post": { - "tags": [ - "session" - ], - "summary": "Start Session", - "operationId": "start_session", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SessionIdResponse" - } - } - } - } - } - } - }, - "/session/get-session": { - "get": { - "tags": [ - "session" - ], - "summary": "Get Session", - "operationId": "get_session", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SessionIdResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/session/stop-session": { - "post": { - "tags": [ - "session" - ], - "summary": "Stop Session", - "operationId": "stop_session", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/session/upload-db": { - "post": { - "tags": [ - "session" - ], - "summary": "Upload Db", - "operationId": "upload_db", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_db_session_upload_db_post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/session/connect-db": { - "post": { - "tags": [ - "session" - ], - "summary": "Connect Db", - "operationId": "connect_db", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_connect_db_session_connect_db_post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/session/test-db-conn": { - "get": { - "tags": [ - "session" - ], - "summary": "Test Db Conn", - "operationId": "test_db_conn", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBConnTestResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/session/keep-alive": { - "get": { - "tags": [ - "session" - ], - "summary": "Keep Alive", - "operationId": "keep_alive", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/KeepAliveResponse" - } - } - } - } - } - } - }, - "/control/reflect-db": { - "post": { - "tags": [ - "control" - ], - "summary": "Reflect Db", - "operationId": "reflect_db", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/init-working-db": { - "post": { - "tags": [ - "control" - ], - "summary": "Init Working Db", - "operationId": "init_working_db", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/mark-foreign-key": { - "post": { - "tags": [ - "control" - ], - "summary": "Mark Foreign Key", - "operationId": "mark_foreign_key", - "parameters": [ - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ForeignKeyConstraintRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FKCreationResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/virtual-view": { - "put": { - "tags": [ - "control" - ], - "summary": "Create Virtual View", - "operationId": "create_virtual_view", - "parameters": [ - { - "name": "override_if_exists", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Override If Exists" - } - }, - { - "name": "verify_immediately", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Verify Immediately" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VirtualViewCreationRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VirtualViewResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "control" - ], - "summary": "Get Virtual View", - "operationId": "get_virtual_view", - "parameters": [ - { - "name": "view", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "View" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "virtual", - "title": "Schema" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VirtualViewResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "control" - ], - "summary": "Drop Virtual View", - "operationId": "drop_virtual_view", - "parameters": [ - { - "name": "view", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "View" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "virtual", - "title": "Schema" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/virtual-views": { - "get": { - "tags": [ - "control" - ], - "summary": "Get Virtual Views", - "operationId": "get_virtual_views", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VirtualViewResponse" - }, - "title": "Response Get Virtual Views Control Virtual Views Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/compiled-virtual-view": { - "get": { - "tags": [ - "control" - ], - "summary": "Get Compiled Virtual View", - "operationId": "get_compiled_virtual_view", - "parameters": [ - { - "name": "view", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "View" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "virtual", - "title": "Schema" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CompiledVirtualView" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/compiled-virtual-views": { - "get": { - "tags": [ - "control" - ], - "summary": "Get Compiled Virtual Views", - "operationId": "get_compiled_virtual_views", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CompiledVirtualView" - }, - "title": "Response Get Compiled Virtual Views Control Compiled Virtual Views Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/control/virtual-views-batch": { - "put": { - "tags": [ - "control" - ], - "summary": "Create Virtual Views Batch", - "operationId": "create_virtual_views_batch", - "parameters": [ - { - "name": "override_if_exists", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Override If Exists" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VirtualViewCreationRequest" - }, - "title": "Requests" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VirtualViewResponse" - }, - "title": "Response Create Virtual Views Batch Control Virtual Views Batch Put" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/data/raw-query": { - "post": { - "tags": [ - "data" - ], - "summary": "Raw Query", - "operationId": "raw_query", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_raw_query_data_raw_query_post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "array", - "items": {} - }, - "title": "Response Raw Query Data Raw Query Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/data/query-table": { - "get": { - "tags": [ - "data" - ], - "summary": "Query Table", - "operationId": "query_table", - "parameters": [ - { - "name": "table", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Table" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "main", - "title": "Schema" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Offset" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Limit" - } - }, - { - "name": "include_table_meta", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Include Table Meta" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableQueryResult" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/data/query-unique-values": { - "get": { - "tags": [ - "data" - ], - "summary": "Query Unique Values", - "operationId": "query_unique_values", - "parameters": [ - { - "name": "table", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Table" - } - }, - { - "name": "column", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Column" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "main", - "title": "Schema" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {}, - "title": "Response Query Unique Values Data Query Unique Values Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/data/er-diagram": { - "get": { - "tags": [ - "data" - ], - "summary": "Make Erd", - "operationId": "make_erd", - "parameters": [ - { - "name": "version", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ERVariant" - } - ], - "default": "mermaid", - "title": "Version" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/data/filtered-er-diagram": { - "post": { - "tags": [ - "data" - ], - "summary": "Make Filtered Erd", - "operationId": "make_filtered_erd", - "parameters": [ - { - "name": "version", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ERVariant" - } - ], - "default": "mermaid", - "title": "Version" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBSchemaSelectionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/table-schema": { - "get": { - "tags": [ - "reflection" - ], - "summary": "Get Table Schema", - "operationId": "get_table_schema", - "parameters": [ - { - "name": "table", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Table" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "main", - "title": "Schema" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableMetaInfoBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/db-schema": { - "get": { - "tags": [ - "reflection" - ], - "summary": "Get Db Schema", - "operationId": "get_db_schema", - "parameters": [ - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBMetaInfoBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/filter-db-schema": { - "post": { - "tags": [ - "reflection" - ], - "summary": "Filter Db Schema", - "operationId": "filter_db_schema", - "parameters": [ - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBSchemaSelectionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBMetaInfoBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/query-db-schema": { - "post": { - "tags": [ - "reflection" - ], - "summary": "Query Db Schema", - "operationId": "query_db_schema", - "parameters": [ - { - "name": "store_intermediate_table_probes", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Store Intermediate Table Probes" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBSchemaQueryRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBMetaInfoBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/suggest-joins": { - "get": { - "tags": [ - "reflection" - ], - "summary": "Suggest Joins", - "operationId": "suggest_joins", - "parameters": [ - { - "name": "table", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Table" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "main", - "title": "Schema" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "array", - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "minItems": 2, - "maxItems": 2 - }, - "title": "Response Suggest Joins Reflection Suggest Joins Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/probe-table": { - "post": { - "tags": [ - "reflection" - ], - "summary": "Probe Table", - "operationId": "probe_table", - "parameters": [ - { - "name": "table", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Table" - } - }, - { - "name": "schema", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "main", - "title": "Schema" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "sample_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 100, - "title": "Sample Size" - } - }, - { - "name": "override_if_exists", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Override If Exists" - } - }, - { - "name": "store_results", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Store Results" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableProbeBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/reflection/probe-db": { - "post": { - "tags": [ - "reflection" - ], - "summary": "Probe Db", - "operationId": "probe_db", - "parameters": [ - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original", - "title": "Source" - } - }, - { - "name": "sample_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 100, - "title": "Sample Size" - } - }, - { - "name": "override_if_exists", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Override If Exists" - } - }, - { - "name": "store_results", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Store Results" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string" - } - }, - "title": "Table Selection" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DBProbeBase" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/mitm/validate-concept-mappings": { - "post": { - "tags": [ - "mitm" - ], - "summary": "Validate Concept Mappings", - "operationId": "validate_concept_mappings", - "parameters": [ - { - "name": "include_request", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Include Request" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConceptMapping-Input" - }, - "title": "Concept Mappings" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MappingGroupValidationResult" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/mitm/export-mitm": { - "post": { - "tags": [ - "mitm" - ], - "summary": "Export Mitm", - "operationId": "export_mitm", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExportRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/mitm/publish-mitm-export": { - "post": { - "tags": [ - "mitm" - ], - "summary": "Publish Mitm Export", - "operationId": "publish_mitm_export", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExportRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PublishedMitMResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/mitm/delete-mitm-export": { - "post": { - "tags": [ - "mitm" - ], - "summary": "Delete Mitm Export", - "operationId": "delete_mitm_export", - "parameters": [ - { - "name": "export_id", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "title": "Export Id" - } - }, - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/mitm/delete-mitm-exports": { - "post": { - "tags": [ - "mitm" - ], - "summary": "Delete Mitm Exports", - "operationId": "delete_mitm_exports", - "parameters": [ - { - "name": "simple_session", - "in": "cookie", - "required": true, - "schema": { - "type": "string", - "title": "Simple Session" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/": { - "get": { - "summary": "Root", - "operationId": "root", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - } - }, - "components": { - "schemas": { - "AddColumn": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "add_column" - ], - "const": "add_column", - "title": "Operation", - "default": "add_column" - }, - "col_name": { - "type": "string", - "title": "Col Name" - }, - "value": { - "title": "Value" - }, - "target_type": { - "anyOf": [ - { - "$ref": "#/components/schemas/WrappedMITMDataType" - }, - { - "type": "string" - } - ], - "title": "Target Type" - } - }, - "type": "object", - "required": [ - "col_name", - "value", - "target_type" - ], - "title": "AddColumn" - }, - "Body_connect_db_session_connect_db_post": { - "properties": { - "db_url": { - "type": "string", - "minLength": 1, - "format": "uri", - "title": "Db Url" - } - }, - "type": "object", - "required": [ - "db_url" - ], - "title": "Body_connect_db_session_connect_db_post" - }, - "Body_raw_query_data_raw_query_post": { - "properties": { - "query": { - "type": "string", - "title": "Query" - } - }, - "type": "object", - "required": [ - "query" - ], - "title": "Body_raw_query_data_raw_query_post" - }, - "Body_upload_db_session_upload_db_post": { - "properties": { - "sqlite": { - "type": "string", - "format": "binary", - "title": "Sqlite", - "description": "Upload a sqlite db file here." - } - }, - "type": "object", - "required": [ - "sqlite" - ], - "title": "Body_upload_db_session_upload_db_post" - }, - "CastColumn": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "cast_column" - ], - "const": "cast_column", - "title": "Operation", - "default": "cast_column" - }, - "target_type": { - "anyOf": [ - { - "$ref": "#/components/schemas/WrappedMITMDataType" - }, - { - "type": "string" - } - ], - "title": "Target Type" - } - }, - "type": "object", - "required": [ - "target_type" - ], - "title": "CastColumn" - }, - "CategoricalSummaryStatistics": { - "properties": { - "count": { - "type": "integer", - "minimum": 0.0, - "title": "Count" - }, - "unique": { - "type": "integer", - "minimum": 0.0, - "title": "Unique" - }, - "top": { - "type": "string", - "title": "Top" - }, - "freq": { - "type": "integer", - "minimum": 0.0, - "title": "Freq" - } - }, - "type": "object", - "required": [ - "count", - "unique", - "top", - "freq" - ], - "title": "CategoricalSummaryStatistics" - }, - "ColumnProperties": { - "properties": { - "nullable": { - "type": "boolean", - "title": "Nullable" - }, - "unique": { - "type": "boolean", - "title": "Unique" - }, - "part_of_pk": { - "type": "boolean", - "title": "Part Of Pk" - }, - "part_of_fk": { - "type": "boolean", - "title": "Part Of Fk" - }, - "part_of_index": { - "type": "boolean", - "title": "Part Of Index" - }, - "mitm_data_type": { - "$ref": "#/components/schemas/MITMDataType" - } - }, - "type": "object", - "required": [ - "nullable", - "unique", - "part_of_pk", - "part_of_fk", - "part_of_index", - "mitm_data_type" - ], - "title": "ColumnProperties" - }, - "CompiledVirtualView": { - "properties": { - "dialect": { - "type": "string", - "title": "Dialect" - }, - "compiled_sql": { - "type": "string", - "title": "Compiled Sql" - }, - "columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Columns" - }, - "column_dtypes": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/WrappedMITMDataType" - }, - { - "type": "string" - } - ] - }, - "type": "array", - "title": "Column Dtypes" - }, - "name": { - "type": "string", - "title": "Name" - }, - "schema_name": { - "type": "string", - "title": "Schema Name" - } - }, - "type": "object", - "required": [ - "dialect", - "compiled_sql", - "columns", - "column_dtypes", - "name", - "schema_name" - ], - "title": "CompiledVirtualView" - }, - "ConceptKind": { - "type": "string", - "enum": [ - "concrete", - "abstract" - ], - "title": "ConceptKind" - }, - "ConceptLevel": { - "type": "string", - "enum": [ - "main", - "sub", - "weak" - ], - "title": "ConceptLevel" - }, - "ConceptMapping-Input": { - "properties": { - "mitm": { - "$ref": "#/components/schemas/MITM" - }, - "concept": { - "type": "string", - "title": "Concept" - }, - "base_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Base Table" - }, - "kind_col": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Kind Col" - }, - "type_col": { - "type": "string", - "title": "Type Col" - }, - "identity_columns": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Identity Columns" - }, - "inline_relations": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Inline Relations" - }, - "foreign_relations": { - "additionalProperties": { - "$ref": "#/components/schemas/ForeignRelation-Input" - }, - "type": "object", - "title": "Foreign Relations" - }, - "attributes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Attributes" - }, - "attribute_dtypes": { - "items": { - "$ref": "#/components/schemas/MITMDataType" - }, - "type": "array", - "title": "Attribute Dtypes" - } - }, - "type": "object", - "required": [ - "mitm", - "concept", - "base_table", - "type_col" - ], - "title": "ConceptMapping" - }, - "ConceptMapping-Output": { - "properties": { - "mitm": { - "$ref": "#/components/schemas/MITM" - }, - "concept": { - "type": "string", - "title": "Concept" - }, - "base_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Base Table" - }, - "kind_col": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Kind Col" - }, - "type_col": { - "type": "string", - "title": "Type Col" - }, - "identity_columns": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Identity Columns" - }, - "inline_relations": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Inline Relations" - }, - "foreign_relations": { - "additionalProperties": { - "$ref": "#/components/schemas/ForeignRelation-Output" - }, - "type": "object", - "title": "Foreign Relations" - }, - "attributes": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Attributes" - }, - "attribute_dtypes": { - "items": { - "$ref": "#/components/schemas/MITMDataType" - }, - "type": "array", - "title": "Attribute Dtypes" - } - }, - "type": "object", - "required": [ - "mitm", - "concept", - "base_table", - "type_col" - ], - "title": "ConceptMapping" - }, - "ConceptProperties": { - "properties": { - "nature": { - "prefixItems": [ - { - "$ref": "#/components/schemas/ConceptLevel" - }, - { - "$ref": "#/components/schemas/ConceptKind" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2, - "title": "Nature" - }, - "key": { - "type": "string", - "title": "Key" - }, - "plural": { - "type": "string", - "title": "Plural" - }, - "typing_concept": { - "type": "string", - "title": "Typing Concept", - "default": "type" - }, - "column_group_ordering": { - "items": { - "type": "string", - "enum": [ - "kind", - "type", - "identity-relations", - "inline-relations", - "foreign-relations", - "attributes" - ] - }, - "type": "array", - "title": "Column Group Ordering", - "default": [ - "kind", - "type", - "identity-relations", - "inline-relations", - "foreign-relations", - "attributes" - ] - }, - "permit_attributes": { - "type": "boolean", - "title": "Permit Attributes", - "default": true - } - }, - "type": "object", - "required": [ - "nature", - "key", - "plural" - ], - "title": "ConceptProperties" - }, - "DBConnTestResponse": { - "properties": { - "db_url": { - "type": "string", - "minLength": 1, - "format": "uri", - "title": "Db Url" - }, - "success": { - "type": "boolean", - "title": "Success" - }, - "error": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Error" - } - }, - "type": "object", - "required": [ - "db_url", - "success" - ], - "title": "DBConnTestResponse" - }, - "DBMetaInfoBase": { - "properties": { - "db_structure": { - "additionalProperties": { - "additionalProperties": { - "$ref": "#/components/schemas/TableMetaInfoBase" - }, - "type": "object" - }, - "type": "object", - "title": "Db Structure" - }, - "tables": { - "additionalProperties": { - "$ref": "#/components/schemas/TableMetaInfoBase" - }, - "type": "object", - "title": "Tables", - "readOnly": true - } - }, - "type": "object", - "required": [ - "db_structure", - "tables" - ], - "title": "DBMetaInfoBase" - }, - "DBMetaQuery": { - "properties": { - "syntactic_table_conditions": { - "items": { - "$ref": "#/components/schemas/SyntacticTableCondition" - }, - "type": "array", - "title": "Syntactic Table Conditions" - }, - "semantic_table_conditions": { - "items": { - "$ref": "#/components/schemas/SemanticTableCondition" - }, - "type": "array", - "title": "Semantic Table Conditions" - }, - "syntactic_column_conditions": { - "items": { - "$ref": "#/components/schemas/SyntacticColumnCondition" - }, - "type": "array", - "title": "Syntactic Column Conditions" - }, - "semantic_column_conditions": { - "items": { - "$ref": "#/components/schemas/SemanticColumnCondition" - }, - "type": "array", - "title": "Semantic Column Conditions" - } - }, - "type": "object", - "title": "DBMetaQuery" - }, - "DBProbeBase": { - "properties": { - "table_probes": { - "additionalProperties": { - "$ref": "#/components/schemas/TableProbeBase" - }, - "type": "object", - "title": "Table Probes" - }, - "db_meta": { - "$ref": "#/components/schemas/DBMetaInfoBase" - } - }, - "type": "object", - "required": [ - "db_meta" - ], - "title": "DBProbeBase" - }, - "DBSchemaQueryRequest": { - "properties": { - "query": { - "$ref": "#/components/schemas/DBMetaQuery" - }, - "filter_columns": { - "type": "boolean", - "title": "Filter Columns", - "default": false - } - }, - "type": "object", - "required": [ - "query" - ], - "title": "DBSchemaQueryRequest" - }, - "DBSchemaSelectionRequest": { - "properties": { - "selection": { - "anyOf": [ - { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "type": "object" - }, - { - "additionalProperties": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "type": "object" - }, - "type": "object" - } - ], - "title": "Selection" - }, - "filter_columns": { - "type": "boolean", - "title": "Filter Columns", - "default": false - } - }, - "type": "object", - "required": [ - "selection" - ], - "title": "DBSchemaSelectionRequest" - }, - "DatetimeSummaryStatistics": { - "properties": { - "count": { - "type": "integer", - "title": "Count" - }, - "mean": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Mean" - }, - "min": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Min" - }, - "max": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Max" - }, - "percentile_25": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Percentile 25" - }, - "percentile_50": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Percentile 50" - }, - "percentile_75": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Percentile 75" - } - }, - "type": "object", - "required": [ - "count" - ], - "title": "DatetimeSummaryStatistics" - }, - "ERVariant": { - "type": "string", - "enum": [ - "image", - "mermaid" - ], - "title": "ERVariant" - }, - "EditColumns": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "edit_columns" - ], - "const": "edit_columns", - "title": "Operation", - "default": "edit_columns" - }, - "transforms": { - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/components/schemas/CastColumn" - } - ], - "discriminator": { - "propertyName": "operation", - "mapping": { - "cast_column": "#/components/schemas/CastColumn" - } - } - }, - "type": "object", - "title": "Transforms" - }, - "renames": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "title": "Renames" - }, - "drops": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true, - "title": "Drops" - }, - "additions": { - "additionalProperties": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/AddColumn" - }, - { - "$ref": "#/components/schemas/ExtractJson" - } - ], - "discriminator": { - "propertyName": "operation", - "mapping": { - "add_column": "#/components/schemas/AddColumn", - "extract_json": "#/components/schemas/ExtractJson" - } - } - }, - "type": "array" - }, - "type": "object", - "title": "Additions" - } - }, - "type": "object", - "title": "EditColumns" - }, - "ExistingTable": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "existing" - ], - "const": "existing", - "title": "Operation", - "default": "existing" - }, - "base_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Base Table" - } - }, - "type": "object", - "required": [ - "base_table" - ], - "title": "ExistingTable" - }, - "ExportRequest": { - "properties": { - "mitm": { - "$ref": "#/components/schemas/MITM" - }, - "mapped_concepts": { - "items": { - "$ref": "#/components/schemas/ConceptMapping-Input" - }, - "type": "array", - "title": "Mapped Concepts" - }, - "post_processing": { - "anyOf": [ - { - "$ref": "#/components/schemas/PostProcessing" - }, - { - "type": "null" - } - ] - }, - "filename": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Filename" - } - }, - "type": "object", - "required": [ - "mitm", - "mapped_concepts" - ], - "title": "ExportRequest" - }, - "ExtractJson": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "extract_json" - ], - "const": "extract_json", - "title": "Operation", - "default": "extract_json" - }, - "json_col": { - "type": "string", - "title": "Json Col" - }, - "attributes": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "title": "Attributes" - } - }, - "type": "object", - "required": [ - "json_col", - "attributes" - ], - "title": "ExtractJson" - }, - "FKCreationResponse": { - "properties": { - "status": { - "type": "boolean", - "title": "Status" - }, - "error": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Error" - } - }, - "type": "object", - "required": [ - "status" - ], - "title": "FKCreationResponse" - }, - "ForeignKeyConstraintBase": { - "properties": { - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Name" - }, - "table": { - "anyOf": [ - { - "$ref": "#/components/schemas/LocalTableIdentifier" - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Table" - }, - "columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Columns" - }, - "target_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/LocalTableIdentifier" - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Target Table" - }, - "target_columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Target Columns" - } - }, - "type": "object", - "required": [ - "table", - "columns", - "target_table", - "target_columns" - ], - "title": "ForeignKeyConstraintBase" - }, - "ForeignKeyConstraintRequest": { - "properties": { - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Name" - }, - "table": { - "anyOf": [ - { - "$ref": "#/components/schemas/LocalTableIdentifier" - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Table" - }, - "columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Columns" - }, - "target_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/LocalTableIdentifier" - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Target Table" - }, - "target_columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Target Columns" - } - }, - "type": "object", - "required": [ - "table", - "columns", - "target_table", - "target_columns" - ], - "title": "ForeignKeyConstraintRequest" - }, - "ForeignRelation-Input": { - "properties": { - "fk_columns": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Fk Columns" - }, - "referred_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Referred Table" - } - }, - "type": "object", - "required": [ - "fk_columns", - "referred_table" - ], - "title": "ForeignRelation" - }, - "ForeignRelation-Output": { - "properties": { - "fk_columns": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "title": "Fk Columns" - }, - "referred_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Referred Table" - } - }, - "type": "object", - "required": [ - "fk_columns", - "referred_table" - ], - "title": "ForeignRelation" - }, - "ForeignRelationInfo": { - "properties": { - "target_concept": { - "type": "string", - "title": "Target Concept" - }, - "fk_relations": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "title": "Fk Relations" - } - }, - "type": "object", - "required": [ - "target_concept", - "fk_relations" - ], - "title": "ForeignRelationInfo" - }, - "GroupValidationResult": { - "properties": { - "individual_validations": { - "additionalProperties": { - "items": { - "prefixItems": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "$ref": "#/components/schemas/IndividualValidationResult" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - }, - "type": "array" - }, - "type": "object", - "title": "Individual Validations" - }, - "is_valid": { - "type": "boolean", - "title": "Is Valid", - "readOnly": true - } - }, - "type": "object", - "required": [ - "is_valid" - ], - "title": "GroupValidationResult" - }, - "HTTPValidationError": { - "properties": { - "detail": { - "items": { - "$ref": "#/components/schemas/ValidationError" - }, - "type": "array", - "title": "Detail" - } - }, - "type": "object", - "title": "HTTPValidationError" - }, - "IndividualValidationResult": { - "properties": { - "is_valid": { - "type": "boolean", - "title": "Is Valid", - "default": true - }, - "violations": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Violations" - } - }, - "type": "object", - "title": "IndividualValidationResult" - }, - "KeepAliveResponse": { - "properties": { - "server_status": { - "type": "string", - "enum": [ - "available" - ], - "const": "available", - "title": "Server Status", - "default": "available" - }, - "session_status": { - "type": "string", - "enum": [ - "missing session cookie", - "session invalid", - "session valid" - ], - "title": "Session Status" - } - }, - "type": "object", - "required": [ - "session_status" - ], - "title": "KeepAliveResponse" - }, - "Limit": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "limit" - ], - "const": "limit", - "title": "Operation", - "default": "limit" - }, - "limit": { - "type": "integer", - "title": "Limit" - } - }, - "type": "object", - "required": [ - "limit" - ], - "title": "Limit" - }, - "LocalTableIdentifier": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "schema": { - "type": "string", - "title": "Schema", - "default": "main" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "LocalTableIdentifier" - }, - "MITM": { - "type": "string", - "enum": [ - "MAED" - ], - "const": "MAED", - "title": "MITM" - }, - "MITMDataType": { - "type": "string", - "enum": [ - "text", - "json", - "integer", - "numeric", - "boolean", - "datetime", - "unknown", - "infer" - ], - "title": "MITMDataType" - }, - "MITMDefinition": { - "properties": { - "main_concepts": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true, - "title": "Main Concepts" - }, - "weak_concepts": { - "additionalProperties": { - "$ref": "#/components/schemas/MITMDataType" - }, - "type": "object", - "title": "Weak Concepts" - }, - "sub_concepts": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "type": "object", - "title": "Sub Concepts" - }, - "concept_relations": { - "additionalProperties": { - "$ref": "#/components/schemas/OwnedRelations" - }, - "type": "object", - "title": "Concept Relations" - }, - "concept_properties": { - "additionalProperties": { - "$ref": "#/components/schemas/ConceptProperties" - }, - "type": "object", - "title": "Concept Properties" - }, - "leaf_concepts": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true, - "title": "Leaf Concepts", - "readOnly": true - }, - "abstract_concepts": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true, - "title": "Abstract Concepts", - "readOnly": true - }, - "parent_concepts_map": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "title": "Parent Concepts Map", - "readOnly": true - } - }, - "type": "object", - "required": [ - "main_concepts", - "weak_concepts", - "sub_concepts", - "concept_relations", - "concept_properties", - "leaf_concepts", - "abstract_concepts", - "parent_concepts_map" - ], - "title": "MITMDefinition" - }, - "MappingGroupValidationResult": { - "properties": { - "evaluated_mappings": { - "anyOf": [ - { - "items": { - "$ref": "#/components/schemas/ConceptMapping-Output" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Evaluated Mappings" - }, - "validation_result": { - "$ref": "#/components/schemas/GroupValidationResult" - } - }, - "type": "object", - "required": [ - "validation_result" - ], - "title": "MappingGroupValidationResult" - }, - "MitMDataTypeInfos": { - "properties": { - "sql_type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Sql Type" - } - }, - "type": "object", - "required": [ - "sql_type" - ], - "title": "MitMDataTypeInfos" - }, - "NumericSummaryStatistics": { - "properties": { - "count": { - "type": "integer", - "title": "Count" - }, - "mean": { - "type": "number", - "title": "Mean" - }, - "min": { - "type": "number", - "title": "Min" - }, - "max": { - "type": "number", - "title": "Max" - }, - "std": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "title": "Std" - }, - "percentile_25": { - "type": "number", - "title": "Percentile 25" - }, - "percentile_50": { - "type": "number", - "title": "Percentile 50" - }, - "percentile_75": { - "type": "number", - "title": "Percentile 75" - } - }, - "type": "object", - "required": [ - "count", - "mean", - "min", - "max", - "percentile_25", - "percentile_50", - "percentile_75" - ], - "title": "NumericSummaryStatistics" - }, - "OwnedRelations": { - "properties": { - "identity": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "title": "Identity" - }, - "inline": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "title": "Inline" - }, - "to_one": { - "additionalProperties": { - "$ref": "#/components/schemas/ForeignRelationInfo" - }, - "type": "object", - "title": "To One" - }, - "to_many": { - "additionalProperties": { - "$ref": "#/components/schemas/ForeignRelationInfo" - }, - "type": "object", - "title": "To Many" - } - }, - "type": "object", - "required": [ - "identity", - "inline", - "to_one", - "to_many" - ], - "title": "OwnedRelations" - }, - "PostProcessing": { - "properties": { - "table_postprocessing": { - "items": { - "$ref": "#/components/schemas/TablePostProcessing" - }, - "type": "array", - "title": "Table Postprocessing" - } - }, - "type": "object", - "required": [ - "table_postprocessing" - ], - "title": "PostProcessing" - }, - "PublishedMitMResponse": { - "properties": { - "url": { - "type": "string", - "maxLength": 2083, - "minLength": 1, - "format": "uri", - "title": "Url" - }, - "relative_uri": { - "type": "string", - "title": "Relative Uri" - }, - "deletion_request_url": { - "type": "string", - "maxLength": 2083, - "minLength": 1, - "format": "uri", - "title": "Deletion Request Url" - }, - "export_id": { - "type": "integer", - "title": "Export Id" - } - }, - "type": "object", - "required": [ - "url", - "relative_uri", - "deletion_request_url", - "export_id" - ], - "title": "PublishedMitMResponse" - }, - "RawCompiled": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "raw" - ], - "const": "raw", - "title": "Operation", - "default": "raw" - }, - "typed_query": { - "$ref": "#/components/schemas/TypedRawQuery" - } - }, - "type": "object", - "required": [ - "typed_query" - ], - "title": "RawCompiled" - }, - "ReselectColumns": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "reselect_columns" - ], - "const": "reselect_columns", - "title": "Operation", - "default": "reselect_columns" - }, - "selection": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Selection" - } - }, - "type": "object", - "required": [ - "selection" - ], - "title": "ReselectColumns" - }, - "SampleSummary": { - "properties": { - "sample_size": { - "anyOf": [ - { - "type": "integer", - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Sample Size" - }, - "na_fraction": { - "anyOf": [ - { - "type": "number", - "maximum": 1.0, - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Na Fraction" - }, - "unique_fraction": { - "anyOf": [ - { - "type": "number", - "maximum": 1.0, - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Unique Fraction" - }, - "value_counts": { - "anyOf": [ - { - "additionalProperties": { - "type": "integer" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Value Counts" - }, - "summary_statistics": { - "anyOf": [ - { - "$ref": "#/components/schemas/NumericSummaryStatistics" - }, - { - "$ref": "#/components/schemas/CategoricalSummaryStatistics" - }, - { - "$ref": "#/components/schemas/DatetimeSummaryStatistics" - }, - { - "type": "null" - } - ], - "title": "Summary Statistics" - }, - "json_schema": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Json Schema" - } - }, - "type": "object", - "title": "SampleSummary" - }, - "SemanticColumnCondition": { - "properties": { - "inferred_data_type": { - "anyOf": [ - { - "$ref": "#/components/schemas/MITMDataType" - }, - { - "type": "null" - } - ] - }, - "max_na_fraction": { - "anyOf": [ - { - "type": "number", - "maximum": 1.0, - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Max Na Fraction" - }, - "value_in_range": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Value In Range" - }, - "contained_value": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Contained Value" - }, - "contained_datetime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Contained Datetime" - } - }, - "type": "object", - "title": "SemanticColumnCondition" - }, - "SemanticTableCondition": { - "properties": { - "min_row_count": { - "anyOf": [ - { - "type": "integer", - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Min Row Count" - }, - "max_row_count": { - "anyOf": [ - { - "type": "integer", - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Max Row Count" - } - }, - "type": "object", - "title": "SemanticTableCondition" - }, - "SessionIdResponse": { - "properties": { - "session_id": { - "type": "string", - "format": "uuid", - "title": "Session Id" - } - }, - "type": "object", - "required": [ - "session_id" - ], - "title": "SessionIdResponse" - }, - "SimpleJoin": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "join" - ], - "const": "join", - "title": "Operation", - "default": "join" - }, - "left_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Left Table" - }, - "right_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Right Table" - }, - "on_cols_left": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "On Cols Left" - }, - "on_cols_right": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "On Cols Right" - }, - "is_outer": { - "type": "boolean", - "title": "Is Outer", - "default": false - }, - "full": { - "type": "boolean", - "title": "Full", - "default": false - }, - "selected_cols_left": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Selected Cols Left" - }, - "selected_cols_right": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Selected Cols Right" - }, - "left_alias": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Left Alias" - }, - "right_alias": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Right Alias" - } - }, - "type": "object", - "required": [ - "left_table", - "right_table" - ], - "title": "SimpleJoin" - }, - "SimpleSQLOperator": { - "type": "string", - "enum": [ - "ilike", - "like", - "=", - ">=", - ">", - "<=", - "<", - "in", - "notin" - ], - "title": "SimpleSQLOperator" - }, - "SimpleWhere": { - "properties": { - "lhs": { - "type": "string", - "title": "Lhs" - }, - "operator": { - "$ref": "#/components/schemas/SimpleSQLOperator" - }, - "rhs": { - "anyOf": [ - { - "type": "string" - }, - { - "prefixItems": [ - {}, - { - "anyOf": [ - { - "$ref": "#/components/schemas/WrappedMITMDataType" - }, - { - "type": "string" - } - ] - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Rhs" - } - }, - "type": "object", - "required": [ - "lhs", - "operator", - "rhs" - ], - "title": "SimpleWhere" - }, - "SourceDBType": { - "type": "string", - "enum": [ - "original", - "working", - "virtual" - ], - "title": "SourceDBType" - }, - "SyntacticColumnCondition": { - "properties": { - "name_regex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Name Regex" - }, - "sql_data_type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Sql Data Type" - }, - "mitm_data_type": { - "anyOf": [ - { - "$ref": "#/components/schemas/MITMDataType" - }, - { - "type": "null" - } - ] - } - }, - "type": "object", - "title": "SyntacticColumnCondition" - }, - "SyntacticTableCondition": { - "properties": { - "schema_regex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Schema Regex" - }, - "name_regex": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Name Regex" - }, - "min_col_count": { - "anyOf": [ - { - "type": "integer", - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Min Col Count" - }, - "max_col_count": { - "anyOf": [ - { - "type": "integer", - "minimum": 0.0 - }, - { - "type": "null" - } - ], - "title": "Max Col Count" - }, - "has_foreign_key": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Has Foreign Key" - } - }, - "type": "object", - "title": "SyntacticTableCondition" - }, - "TableFilter": { - "properties": { - "operation": { - "type": "string", - "enum": [ - "table_filter" - ], - "const": "table_filter", - "title": "Operation", - "default": "table_filter" - }, - "wheres": { - "items": { - "$ref": "#/components/schemas/SimpleWhere" - }, - "type": "array", - "title": "Wheres" - }, - "limit": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Limit" - } - }, - "type": "object", - "required": [ - "wheres" - ], - "title": "TableFilter" - }, - "TableIdentifier": { - "properties": { - "source": { - "allOf": [ - { - "$ref": "#/components/schemas/SourceDBType" - } - ], - "default": "original" - }, - "schema": { - "type": "string", - "title": "Schema", - "default": "main" - }, - "name": { - "type": "string", - "title": "Name" - } - }, - "type": "object", - "required": [ - "name" - ], - "title": "TableIdentifier" - }, - "TableMetaInfoBase": { - "properties": { - "schema_name": { - "type": "string", - "title": "Schema Name", - "default": "main" - }, - "name": { - "type": "string", - "title": "Name" - }, - "columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Columns" - }, - "sql_column_types": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Sql Column Types" - }, - "primary_key": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Primary Key" - }, - "indexes": { - "anyOf": [ - { - "items": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Indexes" - }, - "foreign_key_constraints": { - "items": { - "$ref": "#/components/schemas/ForeignKeyConstraintBase" - }, - "type": "array", - "title": "Foreign Key Constraints" - }, - "column_properties": { - "additionalProperties": { - "$ref": "#/components/schemas/ColumnProperties" - }, - "type": "object", - "title": "Column Properties" - } - }, - "type": "object", - "required": [ - "name", - "columns", - "sql_column_types" - ], - "title": "TableMetaInfoBase" - }, - "TablePostProcessing": { - "properties": { - "target_table": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableIdentifier" - }, - { - "prefixItems": [ - { - "$ref": "#/components/schemas/SourceDBType" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 3, - "minItems": 3 - }, - { - "prefixItems": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "array", - "maxItems": 2, - "minItems": 2 - } - ], - "title": "Target Table" - }, - "transforms": { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/EditColumns" - }, - { - "$ref": "#/components/schemas/ReselectColumns" - }, - { - "$ref": "#/components/schemas/TableFilter" - }, - { - "$ref": "#/components/schemas/Limit" - } - ], - "discriminator": { - "propertyName": "operation", - "mapping": { - "edit_columns": "#/components/schemas/EditColumns", - "limit": "#/components/schemas/Limit", - "reselect_columns": "#/components/schemas/ReselectColumns", - "table_filter": "#/components/schemas/TableFilter" - } - } - }, - "type": "array", - "title": "Transforms" - } - }, - "type": "object", - "required": [ - "target_table", - "transforms" - ], - "title": "TablePostProcessing" - }, - "TableProbeBase": { - "properties": { - "row_count": { - "type": "integer", - "minimum": 0.0, - "title": "Row Count" - }, - "inferred_types": { - "additionalProperties": { - "$ref": "#/components/schemas/MITMDataType" - }, - "type": "object", - "title": "Inferred Types" - }, - "sample_summaries": { - "additionalProperties": { - "$ref": "#/components/schemas/SampleSummary" - }, - "type": "object", - "title": "Sample Summaries" - }, - "table_meta": { - "$ref": "#/components/schemas/TableMetaInfoBase" - }, - "sampled_values": { - "additionalProperties": { - "items": {}, - "type": "array" - }, - "type": "object", - "title": "Sampled Values" - } - }, - "type": "object", - "required": [ - "row_count", - "inferred_types", - "sample_summaries", - "table_meta", - "sampled_values" - ], - "title": "TableProbeBase" - }, - "TableQueryResult": { - "properties": { - "table_info": { - "anyOf": [ - { - "$ref": "#/components/schemas/TableMetaInfoBase" - }, - { - "type": "null" - } - ] - }, - "rows": { - "items": { - "items": {}, - "type": "array" - }, - "type": "array", - "title": "Rows" - } - }, - "type": "object", - "required": [ - "table_info", - "rows" - ], - "title": "TableQueryResult" - }, - "TypedRawQuery": { - "properties": { - "dialect": { - "type": "string", - "title": "Dialect" - }, - "compiled_sql": { - "type": "string", - "title": "Compiled Sql" - }, - "columns": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Columns" - }, - "column_dtypes": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/WrappedMITMDataType" - }, - { - "type": "string" - } - ] - }, - "type": "array", - "title": "Column Dtypes" - } - }, - "type": "object", - "required": [ - "dialect", - "compiled_sql", - "columns", - "column_dtypes" - ], - "title": "TypedRawQuery" - }, - "ValidationError": { - "properties": { - "loc": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "type": "array", - "title": "Location" - }, - "msg": { - "type": "string", - "title": "Message" - }, - "type": { - "type": "string", - "title": "Error Type" - } - }, - "type": "object", - "required": [ - "loc", - "msg", - "type" - ], - "title": "ValidationError" - }, - "VirtualViewCreationRequest": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "table_creation": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleJoin" - }, - { - "$ref": "#/components/schemas/ExistingTable" - }, - { - "$ref": "#/components/schemas/RawCompiled" - } - ], - "title": "Table Creation", - "discriminator": { - "propertyName": "operation", - "mapping": { - "existing": "#/components/schemas/ExistingTable", - "join": "#/components/schemas/SimpleJoin", - "raw": "#/components/schemas/RawCompiled" - } - } - }, - "transforms": { - "anyOf": [ - { - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/EditColumns" - }, - { - "$ref": "#/components/schemas/ReselectColumns" - }, - { - "$ref": "#/components/schemas/TableFilter" - }, - { - "$ref": "#/components/schemas/Limit" - } - ], - "discriminator": { - "propertyName": "operation", - "mapping": { - "edit_columns": "#/components/schemas/EditColumns", - "limit": "#/components/schemas/Limit", - "reselect_columns": "#/components/schemas/ReselectColumns", - "table_filter": "#/components/schemas/TableFilter" - } - } - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Transforms" - }, - "schema": { - "type": "string", - "title": "Schema", - "default": "virtual" - } - }, - "type": "object", - "required": [ - "name", - "table_creation" - ], - "title": "VirtualViewCreationRequest" - }, - "VirtualViewResponse": { - "properties": { - "table_meta": { - "$ref": "#/components/schemas/TableMetaInfoBase" - } - }, - "type": "object", - "required": [ - "table_meta" - ], - "title": "VirtualViewResponse" - }, - "WrappedMITMDataType": { - "properties": { - "mitm": { - "$ref": "#/components/schemas/MITMDataType" - } - }, - "type": "object", - "required": [ - "mitm" - ], - "title": "WrappedMITMDataType" - } - } - } -} \ No newline at end of file +{"openapi": "3.1.0", "info": {"title": "MitMExtractorBackend", "version": "0.1.0"}, "paths": {"/admin/clear-sessions": {"post": {"tags": ["admin"], "summary": "Clear Sessions", "operationId": "clear_sessions", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/admin/active-sessions": {"get": {"tags": ["admin"], "summary": "Get Active Sessions", "operationId": "get_active_sessions", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"type": "string", "format": "date-time"}, "type": "object", "title": "Response Get Active Sessions Admin Active Sessions Get"}}}}}}}, "/admin/clear-exports": {"post": {"tags": ["admin"], "summary": "Clear Exports", "operationId": "clear_exports", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/definitions/mitms": {"get": {"tags": ["definitions"], "summary": "Get Mitms", "operationId": "get_mitms", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/MITM"}, "type": "array", "title": "Response Get Mitms Definitions Mitms Get"}}}}}}}, "/definitions/mitm-definition": {"get": {"tags": ["definitions"], "summary": "Get Mitm Definition", "operationId": "get_mitm_definition", "parameters": [{"name": "mitm", "in": "query", "required": true, "schema": {"$ref": "#/components/schemas/MITM"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MITMDefinition"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm-data-types": {"get": {"tags": ["definitions"], "summary": "Get Mitm Data Types", "operationId": "get_mitm_data_types", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"$ref": "#/components/schemas/MitMDataTypeInfos"}, "type": "object", "title": "Response Get Mitm Data Types Definitions Mitm Data Types Get"}}}}}}}, "/session/start-session": {"post": {"tags": ["session"], "summary": "Start Session", "operationId": "start_session", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SessionIdResponse"}}}}}}}, "/session/get-session": {"get": {"tags": ["session"], "summary": "Get Session", "operationId": "get_session", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SessionIdResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/session/stop-session": {"post": {"tags": ["session"], "summary": "Stop Session", "operationId": "stop_session", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/session/upload-db": {"post": {"tags": ["session"], "summary": "Upload Db", "operationId": "upload_db", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_db_session_upload_db_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/session/connect-db": {"post": {"tags": ["session"], "summary": "Connect Db", "operationId": "connect_db", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_connect_db_session_connect_db_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/session/test-db-conn": {"get": {"tags": ["session"], "summary": "Test Db Conn", "operationId": "test_db_conn", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBConnTestResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/session/keep-alive": {"get": {"tags": ["session"], "summary": "Keep Alive", "operationId": "keep_alive", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/KeepAliveResponse"}}}}}}}, "/control/reflect-db": {"post": {"tags": ["control"], "summary": "Reflect Db", "operationId": "reflect_db", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/init-working-db": {"post": {"tags": ["control"], "summary": "Init Working Db", "operationId": "init_working_db", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/mark-foreign-key": {"post": {"tags": ["control"], "summary": "Mark Foreign Key", "operationId": "mark_foreign_key", "parameters": [{"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForeignKeyConstraintRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FKCreationResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/virtual-view": {"put": {"tags": ["control"], "summary": "Create Virtual View", "operationId": "create_virtual_view", "parameters": [{"name": "override_if_exists", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Override If Exists"}}, {"name": "verify_immediately", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Verify Immediately"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VirtualViewCreationRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VirtualViewResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["control"], "summary": "Get Virtual View", "operationId": "get_virtual_view", "parameters": [{"name": "view", "in": "query", "required": true, "schema": {"type": "string", "title": "View"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "virtual", "title": "Schema"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VirtualViewResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["control"], "summary": "Drop Virtual View", "operationId": "drop_virtual_view", "parameters": [{"name": "view", "in": "query", "required": true, "schema": {"type": "string", "title": "View"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "virtual", "title": "Schema"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/virtual-views": {"get": {"tags": ["control"], "summary": "Get Virtual Views", "operationId": "get_virtual_views", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/VirtualViewResponse"}, "title": "Response Get Virtual Views Control Virtual Views Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/compiled-virtual-view": {"get": {"tags": ["control"], "summary": "Get Compiled Virtual View", "operationId": "get_compiled_virtual_view", "parameters": [{"name": "view", "in": "query", "required": true, "schema": {"type": "string", "title": "View"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "virtual", "title": "Schema"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompiledVirtualView"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/compiled-virtual-views": {"get": {"tags": ["control"], "summary": "Get Compiled Virtual Views", "operationId": "get_compiled_virtual_views", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/CompiledVirtualView"}, "title": "Response Get Compiled Virtual Views Control Compiled Virtual Views Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/control/virtual-views-batch": {"put": {"tags": ["control"], "summary": "Create Virtual Views Batch", "operationId": "create_virtual_views_batch", "parameters": [{"name": "override_if_exists", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Override If Exists"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/VirtualViewCreationRequest"}, "title": "Requests"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/VirtualViewResponse"}, "title": "Response Create Virtual Views Batch Control Virtual Views Batch Put"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/raw-query": {"post": {"tags": ["data"], "summary": "Raw Query", "operationId": "raw_query", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_raw_query_data_raw_query_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "array", "items": {}}, "title": "Response Raw Query Data Raw Query Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/query-table": {"get": {"tags": ["data"], "summary": "Query Table", "operationId": "query_table", "parameters": [{"name": "table", "in": "query", "required": true, "schema": {"type": "string", "title": "Table"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "main", "title": "Schema"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "offset", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Offset"}}, {"name": "limit", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Limit"}}, {"name": "include_table_meta", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Table Meta"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TableQueryResult"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/query-unique-values": {"get": {"tags": ["data"], "summary": "Query Unique Values", "operationId": "query_unique_values", "parameters": [{"name": "table", "in": "query", "required": true, "schema": {"type": "string", "title": "Table"}}, {"name": "column", "in": "query", "required": true, "schema": {"type": "string", "title": "Column"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "main", "title": "Schema"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {}, "title": "Response Query Unique Values Data Query Unique Values Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/er-diagram": {"get": {"tags": ["data"], "summary": "Make Erd", "operationId": "make_erd", "parameters": [{"name": "version", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/ERVariant"}], "default": "mermaid", "title": "Version"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/filtered-er-diagram": {"post": {"tags": ["data"], "summary": "Make Filtered Erd", "operationId": "make_filtered_erd", "parameters": [{"name": "version", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/ERVariant"}], "default": "mermaid", "title": "Version"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBSchemaSelectionRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/table-schema": {"get": {"tags": ["reflection"], "summary": "Get Table Schema", "operationId": "get_table_schema", "parameters": [{"name": "table", "in": "query", "required": true, "schema": {"type": "string", "title": "Table"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "main", "title": "Schema"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TableMetaInfoBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/db-schema": {"get": {"tags": ["reflection"], "summary": "Get Db Schema", "operationId": "get_db_schema", "parameters": [{"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBMetaInfoBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/filter-db-schema": {"post": {"tags": ["reflection"], "summary": "Filter Db Schema", "operationId": "filter_db_schema", "parameters": [{"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBSchemaSelectionRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBMetaInfoBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/query-db-schema": {"post": {"tags": ["reflection"], "summary": "Query Db Schema", "operationId": "query_db_schema", "parameters": [{"name": "store_intermediate_table_probes", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Store Intermediate Table Probes"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBSchemaQueryRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBMetaInfoBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/suggest-joins": {"get": {"tags": ["reflection"], "summary": "Suggest Joins", "operationId": "suggest_joins", "parameters": [{"name": "table", "in": "query", "required": true, "schema": {"type": "string", "title": "Table"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "main", "title": "Schema"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "array", "prefixItems": [{"type": "string"}, {"type": "string"}], "minItems": 2, "maxItems": 2}, "title": "Response Suggest Joins Reflection Suggest Joins Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/probe-table": {"post": {"tags": ["reflection"], "summary": "Probe Table", "operationId": "probe_table", "parameters": [{"name": "table", "in": "query", "required": true, "schema": {"type": "string", "title": "Table"}}, {"name": "schema", "in": "query", "required": false, "schema": {"type": "string", "default": "main", "title": "Schema"}}, {"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "sample_size", "in": "query", "required": false, "schema": {"type": "integer", "default": 100, "title": "Sample Size"}}, {"name": "override_if_exists", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Override If Exists"}}, {"name": "store_results", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Store Results"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TableProbeBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/reflection/probe-db": {"post": {"tags": ["reflection"], "summary": "Probe Db", "operationId": "probe_db", "parameters": [{"name": "source", "in": "query", "required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original", "title": "Source"}}, {"name": "sample_size", "in": "query", "required": false, "schema": {"type": "integer", "default": 100, "title": "Sample Size"}}, {"name": "override_if_exists", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Override If Exists"}}, {"name": "store_results", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Store Results"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": {"type": "array", "uniqueItems": true, "items": {"type": "string"}}, "title": "Table Selection"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBProbeBase"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm/validate-concept-mappings": {"post": {"tags": ["mitm"], "summary": "Validate Concept Mappings", "operationId": "validate_concept_mappings", "parameters": [{"name": "include_request", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Request"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ConceptMapping-Input"}, "title": "Concept Mappings"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingGroupValidationResult"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm/export-mitm": {"post": {"tags": ["mitm"], "summary": "Export Mitm", "operationId": "export_mitm", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExportRequest"}}}}, "responses": {"200": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm/publish-mitm-export": {"post": {"tags": ["mitm"], "summary": "Publish Mitm Export", "operationId": "publish_mitm_export", "parameters": [{"name": "use_streaming_export", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Use Streaming Export"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExportRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PublishedMitMResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm/delete-mitm-export": {"post": {"tags": ["mitm"], "summary": "Delete Mitm Export", "operationId": "delete_mitm_export", "parameters": [{"name": "export_id", "in": "query", "required": true, "schema": {"type": "integer", "title": "Export Id"}}, {"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm/delete-mitm-exports": {"post": {"tags": ["mitm"], "summary": "Delete Mitm Exports", "operationId": "delete_mitm_exports", "parameters": [{"name": "simple_session", "in": "cookie", "required": true, "schema": {"type": "string", "title": "Simple Session"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/": {"get": {"summary": "Root", "operationId": "root", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}}, "components": {"schemas": {"AddColumn": {"properties": {"operation": {"type": "string", "enum": ["add_column"], "const": "add_column", "title": "Operation", "default": "add_column"}, "col_name": {"type": "string", "title": "Col Name"}, "value": {"title": "Value"}, "target_type": {"anyOf": [{"$ref": "#/components/schemas/WrappedMITMDataType"}, {"type": "string"}], "title": "Target Type"}}, "type": "object", "required": ["col_name", "value", "target_type"], "title": "AddColumn"}, "Body_connect_db_session_connect_db_post": {"properties": {"db_url": {"type": "string", "minLength": 1, "format": "uri", "title": "Db Url"}}, "type": "object", "required": ["db_url"], "title": "Body_connect_db_session_connect_db_post"}, "Body_raw_query_data_raw_query_post": {"properties": {"query": {"type": "string", "title": "Query"}}, "type": "object", "required": ["query"], "title": "Body_raw_query_data_raw_query_post"}, "Body_upload_db_session_upload_db_post": {"properties": {"sqlite": {"type": "string", "format": "binary", "title": "Sqlite", "description": "Upload a sqlite db file here."}}, "type": "object", "required": ["sqlite"], "title": "Body_upload_db_session_upload_db_post"}, "CastColumn": {"properties": {"operation": {"type": "string", "enum": ["cast_column"], "const": "cast_column", "title": "Operation", "default": "cast_column"}, "target_type": {"anyOf": [{"$ref": "#/components/schemas/WrappedMITMDataType"}, {"type": "string"}], "title": "Target Type"}}, "type": "object", "required": ["target_type"], "title": "CastColumn"}, "CategoricalSummaryStatistics": {"properties": {"count": {"type": "integer", "minimum": 0.0, "title": "Count"}, "unique": {"type": "integer", "minimum": 0.0, "title": "Unique"}, "top": {"type": "string", "title": "Top"}, "freq": {"type": "integer", "minimum": 0.0, "title": "Freq"}}, "type": "object", "required": ["count", "unique", "top", "freq"], "title": "CategoricalSummaryStatistics"}, "ColumnProperties": {"properties": {"nullable": {"type": "boolean", "title": "Nullable"}, "unique": {"type": "boolean", "title": "Unique"}, "part_of_pk": {"type": "boolean", "title": "Part Of Pk"}, "part_of_fk": {"type": "boolean", "title": "Part Of Fk"}, "part_of_index": {"type": "boolean", "title": "Part Of Index"}, "mitm_data_type": {"$ref": "#/components/schemas/MITMDataType"}}, "type": "object", "required": ["nullable", "unique", "part_of_pk", "part_of_fk", "part_of_index", "mitm_data_type"], "title": "ColumnProperties"}, "CompiledVirtualView": {"properties": {"dialect": {"type": "string", "title": "Dialect"}, "compiled_sql": {"type": "string", "title": "Compiled Sql"}, "columns": {"items": {"type": "string"}, "type": "array", "title": "Columns"}, "column_dtypes": {"items": {"anyOf": [{"$ref": "#/components/schemas/WrappedMITMDataType"}, {"type": "string"}]}, "type": "array", "title": "Column Dtypes"}, "name": {"type": "string", "title": "Name"}, "schema_name": {"type": "string", "title": "Schema Name"}}, "type": "object", "required": ["dialect", "compiled_sql", "columns", "column_dtypes", "name", "schema_name"], "title": "CompiledVirtualView"}, "ConceptKind": {"type": "string", "enum": ["concrete", "abstract"], "title": "ConceptKind"}, "ConceptLevel": {"type": "string", "enum": ["main", "sub", "weak"], "title": "ConceptLevel"}, "ConceptMapping-Input": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept": {"type": "string", "title": "Concept"}, "base_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Base Table"}, "kind_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kind Col"}, "type_col": {"type": "string", "title": "Type Col"}, "identity_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Identity Columns"}, "inline_relations": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Inline Relations"}, "foreign_relations": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelation-Input"}, "type": "object", "title": "Foreign Relations"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["mitm", "concept", "base_table", "type_col"], "title": "ConceptMapping"}, "ConceptMapping-Output": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept": {"type": "string", "title": "Concept"}, "base_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Base Table"}, "kind_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kind Col"}, "type_col": {"type": "string", "title": "Type Col"}, "identity_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Identity Columns"}, "inline_relations": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Inline Relations"}, "foreign_relations": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelation-Output"}, "type": "object", "title": "Foreign Relations"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["mitm", "concept", "base_table", "type_col"], "title": "ConceptMapping"}, "ConceptProperties": {"properties": {"nature": {"prefixItems": [{"$ref": "#/components/schemas/ConceptLevel"}, {"$ref": "#/components/schemas/ConceptKind"}], "type": "array", "maxItems": 2, "minItems": 2, "title": "Nature"}, "key": {"type": "string", "title": "Key"}, "plural": {"type": "string", "title": "Plural"}, "typing_concept": {"type": "string", "title": "Typing Concept", "default": "type"}, "column_group_ordering": {"items": {"type": "string", "enum": ["kind", "type", "identity-relations", "inline-relations", "foreign-relations", "attributes"]}, "type": "array", "title": "Column Group Ordering", "default": ["kind", "type", "identity-relations", "inline-relations", "foreign-relations", "attributes"]}, "permit_attributes": {"type": "boolean", "title": "Permit Attributes", "default": true}}, "type": "object", "required": ["nature", "key", "plural"], "title": "ConceptProperties"}, "DBConnTestResponse": {"properties": {"db_url": {"type": "string", "minLength": 1, "format": "uri", "title": "Db Url"}, "success": {"type": "boolean", "title": "Success"}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error"}}, "type": "object", "required": ["db_url", "success"], "title": "DBConnTestResponse"}, "DBMetaInfoBase": {"properties": {"db_structure": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/TableMetaInfoBase"}, "type": "object"}, "type": "object", "title": "Db Structure"}, "tables": {"additionalProperties": {"$ref": "#/components/schemas/TableMetaInfoBase"}, "type": "object", "title": "Tables", "readOnly": true}}, "type": "object", "required": ["db_structure", "tables"], "title": "DBMetaInfoBase"}, "DBMetaQuery": {"properties": {"syntactic_table_conditions": {"items": {"$ref": "#/components/schemas/SyntacticTableCondition"}, "type": "array", "title": "Syntactic Table Conditions"}, "semantic_table_conditions": {"items": {"$ref": "#/components/schemas/SemanticTableCondition"}, "type": "array", "title": "Semantic Table Conditions"}, "syntactic_column_conditions": {"items": {"$ref": "#/components/schemas/SyntacticColumnCondition"}, "type": "array", "title": "Syntactic Column Conditions"}, "semantic_column_conditions": {"items": {"$ref": "#/components/schemas/SemanticColumnCondition"}, "type": "array", "title": "Semantic Column Conditions"}}, "type": "object", "title": "DBMetaQuery"}, "DBProbeBase": {"properties": {"table_probes": {"additionalProperties": {"$ref": "#/components/schemas/TableProbeBase"}, "type": "object", "title": "Table Probes"}, "db_meta": {"$ref": "#/components/schemas/DBMetaInfoBase"}}, "type": "object", "required": ["db_meta"], "title": "DBProbeBase"}, "DBSchemaQueryRequest": {"properties": {"query": {"$ref": "#/components/schemas/DBMetaQuery"}, "filter_columns": {"type": "boolean", "title": "Filter Columns", "default": false}}, "type": "object", "required": ["query"], "title": "DBSchemaQueryRequest"}, "DBSchemaSelectionRequest": {"properties": {"selection": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array", "uniqueItems": true}, "type": "object"}, {"additionalProperties": {"additionalProperties": {"items": {"type": "string"}, "type": "array", "uniqueItems": true}, "type": "object"}, "type": "object"}], "title": "Selection"}, "filter_columns": {"type": "boolean", "title": "Filter Columns", "default": false}}, "type": "object", "required": ["selection"], "title": "DBSchemaSelectionRequest"}, "DatetimeSummaryStatistics": {"properties": {"count": {"type": "integer", "title": "Count"}, "mean": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Mean"}, "min": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Min"}, "max": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Max"}, "percentile_25": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Percentile 25"}, "percentile_50": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Percentile 50"}, "percentile_75": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Percentile 75"}}, "type": "object", "required": ["count"], "title": "DatetimeSummaryStatistics"}, "ERVariant": {"type": "string", "enum": ["image", "mermaid"], "title": "ERVariant"}, "EditColumns": {"properties": {"operation": {"type": "string", "enum": ["edit_columns"], "const": "edit_columns", "title": "Operation", "default": "edit_columns"}, "transforms": {"additionalProperties": {"oneOf": [{"$ref": "#/components/schemas/CastColumn"}], "discriminator": {"propertyName": "operation", "mapping": {"cast_column": "#/components/schemas/CastColumn"}}}, "type": "object", "title": "Transforms"}, "renames": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Renames"}, "drops": {"items": {"type": "string"}, "type": "array", "uniqueItems": true, "title": "Drops"}, "additions": {"additionalProperties": {"items": {"oneOf": [{"$ref": "#/components/schemas/AddColumn"}, {"$ref": "#/components/schemas/ExtractJson"}], "discriminator": {"propertyName": "operation", "mapping": {"add_column": "#/components/schemas/AddColumn", "extract_json": "#/components/schemas/ExtractJson"}}}, "type": "array"}, "type": "object", "title": "Additions"}}, "type": "object", "title": "EditColumns"}, "ExistingTable": {"properties": {"operation": {"type": "string", "enum": ["existing"], "const": "existing", "title": "Operation", "default": "existing"}, "base_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Base Table"}}, "type": "object", "required": ["base_table"], "title": "ExistingTable"}, "ExportRequest": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "mapped_concepts": {"items": {"$ref": "#/components/schemas/ConceptMapping-Input"}, "type": "array", "title": "Mapped Concepts"}, "post_processing": {"anyOf": [{"$ref": "#/components/schemas/PostProcessing"}, {"type": "null"}]}, "filename": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Filename"}}, "type": "object", "required": ["mitm", "mapped_concepts"], "title": "ExportRequest"}, "ExtractJson": {"properties": {"operation": {"type": "string", "enum": ["extract_json"], "const": "extract_json", "title": "Operation", "default": "extract_json"}, "json_col": {"type": "string", "title": "Json Col"}, "attributes": {"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object", "title": "Attributes"}}, "type": "object", "required": ["json_col", "attributes"], "title": "ExtractJson"}, "FKCreationResponse": {"properties": {"status": {"type": "boolean", "title": "Status"}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Error"}}, "type": "object", "required": ["status"], "title": "FKCreationResponse"}, "ForeignKeyConstraintBase": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "table": {"anyOf": [{"$ref": "#/components/schemas/LocalTableIdentifier"}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Table"}, "columns": {"items": {"type": "string"}, "type": "array", "title": "Columns"}, "target_table": {"anyOf": [{"$ref": "#/components/schemas/LocalTableIdentifier"}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Target Table"}, "target_columns": {"items": {"type": "string"}, "type": "array", "title": "Target Columns"}}, "type": "object", "required": ["table", "columns", "target_table", "target_columns"], "title": "ForeignKeyConstraintBase"}, "ForeignKeyConstraintRequest": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "table": {"anyOf": [{"$ref": "#/components/schemas/LocalTableIdentifier"}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Table"}, "columns": {"items": {"type": "string"}, "type": "array", "title": "Columns"}, "target_table": {"anyOf": [{"$ref": "#/components/schemas/LocalTableIdentifier"}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Target Table"}, "target_columns": {"items": {"type": "string"}, "type": "array", "title": "Target Columns"}}, "type": "object", "required": ["table", "columns", "target_table", "target_columns"], "title": "ForeignKeyConstraintRequest"}, "ForeignRelation-Input": {"properties": {"fk_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Fk Columns"}, "referred_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Referred Table"}}, "type": "object", "required": ["fk_columns", "referred_table"], "title": "ForeignRelation"}, "ForeignRelation-Output": {"properties": {"fk_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Fk Columns"}, "referred_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Referred Table"}}, "type": "object", "required": ["fk_columns", "referred_table"], "title": "ForeignRelation"}, "ForeignRelationInfo": {"properties": {"target_concept": {"type": "string", "title": "Target Concept"}, "fk_relations": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Fk Relations"}}, "type": "object", "required": ["target_concept", "fk_relations"], "title": "ForeignRelationInfo"}, "GroupValidationResult": {"properties": {"individual_validations": {"additionalProperties": {"items": {"prefixItems": [{"$ref": "#/components/schemas/TableIdentifier"}, {"$ref": "#/components/schemas/IndividualValidationResult"}], "type": "array", "maxItems": 2, "minItems": 2}, "type": "array"}, "type": "object", "title": "Individual Validations"}, "is_valid": {"type": "boolean", "title": "Is Valid", "readOnly": true}}, "type": "object", "required": ["is_valid"], "title": "GroupValidationResult"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "IndividualValidationResult": {"properties": {"is_valid": {"type": "boolean", "title": "Is Valid", "default": true}, "violations": {"items": {"type": "string"}, "type": "array", "title": "Violations"}}, "type": "object", "title": "IndividualValidationResult"}, "KeepAliveResponse": {"properties": {"server_status": {"type": "string", "enum": ["available"], "const": "available", "title": "Server Status", "default": "available"}, "session_status": {"type": "string", "enum": ["missing session cookie", "session invalid", "session valid"], "title": "Session Status"}}, "type": "object", "required": ["session_status"], "title": "KeepAliveResponse"}, "Limit": {"properties": {"operation": {"type": "string", "enum": ["limit"], "const": "limit", "title": "Operation", "default": "limit"}, "limit": {"type": "integer", "title": "Limit"}}, "type": "object", "required": ["limit"], "title": "Limit"}, "LocalTableIdentifier": {"properties": {"name": {"type": "string", "title": "Name"}, "schema": {"type": "string", "title": "Schema", "default": "main"}}, "type": "object", "required": ["name"], "title": "LocalTableIdentifier"}, "MITM": {"type": "string", "enum": ["MAED"], "const": "MAED", "title": "MITM"}, "MITMDataType": {"type": "string", "enum": ["text", "json", "integer", "numeric", "boolean", "datetime", "unknown", "infer"], "title": "MITMDataType"}, "MITMDefinition": {"properties": {"main_concepts": {"items": {"type": "string"}, "type": "array", "uniqueItems": true, "title": "Main Concepts"}, "weak_concepts": {"additionalProperties": {"$ref": "#/components/schemas/MITMDataType"}, "type": "object", "title": "Weak Concepts"}, "sub_concepts": {"additionalProperties": {"items": {"type": "string"}, "type": "array", "uniqueItems": true}, "type": "object", "title": "Sub Concepts"}, "concept_relations": {"additionalProperties": {"$ref": "#/components/schemas/OwnedRelations"}, "type": "object", "title": "Concept Relations"}, "concept_properties": {"additionalProperties": {"$ref": "#/components/schemas/ConceptProperties"}, "type": "object", "title": "Concept Properties"}, "leaf_concepts": {"items": {"type": "string"}, "type": "array", "uniqueItems": true, "title": "Leaf Concepts", "readOnly": true}, "abstract_concepts": {"items": {"type": "string"}, "type": "array", "uniqueItems": true, "title": "Abstract Concepts", "readOnly": true}, "parent_concepts_map": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Parent Concepts Map", "readOnly": true}}, "type": "object", "required": ["main_concepts", "weak_concepts", "sub_concepts", "concept_relations", "concept_properties", "leaf_concepts", "abstract_concepts", "parent_concepts_map"], "title": "MITMDefinition"}, "MappingGroupValidationResult": {"properties": {"evaluated_mappings": {"anyOf": [{"items": {"$ref": "#/components/schemas/ConceptMapping-Output"}, "type": "array"}, {"type": "null"}], "title": "Evaluated Mappings"}, "validation_result": {"$ref": "#/components/schemas/GroupValidationResult"}}, "type": "object", "required": ["validation_result"], "title": "MappingGroupValidationResult"}, "MitMDataTypeInfos": {"properties": {"sql_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sql Type"}}, "type": "object", "required": ["sql_type"], "title": "MitMDataTypeInfos"}, "NumericSummaryStatistics": {"properties": {"count": {"type": "integer", "title": "Count"}, "mean": {"type": "number", "title": "Mean"}, "min": {"type": "number", "title": "Min"}, "max": {"type": "number", "title": "Max"}, "std": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Std"}, "percentile_25": {"type": "number", "title": "Percentile 25"}, "percentile_50": {"type": "number", "title": "Percentile 50"}, "percentile_75": {"type": "number", "title": "Percentile 75"}}, "type": "object", "required": ["count", "mean", "min", "max", "percentile_25", "percentile_50", "percentile_75"], "title": "NumericSummaryStatistics"}, "OwnedRelations": {"properties": {"identity": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Identity"}, "inline": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Inline"}, "foreign": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelationInfo"}, "type": "object", "title": "Foreign"}}, "type": "object", "required": ["identity", "inline", "foreign"], "title": "OwnedRelations"}, "PostProcessing": {"properties": {"table_postprocessing": {"items": {"$ref": "#/components/schemas/TablePostProcessing"}, "type": "array", "title": "Table Postprocessing"}}, "type": "object", "required": ["table_postprocessing"], "title": "PostProcessing"}, "PublishedMitMResponse": {"properties": {"url": {"type": "string", "maxLength": 2083, "minLength": 1, "format": "uri", "title": "Url"}, "relative_uri": {"type": "string", "title": "Relative Uri"}, "deletion_request_url": {"type": "string", "maxLength": 2083, "minLength": 1, "format": "uri", "title": "Deletion Request Url"}, "export_id": {"type": "integer", "title": "Export Id"}}, "type": "object", "required": ["url", "relative_uri", "deletion_request_url", "export_id"], "title": "PublishedMitMResponse"}, "RawCompiled": {"properties": {"operation": {"type": "string", "enum": ["raw"], "const": "raw", "title": "Operation", "default": "raw"}, "typed_query": {"$ref": "#/components/schemas/TypedRawQuery"}}, "type": "object", "required": ["typed_query"], "title": "RawCompiled"}, "ReselectColumns": {"properties": {"operation": {"type": "string", "enum": ["reselect_columns"], "const": "reselect_columns", "title": "Operation", "default": "reselect_columns"}, "selection": {"items": {"type": "string"}, "type": "array", "title": "Selection"}}, "type": "object", "required": ["selection"], "title": "ReselectColumns"}, "SampleSummary": {"properties": {"sample_size": {"anyOf": [{"type": "integer", "minimum": 0.0}, {"type": "null"}], "title": "Sample Size"}, "na_fraction": {"anyOf": [{"type": "number", "maximum": 1.0, "minimum": 0.0}, {"type": "null"}], "title": "Na Fraction"}, "unique_fraction": {"anyOf": [{"type": "number", "maximum": 1.0, "minimum": 0.0}, {"type": "null"}], "title": "Unique Fraction"}, "value_counts": {"anyOf": [{"additionalProperties": {"type": "integer"}, "type": "object"}, {"type": "null"}], "title": "Value Counts"}, "summary_statistics": {"anyOf": [{"$ref": "#/components/schemas/NumericSummaryStatistics"}, {"$ref": "#/components/schemas/CategoricalSummaryStatistics"}, {"$ref": "#/components/schemas/DatetimeSummaryStatistics"}, {"type": "null"}], "title": "Summary Statistics"}, "json_schema": {"anyOf": [{"type": "object"}, {"type": "null"}], "title": "Json Schema"}}, "type": "object", "title": "SampleSummary"}, "SemanticColumnCondition": {"properties": {"inferred_data_type": {"anyOf": [{"$ref": "#/components/schemas/MITMDataType"}, {"type": "null"}]}, "max_na_fraction": {"anyOf": [{"type": "number", "maximum": 1.0, "minimum": 0.0}, {"type": "null"}], "title": "Max Na Fraction"}, "value_in_range": {"anyOf": [{}, {"type": "null"}], "title": "Value In Range"}, "contained_value": {"anyOf": [{}, {"type": "null"}], "title": "Contained Value"}, "contained_datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Contained Datetime"}}, "type": "object", "title": "SemanticColumnCondition"}, "SemanticTableCondition": {"properties": {"min_row_count": {"anyOf": [{"type": "integer", "minimum": 0.0}, {"type": "null"}], "title": "Min Row Count"}, "max_row_count": {"anyOf": [{"type": "integer", "minimum": 0.0}, {"type": "null"}], "title": "Max Row Count"}}, "type": "object", "title": "SemanticTableCondition"}, "SessionIdResponse": {"properties": {"session_id": {"type": "string", "format": "uuid", "title": "Session Id"}}, "type": "object", "required": ["session_id"], "title": "SessionIdResponse"}, "SimpleJoin": {"properties": {"operation": {"type": "string", "enum": ["join"], "const": "join", "title": "Operation", "default": "join"}, "left_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Left Table"}, "right_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Right Table"}, "on_cols_left": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "On Cols Left"}, "on_cols_right": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "On Cols Right"}, "is_outer": {"type": "boolean", "title": "Is Outer", "default": false}, "full": {"type": "boolean", "title": "Full", "default": false}, "selected_cols_left": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Selected Cols Left"}, "selected_cols_right": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Selected Cols Right"}, "left_alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Left Alias"}, "right_alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Right Alias"}}, "type": "object", "required": ["left_table", "right_table"], "title": "SimpleJoin"}, "SimpleSQLOperator": {"type": "string", "enum": ["ilike", "like", "=", ">=", ">", "<=", "<", "in", "notin"], "title": "SimpleSQLOperator"}, "SimpleWhere": {"properties": {"lhs": {"type": "string", "title": "Lhs"}, "operator": {"$ref": "#/components/schemas/SimpleSQLOperator"}, "rhs": {"anyOf": [{"type": "string"}, {"prefixItems": [{}, {"anyOf": [{"$ref": "#/components/schemas/WrappedMITMDataType"}, {"type": "string"}]}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Rhs"}}, "type": "object", "required": ["lhs", "operator", "rhs"], "title": "SimpleWhere"}, "SourceDBType": {"type": "string", "enum": ["original", "working", "virtual"], "title": "SourceDBType"}, "SyntacticColumnCondition": {"properties": {"name_regex": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Regex"}, "sql_data_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sql Data Type"}, "mitm_data_type": {"anyOf": [{"$ref": "#/components/schemas/MITMDataType"}, {"type": "null"}]}}, "type": "object", "title": "SyntacticColumnCondition"}, "SyntacticTableCondition": {"properties": {"schema_regex": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Schema Regex"}, "name_regex": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Regex"}, "min_col_count": {"anyOf": [{"type": "integer", "minimum": 0.0}, {"type": "null"}], "title": "Min Col Count"}, "max_col_count": {"anyOf": [{"type": "integer", "minimum": 0.0}, {"type": "null"}], "title": "Max Col Count"}, "has_foreign_key": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Has Foreign Key"}}, "type": "object", "title": "SyntacticTableCondition"}, "TableFilter": {"properties": {"operation": {"type": "string", "enum": ["table_filter"], "const": "table_filter", "title": "Operation", "default": "table_filter"}, "wheres": {"items": {"$ref": "#/components/schemas/SimpleWhere"}, "type": "array", "title": "Wheres"}, "limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Limit"}}, "type": "object", "required": ["wheres"], "title": "TableFilter"}, "TableIdentifier": {"properties": {"source": {"allOf": [{"$ref": "#/components/schemas/SourceDBType"}], "default": "original"}, "schema": {"type": "string", "title": "Schema", "default": "main"}, "name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "TableIdentifier"}, "TableMetaInfoBase": {"properties": {"schema_name": {"type": "string", "title": "Schema Name", "default": "main"}, "name": {"type": "string", "title": "Name"}, "columns": {"items": {"type": "string"}, "type": "array", "title": "Columns"}, "sql_column_types": {"items": {"type": "string"}, "type": "array", "title": "Sql Column Types"}, "primary_key": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Primary Key"}, "indexes": {"anyOf": [{"items": {"items": {"type": "string"}, "type": "array"}, "type": "array"}, {"type": "null"}], "title": "Indexes"}, "foreign_key_constraints": {"items": {"$ref": "#/components/schemas/ForeignKeyConstraintBase"}, "type": "array", "title": "Foreign Key Constraints"}, "column_properties": {"additionalProperties": {"$ref": "#/components/schemas/ColumnProperties"}, "type": "object", "title": "Column Properties"}}, "type": "object", "required": ["name", "columns", "sql_column_types"], "title": "TableMetaInfoBase"}, "TablePostProcessing": {"properties": {"target_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Target Table"}, "transforms": {"items": {"oneOf": [{"$ref": "#/components/schemas/EditColumns"}, {"$ref": "#/components/schemas/ReselectColumns"}, {"$ref": "#/components/schemas/TableFilter"}, {"$ref": "#/components/schemas/Limit"}], "discriminator": {"propertyName": "operation", "mapping": {"edit_columns": "#/components/schemas/EditColumns", "limit": "#/components/schemas/Limit", "reselect_columns": "#/components/schemas/ReselectColumns", "table_filter": "#/components/schemas/TableFilter"}}}, "type": "array", "title": "Transforms"}}, "type": "object", "required": ["target_table", "transforms"], "title": "TablePostProcessing"}, "TableProbeBase": {"properties": {"row_count": {"type": "integer", "minimum": 0.0, "title": "Row Count"}, "inferred_types": {"additionalProperties": {"$ref": "#/components/schemas/MITMDataType"}, "type": "object", "title": "Inferred Types"}, "sample_summaries": {"additionalProperties": {"$ref": "#/components/schemas/SampleSummary"}, "type": "object", "title": "Sample Summaries"}, "table_meta": {"$ref": "#/components/schemas/TableMetaInfoBase"}, "sampled_values": {"additionalProperties": {"items": {}, "type": "array"}, "type": "object", "title": "Sampled Values"}}, "type": "object", "required": ["row_count", "inferred_types", "sample_summaries", "table_meta", "sampled_values"], "title": "TableProbeBase"}, "TableQueryResult": {"properties": {"table_info": {"anyOf": [{"$ref": "#/components/schemas/TableMetaInfoBase"}, {"type": "null"}]}, "rows": {"items": {"items": {}, "type": "array"}, "type": "array", "title": "Rows"}}, "type": "object", "required": ["table_info", "rows"], "title": "TableQueryResult"}, "TypedRawQuery": {"properties": {"dialect": {"type": "string", "title": "Dialect"}, "compiled_sql": {"type": "string", "title": "Compiled Sql"}, "columns": {"items": {"type": "string"}, "type": "array", "title": "Columns"}, "column_dtypes": {"items": {"anyOf": [{"$ref": "#/components/schemas/WrappedMITMDataType"}, {"type": "string"}]}, "type": "array", "title": "Column Dtypes"}}, "type": "object", "required": ["dialect", "compiled_sql", "columns", "column_dtypes"], "title": "TypedRawQuery"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "VirtualViewCreationRequest": {"properties": {"name": {"type": "string", "title": "Name"}, "table_creation": {"oneOf": [{"$ref": "#/components/schemas/SimpleJoin"}, {"$ref": "#/components/schemas/ExistingTable"}, {"$ref": "#/components/schemas/RawCompiled"}], "title": "Table Creation", "discriminator": {"propertyName": "operation", "mapping": {"existing": "#/components/schemas/ExistingTable", "join": "#/components/schemas/SimpleJoin", "raw": "#/components/schemas/RawCompiled"}}}, "transforms": {"anyOf": [{"items": {"oneOf": [{"$ref": "#/components/schemas/EditColumns"}, {"$ref": "#/components/schemas/ReselectColumns"}, {"$ref": "#/components/schemas/TableFilter"}, {"$ref": "#/components/schemas/Limit"}], "discriminator": {"propertyName": "operation", "mapping": {"edit_columns": "#/components/schemas/EditColumns", "limit": "#/components/schemas/Limit", "reselect_columns": "#/components/schemas/ReselectColumns", "table_filter": "#/components/schemas/TableFilter"}}}, "type": "array"}, {"type": "null"}], "title": "Transforms"}, "schema": {"type": "string", "title": "Schema", "default": "virtual"}}, "type": "object", "required": ["name", "table_creation"], "title": "VirtualViewCreationRequest"}, "VirtualViewResponse": {"properties": {"table_meta": {"$ref": "#/components/schemas/TableMetaInfoBase"}}, "type": "object", "required": ["table_meta"], "title": "VirtualViewResponse"}, "WrappedMITMDataType": {"properties": {"mitm": {"$ref": "#/components/schemas/MITMDataType"}}, "type": "object", "required": ["mitm"], "title": "WrappedMITMDataType"}}}} \ No newline at end of file diff --git a/src/services/api-schema/openapi.yaml b/src/services/api-schema/openapi.yaml index 977aae7a82913c1a2cb9d60fe65d5f6431f459d1..d6ba74d716ae8ad492d802af0cd022f8376a3263 100644 --- a/src/services/api-schema/openapi.yaml +++ b/src/services/api-schema/openapi.yaml @@ -1079,6 +1079,11 @@ components: type: object OwnedRelations: properties: + foreign: + additionalProperties: + $ref: '#/components/schemas/ForeignRelationInfo' + title: Foreign + type: object identity: additionalProperties: type: string @@ -1089,21 +1094,10 @@ components: type: string title: Inline type: object - to_many: - additionalProperties: - $ref: '#/components/schemas/ForeignRelationInfo' - title: To Many - type: object - to_one: - additionalProperties: - $ref: '#/components/schemas/ForeignRelationInfo' - title: To One - type: object required: - identity - inline - - to_one - - to_many + - foreign title: OwnedRelations type: object PostProcessing: @@ -2558,6 +2552,13 @@ paths: post: operationId: publish_mitm_export parameters: + - in: query + name: use_streaming_export + required: false + schema: + default: false + title: Use Streaming Export + type: boolean - in: cookie name: simple_session required: true diff --git a/src/services/api.ts b/src/services/api.ts index d87148df55fc050c732db3314a8c3afa2c79cbec..0ed77e60b23a85993413c3df8651e7020ac0fdb5 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -34,8 +34,8 @@ export type MitMDataTypesDict = Paths.GetMitmDataTypes.Responses.$200; export type VirtualViewCreation = Components.Schemas.VirtualViewCreationRequest; export type CompiledVirtualView = Components.Schemas.CompiledVirtualView; export type ConceptMapping = Components.Schemas.ConceptMappingInput; -export type MappingValidationResult = Components.Schemas.MappingValidationResult; -export type ValidationResult = Components.Schemas.ValidationResult; +export type MappingGroupValidationResult = Components.Schemas.MappingGroupValidationResult; +export type IndividualValidationResult = Components.Schemas.IndividualValidationResult; export type ExportRequest = Components.Schemas.ExportRequest; export type PublishedMitMResponse = Components.Schemas.PublishedMitMResponse; export type TableMetaInfoResponse = Components.Schemas.TableMetaInfoBase; @@ -70,7 +70,6 @@ export namespace Transforms { export type SimpleJoin = Components.Schemas.SimpleJoin export type SimpleSQLOperator = Components.Schemas.SimpleSQLOperator - export type CastColumn = Components.Schemas.CastColumn export type ExtractJson = Components.Schemas.ExtractJson export type AddColumn = Components.Schemas.AddColumn @@ -236,8 +235,8 @@ async function exportMitM(body: ExportRequest) { return await client.export_mitm(null, body, {responseType: "blob"}).catch(errorHandler('Error exporting MitM mapped dataset')) } -async function publishMitMExport(body: ExportRequest) { - return await client.publish_mitm_export(null, body).catch(errorHandler('Error publishing MitM mapped dataset export')) +async function publishMitMExport(body: ExportRequest, use_streaming_export: boolean) { + return await client.publish_mitm_export(toParamList({use_streaming_export: use_streaming_export}), body).catch(errorHandler('Error publishing MitM mapped dataset export')) } async function deleteMitMExport(exportID: number) { diff --git a/src/services/exportStore.ts b/src/services/exportStore.ts index d28790076aa20fadc6167a6fba9e136b32a547f5..727846e25e31c0dfb08845aa1f148a371e6cd756 100644 --- a/src/services/exportStore.ts +++ b/src/services/exportStore.ts @@ -5,8 +5,8 @@ import {DateTime} from "luxon"; export type PublishedExportEntry = { title: string, - value: number, - export_id: string, + value: number[], + export_id: number, download_url: string, share_url: string, deletion_url: string, @@ -22,8 +22,8 @@ export const useExportStore = defineStore('exports', () => { const api = useAPI() const publishedExports = ref<PublishedExportEntry[]>([] as PublishedExportEntry[]) - async function publishExport(exportRequest: ExportRequest): PublishedExportEntry | null { - const r = await api.publishMitMExport(exportRequest) + async function publishExport(exportRequest: ExportRequest, use_streaming_export:boolean): Promise<PublishedExportEntry | null> { + const r = await api.publishMitMExport(exportRequest, use_streaming_export) if (r?.data) { const apiResponse = r.data const count = publishedExports.value.length @@ -33,7 +33,8 @@ export const useExportStore = defineStore('exports', () => { export_id: apiResponse.export_id, download_url: apiResponse.url, deletion_url: apiResponse.deletion_request_url, - share_url: genUrlToVizTool(apiResponse.url) + share_url: genUrlToVizTool(apiResponse.url), + is_available: false } as PublishedExportEntry publishedExports.value.push( newEntry) @@ -55,4 +56,4 @@ export const useExportStore = defineStore('exports', () => { } return {publishedExports, publishExport, deletePublishedExport, $reset} -}, {persist: {pick: ['publishedExports']}}) +}) // {persist: {pick: ['publishedExports']}} diff --git a/src/services/mappingStore.ts b/src/services/mappingStore.ts index 3928b219078dbecd3977a86813ec4329aac8b620..30799f7de2b9a8ea7dae1be302968c55fec23573 100644 --- a/src/services/mappingStore.ts +++ b/src/services/mappingStore.ts @@ -1,6 +1,6 @@ import {defineStore} from "pinia"; import {ref} from "vue"; -import {ConceptMapping, MappingValidationResult, useAPI} from "@/services/api"; +import {ConceptMapping, MappingGroupValidationResult, useAPI} from "@/services/api"; import {saveAs} from "file-saver"; import {DateTime} from "luxon"; @@ -26,7 +26,7 @@ export const useMappingStore = defineStore('mappings', () => { } } - async function saveMapping(mapping: ConceptMapping): Promise<MappingValidationResult> { + async function saveMapping(mapping: ConceptMapping): Promise<MappingGroupValidationResult> { // to validate a new mapping, all previous mappings are resubmitted, so that dependent (foreign key) mappings are possible const r = await api.validateMappings([...currentMappings.value.map(cme => cme.mapping), mapping]) console.log("Tried to save following mapping:\n" + JSON.stringify(mapping, null, 2) + "\nValidation result was:\n" + (!!r?.data ? JSON.stringify(r.data, null, 2) : "request failed"))