From d3ee9721a8408e237d51284e536f1f23a0ed5d58 Mon Sep 17 00:00:00 2001
From: Leah Tacke genannt Unterberg <leah.tgu@pads.rwth-aachen.de>
Date: Thu, 10 Oct 2024 17:37:13 +0200
Subject: [PATCH] some edits around presets

---
 index.html                                    |   2 +-
 src/components/SetupView.vue                  |  10 +-
 src/components/StatusBar.vue                  |   2 +-
 .../subcomponents/map/PresetMenu.vue          |   4 +-
 .../subcomponents/transform/EditColumns.vue   |  16 +-
 .../subcomponents/transform/ExtractJson.vue   |   2 +-
 .../subcomponents/transform/SimpleJoin.vue    |   2 +-
 src/services/api-schema/openapi.d.ts          | 196 +++++++++---------
 src/services/api-schema/openapi.json          |   2 +-
 src/services/api-schema/openapi.yaml          |  58 +++---
 src/services/api.ts                           |   2 +-
 src/services/presetStore.ts                   |  22 +-
 12 files changed, 161 insertions(+), 157 deletions(-)

diff --git a/index.html b/index.html
index c85969d..99f2fdc 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8" />
   <link rel="icon" href="/favicon.ico" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>MitM Extractor</title>
+  <title>MitM Exporter</title>
 </head>
 
 <body>
diff --git a/src/components/SetupView.vue b/src/components/SetupView.vue
index 23743b6..0d22e8e 100644
--- a/src/components/SetupView.vue
+++ b/src/components/SetupView.vue
@@ -4,7 +4,7 @@ import {useAPI} from '@/services/api'
 import {useMainStore} from "@/services/mainStore"
 import {reactive, ref} from "vue"
 import {useConstantsStore} from "@/services/constantsStore";
-import {PresetDefinition, usePresetStore} from "@/services/presetStore";
+import {PresetEntry, usePresetStore} from "@/services/presetStore";
 import {storeToRefs} from "pinia";
 import {rules} from "@/services/utils";
 
@@ -53,9 +53,9 @@ async function reflectAction() {
   loading.value = true
   try {
     await api.reflectDB()
-    const selectedPresetDefinition = presetToLoad.value
-    if (!!selectedPresetDefinition) {
-      const validations = await presetStore.recreatePreset(selectedPresetDefinition.preset)
+    const selectedPresetEntry = presetToLoad.value
+    if (!!selectedPresetEntry) {
+      const validations = await presetStore.recreatePreset(selectedPresetEntry.preset)
     }
     await store.retrieveAndStoreDBInfo()
     await store.retrieveAndStoreVirtualDBInfo()
@@ -79,7 +79,7 @@ const steps = [
   {title: 'Reflect Database Schema', value: 3, key: 3}
 ]
 
-const presetToLoad = ref<PresetDefinition>(null)
+const presetToLoad = ref<PresetEntry>(null)
 
 function presetClicked(item) {
   if (item.key === presetToLoad.value?.key) presetToLoad.value = null
diff --git a/src/components/StatusBar.vue b/src/components/StatusBar.vue
index 3cf6450..3e54c72 100644
--- a/src/components/StatusBar.vue
+++ b/src/components/StatusBar.vue
@@ -32,7 +32,7 @@ async function onResetAction() {
   <v-app-bar border>
     <PresetMenu></PresetMenu>
 
-    <v-app-bar-title>MitM Extractor</v-app-bar-title>
+    <v-app-bar-title>MitM Exporter</v-app-bar-title>
 
     <v-select class="pa-2 align-self-center" :items="mitms" v-model="selectedMitM" variant="plain" hide-details>
     </v-select>
diff --git a/src/components/subcomponents/map/PresetMenu.vue b/src/components/subcomponents/map/PresetMenu.vue
index 645864d..a1d0f7e 100644
--- a/src/components/subcomponents/map/PresetMenu.vue
+++ b/src/components/subcomponents/map/PresetMenu.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import {ref} from "vue";
-import {PresetContents, usePresetStore} from "@/services/presetStore";
+import {PresetDefinition, usePresetStore} from "@/services/presetStore";
 import {saveAs} from "file-saver";
 import {storeToRefs} from "pinia";
 import {useSelectionStore} from "@/services/selectionStore";
@@ -14,7 +14,7 @@ const {selectedMitM} = storeToRefs(selection)
 
 const loading = ref(false)
 
-async function loadPreset(preset: PresetContents) {
+async function loadPreset(preset: PresetDefinition) {
   loading.value = true
 
   const validations = await presetStore.recreatePreset(preset)
diff --git a/src/components/subcomponents/transform/EditColumns.vue b/src/components/subcomponents/transform/EditColumns.vue
index 9e287d9..9722f33 100644
--- a/src/components/subcomponents/transform/EditColumns.vue
+++ b/src/components/subcomponents/transform/EditColumns.vue
@@ -82,7 +82,7 @@ function resetAll() {
 
 function createTransforms(): Transforms.Transform[] {
 
-  const additions = []
+  const additions = {0: []}
   const transforms = {} as { [k: string]: object }
   const renames = {} as { [k: string]: string }
   const selection = []
@@ -95,13 +95,13 @@ function createTransforms(): Transforms.Transform[] {
     //  targetType = {mitm: targetType.substring("mitm.".length)}
 
     if (item.isArtificial) {
-      additions.push([0, // the index does not actually matter due to the reselect transform after
-        {
-          col_name: item.name,
-          value: `"${item.rawValue}"`,
-          target_type: targetType,
-          operation: "add_column"
-        } as Transforms.AddColumn])
+      // the index does not actually matter due to the reselect transform after
+      additions[0].push({
+        col_name: item.name,
+        value: `"${item.rawValue}"`,
+        target_type: targetType,
+        operation: "add_column"
+      } as Transforms.AddColumn)
       selection.push(item.name)
     } else {
       if (!!targetType)
diff --git a/src/components/subcomponents/transform/ExtractJson.vue b/src/components/subcomponents/transform/ExtractJson.vue
index 6e96384..51edb2c 100644
--- a/src/components/subcomponents/transform/ExtractJson.vue
+++ b/src/components/subcomponents/transform/ExtractJson.vue
@@ -69,7 +69,7 @@ function createTransforms(): Transforms.Transform[] {
         attributes[c] = path.split(".")// .slice(1) // remove prefix
     })
     return [{
-      additions: [[0, {attributes, json_col: baseCol.name, operation: "extract_json"}]], operation: "edit_columns"
+      additions: {0: [{attributes, json_col: baseCol.name, operation: "extract_json"}]}, operation: "edit_columns"
     } as Transforms.EditColumns]
   }
 }
diff --git a/src/components/subcomponents/transform/SimpleJoin.vue b/src/components/subcomponents/transform/SimpleJoin.vue
index b88d015..1599b74 100644
--- a/src/components/subcomponents/transform/SimpleJoin.vue
+++ b/src/components/subcomponents/transform/SimpleJoin.vue
@@ -41,7 +41,7 @@ watch(rightCols, () => selection.right = rightCols.value ?? [], {deep: false})
 watchEffect(() => {
   const lt = !!leftTable.value
   const rt = !!rightTable.value
-  const matchingOn = sameLengthOn()
+  const matchingOn = !!sameLengthOn()
   isValid.value = lt && rt && matchingOn
 })
 
diff --git a/src/services/api-schema/openapi.d.ts b/src/services/api-schema/openapi.d.ts
index 471955b..de72a2b 100644
--- a/src/services/api-schema/openapi.d.ts
+++ b/src/services/api-schema/openapi.d.ts
@@ -1,6 +1,3 @@
-Need to install the following packages:
-openapicmd@2.6.1
-Ok to proceed? (y) 
 import type {
   OpenAPIClient,
   Parameters,
@@ -384,27 +381,27 @@ declare namespace Components {
             /**
              * Max
              */
-            max: string; // date-time
+            max?: /* Max */ string /* date-time */ | null;
             /**
              * Mean
              */
-            mean: string; // date-time
+            mean?: /* Mean */ string /* date-time */ | null;
             /**
              * Min
              */
-            min: string; // date-time
+            min?: /* Min */ string /* date-time */ | null;
             /**
              * Percentile 25
              */
-            percentile_25: string; // date-time
+            percentile_25?: /* Percentile 25 */ string /* date-time */ | null;
             /**
              * Percentile 50
              */
-            percentile_50: string; // date-time
+            percentile_50?: /* Percentile 50 */ string /* date-time */ | null;
             /**
              * Percentile 75
              */
-            percentile_75: string; // date-time
+            percentile_75?: /* Percentile 75 */ string /* date-time */ | null;
         }
         /**
          * ERVariant
@@ -417,7 +414,9 @@ declare namespace Components {
             /**
              * Additions
              */
-            additions?: any[][];
+            additions?: {
+                [name: string]: (/* AddColumn */ AddColumn | /* ExtractJson */ ExtractJson)[];
+            };
             /**
              * Drops
              */
@@ -958,7 +957,7 @@ declare namespace Components {
         /**
          * SimpleSQLOperator
          */
-        export type SimpleSQLOperator = "ilike" | "like" | "=" | ">=" | ">" | "<=" | "<";
+        export type SimpleSQLOperator = "ilike" | "like" | "=" | ">=" | ">" | "<=" | "<" | "in" | "notin";
         /**
          * SimpleWhere
          */
@@ -1386,7 +1385,8 @@ declare namespace Paths {
         }
         export type RequestBody = /* ExportRequest */ Components.Schemas.ExportRequest;
         namespace Responses {
-            export type $200 = any;
+            export interface $200 {
+            }
             export type $422 = /* HTTPValidationError */ Components.Schemas.HTTPValidationError;
         }
     }
@@ -2088,7 +2088,7 @@ export interface OperationMethods {
   'root'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.Root.Responses.$200>
   /**
    * get_active_sessions - Get Active Sessions
@@ -2096,7 +2096,7 @@ export interface OperationMethods {
   'get_active_sessions'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetActiveSessions.Responses.$200>
   /**
    * clear_exports - Clear Exports
@@ -2104,7 +2104,7 @@ export interface OperationMethods {
   'clear_exports'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ClearExports.Responses.$200>
   /**
    * clear_sessions - Clear Sessions
@@ -2112,7 +2112,7 @@ export interface OperationMethods {
   'clear_sessions'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ClearSessions.Responses.$200>
   /**
    * get_compiled_virtual_view - Get Compiled Virtual View
@@ -2120,7 +2120,7 @@ export interface OperationMethods {
   'get_compiled_virtual_view'(
     parameters?: Parameters<Paths.GetCompiledVirtualView.QueryParameters & Paths.GetCompiledVirtualView.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetCompiledVirtualView.Responses.$200>
   /**
    * get_compiled_virtual_views - Get Compiled Virtual Views
@@ -2128,7 +2128,7 @@ export interface OperationMethods {
   'get_compiled_virtual_views'(
     parameters?: Parameters<Paths.GetCompiledVirtualViews.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetCompiledVirtualViews.Responses.$200>
   /**
    * init_working_db - Init Working Db
@@ -2136,7 +2136,7 @@ export interface OperationMethods {
   'init_working_db'(
     parameters?: Parameters<Paths.InitWorkingDb.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.InitWorkingDb.Responses.$200>
   /**
    * mark_foreign_key - Mark Foreign Key
@@ -2144,7 +2144,7 @@ export interface OperationMethods {
   'mark_foreign_key'(
     parameters?: Parameters<Paths.MarkForeignKey.QueryParameters & Paths.MarkForeignKey.CookieParameters> | null,
     data?: Paths.MarkForeignKey.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.MarkForeignKey.Responses.$200>
   /**
    * reflect_db - Reflect Db
@@ -2152,7 +2152,7 @@ export interface OperationMethods {
   'reflect_db'(
     parameters?: Parameters<Paths.ReflectDb.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ReflectDb.Responses.$200>
   /**
    * get_virtual_view - Get Virtual View
@@ -2160,7 +2160,7 @@ export interface OperationMethods {
   'get_virtual_view'(
     parameters?: Parameters<Paths.GetVirtualView.QueryParameters & Paths.GetVirtualView.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetVirtualView.Responses.$200>
   /**
    * create_virtual_view - Create Virtual View
@@ -2168,7 +2168,7 @@ export interface OperationMethods {
   'create_virtual_view'(
     parameters?: Parameters<Paths.CreateVirtualView.QueryParameters & Paths.CreateVirtualView.CookieParameters> | null,
     data?: Paths.CreateVirtualView.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.CreateVirtualView.Responses.$200>
   /**
    * drop_virtual_view - Drop Virtual View
@@ -2176,7 +2176,7 @@ export interface OperationMethods {
   'drop_virtual_view'(
     parameters?: Parameters<Paths.DropVirtualView.QueryParameters & Paths.DropVirtualView.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.DropVirtualView.Responses.$200>
   /**
    * get_virtual_views - Get Virtual Views
@@ -2184,7 +2184,7 @@ export interface OperationMethods {
   'get_virtual_views'(
     parameters?: Parameters<Paths.GetVirtualViews.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetVirtualViews.Responses.$200>
   /**
    * create_virtual_views_batch - Create Virtual Views Batch
@@ -2192,7 +2192,7 @@ export interface OperationMethods {
   'create_virtual_views_batch'(
     parameters?: Parameters<Paths.CreateVirtualViewsBatch.QueryParameters & Paths.CreateVirtualViewsBatch.CookieParameters> | null,
     data?: Paths.CreateVirtualViewsBatch.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.CreateVirtualViewsBatch.Responses.$200>
   /**
    * make_erd - Make Erd
@@ -2200,7 +2200,7 @@ export interface OperationMethods {
   'make_erd'(
     parameters?: Parameters<Paths.MakeErd.QueryParameters & Paths.MakeErd.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.MakeErd.Responses.$200>
   /**
    * make_filtered_erd - Make Filtered Erd
@@ -2208,7 +2208,7 @@ export interface OperationMethods {
   'make_filtered_erd'(
     parameters?: Parameters<Paths.MakeFilteredErd.QueryParameters & Paths.MakeFilteredErd.CookieParameters> | null,
     data?: Paths.MakeFilteredErd.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.MakeFilteredErd.Responses.$200>
   /**
    * query_table - Query Table
@@ -2216,7 +2216,7 @@ export interface OperationMethods {
   'query_table'(
     parameters?: Parameters<Paths.QueryTable.QueryParameters & Paths.QueryTable.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.QueryTable.Responses.$200>
   /**
    * query_unique_values - Query Unique Values
@@ -2224,7 +2224,7 @@ export interface OperationMethods {
   'query_unique_values'(
     parameters?: Parameters<Paths.QueryUniqueValues.QueryParameters & Paths.QueryUniqueValues.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.QueryUniqueValues.Responses.$200>
   /**
    * raw_query - Raw Query
@@ -2232,7 +2232,7 @@ export interface OperationMethods {
   'raw_query'(
     parameters?: Parameters<Paths.RawQuery.CookieParameters> | null,
     data?: Paths.RawQuery.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.RawQuery.Responses.$200>
   /**
    * get_mitm_data_types - Get Mitm Data Types
@@ -2240,7 +2240,7 @@ export interface OperationMethods {
   'get_mitm_data_types'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetMitmDataTypes.Responses.$200>
   /**
    * get_mitm_definition - Get Mitm Definition
@@ -2248,7 +2248,7 @@ export interface OperationMethods {
   'get_mitm_definition'(
     parameters?: Parameters<Paths.GetMitmDefinition.QueryParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetMitmDefinition.Responses.$200>
   /**
    * get_mitms - Get Mitms
@@ -2256,7 +2256,7 @@ export interface OperationMethods {
   'get_mitms'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetMitms.Responses.$200>
   /**
    * delete_mitm_export - Delete Mitm Export
@@ -2264,7 +2264,7 @@ export interface OperationMethods {
   'delete_mitm_export'(
     parameters?: Parameters<Paths.DeleteMitmExport.QueryParameters & Paths.DeleteMitmExport.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.DeleteMitmExport.Responses.$200>
   /**
    * delete_mitm_exports - Delete Mitm Exports
@@ -2272,7 +2272,7 @@ export interface OperationMethods {
   'delete_mitm_exports'(
     parameters?: Parameters<Paths.DeleteMitmExports.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.DeleteMitmExports.Responses.$200>
   /**
    * export_mitm - Export Mitm
@@ -2280,7 +2280,7 @@ export interface OperationMethods {
   'export_mitm'(
     parameters?: Parameters<Paths.ExportMitm.CookieParameters> | null,
     data?: Paths.ExportMitm.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ExportMitm.Responses.$200>
   /**
    * publish_mitm_export - Publish Mitm Export
@@ -2288,7 +2288,7 @@ export interface OperationMethods {
   'publish_mitm_export'(
     parameters?: Parameters<Paths.PublishMitmExport.CookieParameters> | null,
     data?: Paths.PublishMitmExport.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.PublishMitmExport.Responses.$200>
   /**
    * validate_concept_mapping - Validate Concept Mapping
@@ -2296,7 +2296,7 @@ export interface OperationMethods {
   'validate_concept_mapping'(
     parameters?: Parameters<Paths.ValidateConceptMapping.QueryParameters & Paths.ValidateConceptMapping.CookieParameters> | null,
     data?: Paths.ValidateConceptMapping.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ValidateConceptMapping.Responses.$200>
   /**
    * get_db_schema - Get Db Schema
@@ -2304,7 +2304,7 @@ export interface OperationMethods {
   'get_db_schema'(
     parameters?: Parameters<Paths.GetDbSchema.QueryParameters & Paths.GetDbSchema.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetDbSchema.Responses.$200>
   /**
    * filter_db_schema - Filter Db Schema
@@ -2312,7 +2312,7 @@ export interface OperationMethods {
   'filter_db_schema'(
     parameters?: Parameters<Paths.FilterDbSchema.QueryParameters & Paths.FilterDbSchema.CookieParameters> | null,
     data?: Paths.FilterDbSchema.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.FilterDbSchema.Responses.$200>
   /**
    * probe_db - Probe Db
@@ -2320,7 +2320,7 @@ export interface OperationMethods {
   'probe_db'(
     parameters?: Parameters<Paths.ProbeDb.QueryParameters & Paths.ProbeDb.CookieParameters> | null,
     data?: Paths.ProbeDb.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ProbeDb.Responses.$200>
   /**
    * probe_table - Probe Table
@@ -2328,7 +2328,7 @@ export interface OperationMethods {
   'probe_table'(
     parameters?: Parameters<Paths.ProbeTable.QueryParameters & Paths.ProbeTable.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ProbeTable.Responses.$200>
   /**
    * query_db_schema - Query Db Schema
@@ -2336,7 +2336,7 @@ export interface OperationMethods {
   'query_db_schema'(
     parameters?: Parameters<Paths.QueryDbSchema.QueryParameters & Paths.QueryDbSchema.CookieParameters> | null,
     data?: Paths.QueryDbSchema.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.QueryDbSchema.Responses.$200>
   /**
    * suggest_joins - Suggest Joins
@@ -2344,7 +2344,7 @@ export interface OperationMethods {
   'suggest_joins'(
     parameters?: Parameters<Paths.SuggestJoins.QueryParameters & Paths.SuggestJoins.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.SuggestJoins.Responses.$200>
   /**
    * get_table_schema - Get Table Schema
@@ -2352,7 +2352,7 @@ export interface OperationMethods {
   'get_table_schema'(
     parameters?: Parameters<Paths.GetTableSchema.QueryParameters & Paths.GetTableSchema.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetTableSchema.Responses.$200>
   /**
    * connect_db - Connect Db
@@ -2360,7 +2360,7 @@ export interface OperationMethods {
   'connect_db'(
     parameters?: Parameters<Paths.ConnectDb.CookieParameters> | null,
     data?: Paths.ConnectDb.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.ConnectDb.Responses.$200>
   /**
    * get_session - Get Session
@@ -2368,7 +2368,7 @@ export interface OperationMethods {
   'get_session'(
     parameters?: Parameters<Paths.GetSession.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.GetSession.Responses.$200>
   /**
    * keep_alive - Keep Alive
@@ -2376,7 +2376,7 @@ export interface OperationMethods {
   'keep_alive'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.KeepAlive.Responses.$200>
   /**
    * start_session - Start Session
@@ -2384,7 +2384,7 @@ export interface OperationMethods {
   'start_session'(
     parameters?: Parameters<UnknownParamsObject> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.StartSession.Responses.$200>
   /**
    * stop_session - Stop Session
@@ -2392,7 +2392,7 @@ export interface OperationMethods {
   'stop_session'(
     parameters?: Parameters<Paths.StopSession.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.StopSession.Responses.$200>
   /**
    * test_db_conn - Test Db Conn
@@ -2400,7 +2400,7 @@ export interface OperationMethods {
   'test_db_conn'(
     parameters?: Parameters<Paths.TestDbConn.CookieParameters> | null,
     data?: any,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.TestDbConn.Responses.$200>
   /**
    * upload_db - Upload Db
@@ -2408,7 +2408,7 @@ export interface OperationMethods {
   'upload_db'(
     parameters?: Parameters<Paths.UploadDb.CookieParameters> | null,
     data?: Paths.UploadDb.RequestBody,
-    config?: AxiosRequestConfig  
+    config?: AxiosRequestConfig
   ): OperationResponse<Paths.UploadDb.Responses.$200>
 }
 
@@ -2420,7 +2420,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.Root.Responses.$200>
   }
   ['/admin/active-sessions']: {
@@ -2430,7 +2430,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetActiveSessions.Responses.$200>
   }
   ['/admin/clear-exports']: {
@@ -2440,7 +2440,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ClearExports.Responses.$200>
   }
   ['/admin/clear-sessions']: {
@@ -2450,7 +2450,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ClearSessions.Responses.$200>
   }
   ['/control/compiled-virtual-view']: {
@@ -2460,7 +2460,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetCompiledVirtualView.QueryParameters & Paths.GetCompiledVirtualView.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetCompiledVirtualView.Responses.$200>
   }
   ['/control/compiled-virtual-views']: {
@@ -2470,7 +2470,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetCompiledVirtualViews.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetCompiledVirtualViews.Responses.$200>
   }
   ['/control/init-working-db']: {
@@ -2480,7 +2480,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.InitWorkingDb.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.InitWorkingDb.Responses.$200>
   }
   ['/control/mark-foreign-key']: {
@@ -2490,7 +2490,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.MarkForeignKey.QueryParameters & Paths.MarkForeignKey.CookieParameters> | null,
       data?: Paths.MarkForeignKey.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.MarkForeignKey.Responses.$200>
   }
   ['/control/reflect-db']: {
@@ -2500,7 +2500,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ReflectDb.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ReflectDb.Responses.$200>
   }
   ['/control/virtual-view']: {
@@ -2510,7 +2510,7 @@ export interface PathsDictionary {
     'delete'(
       parameters?: Parameters<Paths.DropVirtualView.QueryParameters & Paths.DropVirtualView.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.DropVirtualView.Responses.$200>
     /**
      * get_virtual_view - Get Virtual View
@@ -2518,7 +2518,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetVirtualView.QueryParameters & Paths.GetVirtualView.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetVirtualView.Responses.$200>
     /**
      * create_virtual_view - Create Virtual View
@@ -2526,7 +2526,7 @@ export interface PathsDictionary {
     'put'(
       parameters?: Parameters<Paths.CreateVirtualView.QueryParameters & Paths.CreateVirtualView.CookieParameters> | null,
       data?: Paths.CreateVirtualView.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.CreateVirtualView.Responses.$200>
   }
   ['/control/virtual-views']: {
@@ -2536,7 +2536,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetVirtualViews.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetVirtualViews.Responses.$200>
   }
   ['/control/virtual-views-batch']: {
@@ -2546,7 +2546,7 @@ export interface PathsDictionary {
     'put'(
       parameters?: Parameters<Paths.CreateVirtualViewsBatch.QueryParameters & Paths.CreateVirtualViewsBatch.CookieParameters> | null,
       data?: Paths.CreateVirtualViewsBatch.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.CreateVirtualViewsBatch.Responses.$200>
   }
   ['/data/er-diagram']: {
@@ -2556,7 +2556,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.MakeErd.QueryParameters & Paths.MakeErd.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.MakeErd.Responses.$200>
   }
   ['/data/filtered-er-diagram']: {
@@ -2566,7 +2566,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.MakeFilteredErd.QueryParameters & Paths.MakeFilteredErd.CookieParameters> | null,
       data?: Paths.MakeFilteredErd.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.MakeFilteredErd.Responses.$200>
   }
   ['/data/query-table']: {
@@ -2576,7 +2576,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.QueryTable.QueryParameters & Paths.QueryTable.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.QueryTable.Responses.$200>
   }
   ['/data/query-unique-values']: {
@@ -2586,7 +2586,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.QueryUniqueValues.QueryParameters & Paths.QueryUniqueValues.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.QueryUniqueValues.Responses.$200>
   }
   ['/data/raw-query']: {
@@ -2596,7 +2596,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.RawQuery.CookieParameters> | null,
       data?: Paths.RawQuery.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.RawQuery.Responses.$200>
   }
   ['/definitions/mitm-data-types']: {
@@ -2606,7 +2606,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetMitmDataTypes.Responses.$200>
   }
   ['/definitions/mitm-definition']: {
@@ -2616,7 +2616,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetMitmDefinition.QueryParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetMitmDefinition.Responses.$200>
   }
   ['/definitions/mitms']: {
@@ -2626,7 +2626,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetMitms.Responses.$200>
   }
   ['/mitm/delete-mitm-export']: {
@@ -2636,7 +2636,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.DeleteMitmExport.QueryParameters & Paths.DeleteMitmExport.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.DeleteMitmExport.Responses.$200>
   }
   ['/mitm/delete-mitm-exports']: {
@@ -2646,7 +2646,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.DeleteMitmExports.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.DeleteMitmExports.Responses.$200>
   }
   ['/mitm/export-mitm']: {
@@ -2656,7 +2656,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ExportMitm.CookieParameters> | null,
       data?: Paths.ExportMitm.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ExportMitm.Responses.$200>
   }
   ['/mitm/publish-mitm-export']: {
@@ -2666,7 +2666,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.PublishMitmExport.CookieParameters> | null,
       data?: Paths.PublishMitmExport.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.PublishMitmExport.Responses.$200>
   }
   ['/mitm/validate-concept-mapping']: {
@@ -2676,7 +2676,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ValidateConceptMapping.QueryParameters & Paths.ValidateConceptMapping.CookieParameters> | null,
       data?: Paths.ValidateConceptMapping.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ValidateConceptMapping.Responses.$200>
   }
   ['/reflection/db-schema']: {
@@ -2686,7 +2686,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetDbSchema.QueryParameters & Paths.GetDbSchema.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetDbSchema.Responses.$200>
   }
   ['/reflection/filter-db-schema']: {
@@ -2696,7 +2696,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.FilterDbSchema.QueryParameters & Paths.FilterDbSchema.CookieParameters> | null,
       data?: Paths.FilterDbSchema.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.FilterDbSchema.Responses.$200>
   }
   ['/reflection/probe-db']: {
@@ -2706,7 +2706,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ProbeDb.QueryParameters & Paths.ProbeDb.CookieParameters> | null,
       data?: Paths.ProbeDb.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ProbeDb.Responses.$200>
   }
   ['/reflection/probe-table']: {
@@ -2716,7 +2716,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ProbeTable.QueryParameters & Paths.ProbeTable.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ProbeTable.Responses.$200>
   }
   ['/reflection/query-db-schema']: {
@@ -2726,7 +2726,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.QueryDbSchema.QueryParameters & Paths.QueryDbSchema.CookieParameters> | null,
       data?: Paths.QueryDbSchema.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.QueryDbSchema.Responses.$200>
   }
   ['/reflection/suggest-joins']: {
@@ -2736,7 +2736,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.SuggestJoins.QueryParameters & Paths.SuggestJoins.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.SuggestJoins.Responses.$200>
   }
   ['/reflection/table-schema']: {
@@ -2746,7 +2746,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetTableSchema.QueryParameters & Paths.GetTableSchema.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetTableSchema.Responses.$200>
   }
   ['/session/connect-db']: {
@@ -2756,7 +2756,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.ConnectDb.CookieParameters> | null,
       data?: Paths.ConnectDb.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.ConnectDb.Responses.$200>
   }
   ['/session/get-session']: {
@@ -2766,7 +2766,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.GetSession.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.GetSession.Responses.$200>
   }
   ['/session/keep-alive']: {
@@ -2776,7 +2776,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.KeepAlive.Responses.$200>
   }
   ['/session/start-session']: {
@@ -2786,7 +2786,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<UnknownParamsObject> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.StartSession.Responses.$200>
   }
   ['/session/stop-session']: {
@@ -2796,7 +2796,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.StopSession.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.StopSession.Responses.$200>
   }
   ['/session/test-db-conn']: {
@@ -2806,7 +2806,7 @@ export interface PathsDictionary {
     'get'(
       parameters?: Parameters<Paths.TestDbConn.CookieParameters> | null,
       data?: any,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.TestDbConn.Responses.$200>
   }
   ['/session/upload-db']: {
@@ -2816,7 +2816,7 @@ export interface PathsDictionary {
     'post'(
       parameters?: Parameters<Paths.UploadDb.CookieParameters> | null,
       data?: Paths.UploadDb.RequestBody,
-      config?: AxiosRequestConfig  
+      config?: AxiosRequestConfig
     ): OperationResponse<Paths.UploadDb.Responses.$200>
   }
 }
@@ -2831,8 +2831,8 @@ export type CastColumn = Components.Schemas.CastColumn;
 export type CategoricalSummaryStatistics = Components.Schemas.CategoricalSummaryStatistics;
 export type ColumnProperties = Components.Schemas.ColumnProperties;
 export type CompiledVirtualView = Components.Schemas.CompiledVirtualView;
-export type ConceptMapping-Input = Components.Schemas.ConceptMappingInput;
-export type ConceptMapping-Output = Components.Schemas.ConceptMappingOutput;
+export type ConceptMapping_Input = Components.Schemas.ConceptMappingInput;
+export type ConceptMapping_Output = Components.Schemas.ConceptMappingOutput;
 export type ConceptNature = Components.Schemas.ConceptNature;
 export type ConceptProperties = Components.Schemas.ConceptProperties;
 export type DBConnTestResponse = Components.Schemas.DBConnTestResponse;
@@ -2850,8 +2850,8 @@ export type ExtractJson = Components.Schemas.ExtractJson;
 export type FKCreationResponse = Components.Schemas.FKCreationResponse;
 export type ForeignKeyConstraintBase = Components.Schemas.ForeignKeyConstraintBase;
 export type ForeignKeyConstraintRequest = Components.Schemas.ForeignKeyConstraintRequest;
-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 HTTPValidationError = Components.Schemas.HTTPValidationError;
 export type KeepAliveResponse = Components.Schemas.KeepAliveResponse;
 export type Limit = Components.Schemas.Limit;
diff --git a/src/services/api-schema/openapi.json b/src/services/api-schema/openapi.json
index 5e1e161..6e905c8 100644
--- a/src/services/api-schema/openapi.json
+++ b/src/services/api-schema/openapi.json
@@ -1 +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-mapping": {"post": {"tags": ["mitm"], "summary": "Validate Concept Mapping", "operationId": "validate_concept_mapping", "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": {"$ref": "#/components/schemas/ConceptMapping-Input"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingValidationResult"}}}}, "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", "content": {"application/json": {"schema": {}}}}, "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"}, "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"}, "ConceptNature": {"type": "string", "enum": ["main", "sub", "weak"], "title": "ConceptNature"}, "ConceptProperties": {"properties": {"nature": {"$ref": "#/components/schemas/ConceptNature"}, "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": {"type": "string", "format": "date-time", "title": "Mean"}, "min": {"type": "string", "format": "date-time", "title": "Min"}, "max": {"type": "string", "format": "date-time", "title": "Max"}, "percentile_25": {"type": "string", "format": "date-time", "title": "Percentile 25"}, "percentile_50": {"type": "string", "format": "date-time", "title": "Percentile 50"}, "percentile_75": {"type": "string", "format": "date-time", "title": "Percentile 75"}}, "type": "object", "required": ["count", "mean", "min", "max", "percentile_25", "percentile_50", "percentile_75"], "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": {"items": {"prefixItems": [{"type": "integer"}, {"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", "maxItems": 2, "minItems": 2}, "type": "array", "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"}, "referred_columns": {"items": {"type": "string"}, "type": "array", "title": "Referred Columns"}}, "type": "object", "required": ["fk_columns", "referred_table", "referred_columns"], "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"}, "referred_columns": {"items": {"type": "string"}, "type": "array", "title": "Referred Columns"}}, "type": "object", "required": ["fk_columns", "referred_table", "referred_columns"], "title": "ForeignRelation"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "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"}, "MappingValidationResult": {"properties": {"evaluated_mapping": {"anyOf": [{"$ref": "#/components/schemas/ConceptMapping-Output"}, {"type": "null"}]}, "validation_result": {"$ref": "#/components/schemas/ValidationResult"}}, "type": "object", "required": ["validation_result"], "title": "MappingValidationResult"}, "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": {"additionalProperties": {"type": "string"}, "type": "object"}, "type": "object", "title": "To One"}, "to_many": {"additionalProperties": {"additionalProperties": {"type": "string"}, "type": "object"}, "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", "=", ">=", ">", "<=", "<"], "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"}, "ValidationResult": {"properties": {"is_valid": {"type": "boolean", "title": "Is Valid", "default": true}, "violations": {"items": {"type": "string"}, "type": "array", "title": "Violations"}}, "type": "object", "title": "ValidationResult"}, "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-mapping": {"post": {"tags": ["mitm"], "summary": "Validate Concept Mapping", "operationId": "validate_concept_mapping", "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": {"$ref": "#/components/schemas/ConceptMapping-Input"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MappingValidationResult"}}}}, "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"}, "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"}, "ConceptNature": {"type": "string", "enum": ["main", "sub", "weak"], "title": "ConceptNature"}, "ConceptProperties": {"properties": {"nature": {"$ref": "#/components/schemas/ConceptNature"}, "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"}, "referred_columns": {"items": {"type": "string"}, "type": "array", "title": "Referred Columns"}}, "type": "object", "required": ["fk_columns", "referred_table", "referred_columns"], "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"}, "referred_columns": {"items": {"type": "string"}, "type": "array", "title": "Referred Columns"}}, "type": "object", "required": ["fk_columns", "referred_table", "referred_columns"], "title": "ForeignRelation"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "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"}, "MappingValidationResult": {"properties": {"evaluated_mapping": {"anyOf": [{"$ref": "#/components/schemas/ConceptMapping-Output"}, {"type": "null"}]}, "validation_result": {"$ref": "#/components/schemas/ValidationResult"}}, "type": "object", "required": ["validation_result"], "title": "MappingValidationResult"}, "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": {"additionalProperties": {"type": "string"}, "type": "object"}, "type": "object", "title": "To One"}, "to_many": {"additionalProperties": {"additionalProperties": {"type": "string"}, "type": "object"}, "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"}, "ValidationResult": {"properties": {"is_valid": {"type": "boolean", "title": "Is Valid", "default": true}, "violations": {"items": {"type": "string"}, "type": "array", "title": "Violations"}}, "type": "object", "title": "ValidationResult"}, "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 f78fce4..938b2d7 100644
--- a/src/services/api-schema/openapi.yaml
+++ b/src/services/api-schema/openapi.yaml
@@ -477,37 +477,43 @@ components:
           title: Count
           type: integer
         max:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Max
-          type: string
         mean:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Mean
-          type: string
         min:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Min
-          type: string
         percentile_25:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Percentile 25
-          type: string
         percentile_50:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Percentile 50
-          type: string
         percentile_75:
-          format: date-time
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
           title: Percentile 75
-          type: string
       required:
       - count
-      - mean
-      - min
-      - max
-      - percentile_25
-      - percentile_50
-      - percentile_75
       title: DatetimeSummaryStatistics
       type: object
     ERVariant:
@@ -519,12 +525,9 @@ components:
     EditColumns:
       properties:
         additions:
-          items:
-            maxItems: 2
-            minItems: 2
-            prefixItems:
-            - type: integer
-            - discriminator:
+          additionalProperties:
+            items:
+              discriminator:
                 mapping:
                   add_column: '#/components/schemas/AddColumn'
                   extract_json: '#/components/schemas/ExtractJson'
@@ -534,7 +537,7 @@ components:
               - $ref: '#/components/schemas/ExtractJson'
             type: array
           title: Additions
-          type: array
+          type: object
         drops:
           items:
             type: string
@@ -1328,6 +1331,8 @@ components:
       - '>'
       - <=
       - <
+      - in
+      - notin
       title: SimpleSQLOperator
       type: string
     SimpleWhere:
@@ -2503,9 +2508,6 @@ paths:
         required: true
       responses:
         '200':
-          content:
-            application/json:
-              schema: {}
           description: Successful Response
         '422':
           content:
diff --git a/src/services/api.ts b/src/services/api.ts
index f2bacb4..86010d5 100644
--- a/src/services/api.ts
+++ b/src/services/api.ts
@@ -77,7 +77,7 @@ export namespace Transforms {
 
 
 const backendUrl = process.env.API_URL ?? 'http://localhost:8080' // import.meta.env?.VITE_API_URL ||
-console.log(`Using following (backend) API_URL: ${backendUrl} (ENV vars: ${process.env.API_URL} ${process.env.BASE_URL})`)
+console.log(`Using following (backend) API_URL: ${backendUrl}`)
 // const f = jsYaml.loadAll('./api-schema/openapi.yaml')
 
 const openAPIClient = new OpenAPIClientAxios({
diff --git a/src/services/presetStore.ts b/src/services/presetStore.ts
index 2050eef..4190c74 100644
--- a/src/services/presetStore.ts
+++ b/src/services/presetStore.ts
@@ -7,20 +7,20 @@ import {useMappingStore} from "@/services/mappingStore";
 
 import {hardcodedPresets} from "@/services/preset-definitions/hardcoded-presets"
 
-export type PresetContents = {
+export type PresetDefinition = {
   virtual_views: VirtualViewCreation[],
   concept_mappings: ConceptMapping[]
 }
 
-export type PresetDefinition = {
+export type PresetEntry = {
   props: { title: string, [key: string]: any },
   name: string,
   key: string,
   db_url?: string,
-  preset: PresetContents,
+  preset: PresetDefinition,
 }
 
-const initialPresets: PresetDefinition[] = [...hardcodedPresets]
+const initialPresets: PresetEntry[] = [...hardcodedPresets]
 
 export const usePresetStore = defineStore('presets', () => {
 
@@ -29,13 +29,13 @@ export const usePresetStore = defineStore('presets', () => {
   const mapping = useMappingStore()
   const api = useAPI()
 
-  const presets = shallowRef<PresetDefinition[]>([...initialPresets])
+  const presets = shallowRef<PresetEntry[]>([...initialPresets])
 
-  async function addPreset(preset: PresetDefinition) {
+  async function addPreset(preset: PresetEntry) {
     presets.value.push(preset)
   }
 
-  async function recreatePreset(preset: PresetContents) {
+  async function recreatePreset(preset: PresetDefinition) {
 
     console.log("Recreating preset:\n", preset)
 
@@ -69,7 +69,7 @@ export const usePresetStore = defineStore('presets', () => {
 
     const concept_mappings = [...Object.values(mapping.currentMappings)]
 
-    const presetEntry: PresetDefinition = {
+    const presetEntry: PresetEntry = {
       props: {title: name.toLocaleUpperCase(), value: name},
       name: name,
       key: name.toLowerCase(),
@@ -77,12 +77,14 @@ export const usePresetStore = defineStore('presets', () => {
       preset: {virtual_views, concept_mappings}
     }
 
-    presets.value = [... presets.value, presetEntry]
+    presets.value = [...presets.value, presetEntry]
 
     return presetEntry
   }
 
-  function $reset() {presets.value = [...initialPresets]}
+  function $reset() {
+    presets.value = [...initialPresets]
+  }
 
   return {presets, addPreset, recreatePreset, saveCurrentStateAsPreset, $reset}
 })
-- 
GitLab