diff --git a/app/db/migration/__init__.py b/app/db/migration/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/app/db/migration/migrate_schema.py b/app/db/migration/migrate_schema.py
deleted file mode 100644
index c756dd11520516707612ff8dfb6cf7b61bba9c09..0000000000000000000000000000000000000000
--- a/app/db/migration/migrate_schema.py
+++ /dev/null
@@ -1,112 +0,0 @@
-import os
-import tempfile
-from alembic.config import Config
-from alembic import command
-from sqlalchemy import create_engine
-import sqlalchemy as sa
-
-DATABASE_URL = "postgresql://user:password@host:port/dbname"
-
-def run_dynamic_migration(sa_url: sa.URL,target_metadata: sa.MetaData):
-    # Create a temporary directory to hold a minimal Alembic environment
-    with tempfile.TemporaryDirectory() as temp_dir:
-        # Create a temporary alembic.ini file
-        alembic_ini_path = os.path.join(temp_dir, "alembic.ini")
-        with open(alembic_ini_path, "w") as f:
-            f.write(f"""
-[alembic]
-script_location = {temp_dir}/migrations
-sqlalchemy.url = {sa_url.render_as_string(hide_password=False)}
-
-[loggers]
-keys = root,sqlalchemy,alembic
-
-[handlers]
-keys = console
-
-[formatters]
-keys = generic
-
-[logger_root]
-level = WARN
-handlers = console
-
-[logger_sqlalchemy]
-level = WARN
-handlers =
-qualname = sqlalchemy.engine
-propagate = 0
-
-[logger_alembic]
-level = INFO
-handlers =
-qualname = alembic
-propagate = 0
-""")
-        # Set up a minimal migrations directory with an env.py
-        migrations_dir = os.path.join(temp_dir, "migrations")
-        os.makedirs(migrations_dir, exist_ok=True)
-        versions_dir = os.path.join(migrations_dir, "versions")
-        os.makedirs(versions_dir, exist_ok=True)
-
-        # Create an env.py file that tells Alembic about your target metadata
-        env_py_path = os.path.join(migrations_dir, "env.py")
-        with open(env_py_path, "w") as f:
-            f.write(f"""
-from alembic import context
-from sqlalchemy import engine_from_config, pool
-from logging.config import fileConfig
-import sys
-import os
-sys.path.insert(0, os.getcwd())
-
-# Import your target metadata (adjust the import as necessary)
-from app.db.models import SQLModel
-target_metadata = SQLModel.metadata
-# this is the Alembic Config object, which provides
-# access to the values within the .ini file in use.
-config = context.config
-
-# Interpret the config file for Python logging.
-fileConfig(config.config_file_name)
-
-target_metadata = target_metadata
-
-def run_migrations_offline():
-    url = config.get_main_option("sqlalchemy.url")
-    context.configure(url=url, target_metadata=target_metadata, literal_binds=True)
-    with context.begin_transaction():
-        context.run_migrations()
-
-def run_migrations_online():
-    connectable = engine_from_config(
-        config.get_section(config.config_ini_section),
-        prefix="sqlalchemy.",
-        poolclass=pool.NullPool)
-    with connectable.connect() as connection:
-        context.configure(connection=connection, target_metadata=target_metadata)
-        with context.begin_transaction():
-            context.run_migrations()
-
-if context.is_offline_mode():
-    run_migrations_offline()
-else:
-    run_migrations_online()
-""")
-        # Create an Alembic configuration object
-        alembic_cfg = Config(alembic_ini_path)
-        # Set the target metadata programmatically
-        alembic_cfg.attributes['target_metadata'] = target_metadata
-
-        # Autogenerate a new revision (i.e. compute the diff)
-        # Note: This creates a new revision file under the temporary migrations/versions folder.
-        command.revision(alembic_cfg, message="Dynamic migration", autogenerate=True)
-
-        # Apply the migration to upgrade the DB schema to head (i.e. the newly generated revision)
-        command.upgrade(alembic_cfg, "head")
-
-# Call the function at runtime when needed
-if __name__ == "__main__":
-    engine = create_engine(DATABASE_URL)
-    # Optionally, you might verify connectivity here.
-    run_dynamic_migration()
diff --git a/app/db/models/__init__.py b/app/db/models/__init__.py
index ae5475c6b7d5903f51241bc13cc49675a55b6b35..df5de2685989dbb1480c95ad0e80cae7db1eec32 100644
--- a/app/db/models/__init__.py
+++ b/app/db/models/__init__.py
@@ -1,9 +1,10 @@
 from .common import FromPydanticModelsMixin, APPLICATION_DB_SCHEMA
-from .mapped_source import MappedDB, MappedDBSource, MappedDBPull, ListMappedDBSource, ListMappedDBPull
-from .tracked_mitm_dataset import PostTrackedMitMDataset, TrackedMitMDataset,  GetTrackedMitMDataset, \
-    GetExternalMitMDataset, GetMappedMitMDataset, PostMappedMitMDataset, \
-    PostExternalMitMDataset, PostLocalMitMDataset, \
-    PatchExternalMitMDataset, PatchMappedMitMDataset, PatchLocalMitMDataset, PatchTrackedMitMDataset, \
-    ListExternalMitMDataset, \
-    ListMappedMitMDataset, ListTrackedMitMDataset, ListLocalMitMDataset, GetLocalMitMDataset
-from .tracked_visualization import TrackedVisualization, ListTrackedVisualization
+#from .mapped_source import MappedDBSource, MappedDBPull, ListMappedDBSource, ListMappedDBPull
+#from .tracked_mitm_dataset import PostTrackedMitMDataset, TrackedMitMDataset,  GetTrackedMitMDataset, \
+#    GetExternalMitMDataset, GetMappedMitMDataset, PostMappedMitMDataset, \
+#    PostExternalMitMDataset, PostLocalMitMDataset, \
+#    PatchExternalMitMDataset, PatchMappedMitMDataset, PatchLocalMitMDataset, PatchTrackedMitMDataset, \
+#    ListExternalMitMDataset, \
+#    ListMappedMitMDataset, ListTrackedMitMDataset, ListLocalMitMDataset, GetLocalMitMDataset
+#from .tracked_visualization import TrackedVisualization, ListTrackedVisualization
+from .all_models import *
\ No newline at end of file
diff --git a/app/db/models/all_models.py b/app/db/models/all_models.py
new file mode 100644
index 0000000000000000000000000000000000000000..205503ae74ec1c14e44e2f8f647185b0786ab4b0
--- /dev/null
+++ b/app/db/models/all_models.py
@@ -0,0 +1,395 @@
+# from __future__ import annotations
+
+from datetime import datetime
+from typing import Literal, Self, Any, Optional
+from uuid import UUID
+
+import sqlalchemy as sa
+import sqlmodel
+from mitm_tooling.definition import MITM
+from mitm_tooling.extraction.sql.mapping import StandaloneDBMapping
+from mitm_tooling.representation.intermediate import Header
+from mitm_tooling.representation.sql import SQLRepInsertionResult
+from mitm_tooling.representation.sql import SchemaName
+from mitm_tooling.transformation.superset import VisualizationType
+from mitm_tooling.transformation.superset.asset_bundles import MitMDatasetIdentifierBundle
+from mitm_tooling.transformation.superset.asset_bundles import VisualizationsIdentifierBundle
+from mitm_tooling.transformation.superset.common import DBConnectionInfo
+from pydantic import AnyUrl, ConfigDict
+from pydantic import BaseModel
+from sqlmodel import SQLModel, Field, Relationship
+
+from app.db.adapters import PydanticType
+from app.db.adapters import StrType
+from .common import APPLICATION_DB_SCHEMA, IDMixin, UUIDMixin
+from .common import FromPydanticModelsMixin, ApplyPatchMixin
+
+
+class ListTrackedVisualization(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    uuid: UUID
+    tracked_mitm_dataset_id: int
+    mitm: MITM
+    viz_type: VisualizationType
+    viz_changed: datetime
+
+
+class GetTrackedVisualization(ListTrackedVisualization):
+    identifier_bundle: VisualizationsIdentifierBundle
+
+
+class TrackedVisualization(IDMixin, UUIDMixin, SQLModel, table=True):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+    __tablename__ = 'tracked_visualizations'
+    __table_args__ = (
+        sa.UniqueConstraint('tracked_mitm_dataset_id', 'viz_type'),
+        # there can only be 0-1 tracked visualizations per dataset
+        {'schema': APPLICATION_DB_SCHEMA}
+    )
+
+    tracked_mitm_dataset_id: int = Field(nullable=False,
+                                         foreign_key=f'{APPLICATION_DB_SCHEMA}.tracked_mitm_datasets.id',
+                                         ondelete='CASCADE')
+    mitm: MITM = Field()
+    viz_type: VisualizationType = Field()
+    viz_changed: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
+    identifier_bundle: VisualizationsIdentifierBundle = Field(sa_type=PydanticType.wrap(VisualizationsIdentifierBundle))
+
+    tracked_mitm_dataset: 'TrackedMitMDataset' = Relationship(back_populates='tracked_visualizations')  # , sa_relationship_kwargs=dict(foreign_keys='tracked_mitm_dataset_id')
+
+
+class ListMappedDBSource(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    uuid: UUID
+    sql_alchemy_uri: AnyUrl
+    db_mapping: StandaloneDBMapping
+    mitm_header: Header
+
+    last_pulled: datetime | None
+
+
+class GetMappedDBSource(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    uuid: UUID
+    sql_alchemy_uri: AnyUrl
+    db_mapping: StandaloneDBMapping
+    mitm_header: Header
+
+    mapped_mitm_datasets: list['ListTrackedMitMDataset']
+    pulls: list['ListMappedDBPull']
+    last_pulled: datetime | None
+
+
+class MappedDBSource(IDMixin, UUIDMixin, ApplyPatchMixin, SQLModel, table=True):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+    __tablename__ = 'mapped_db_sources'
+    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
+
+    sql_alchemy_uri: AnyUrl = Field(sa_type=StrType.wrap(AnyUrl))
+    db_mapping: StandaloneDBMapping = Field(sa_type=PydanticType.wrap(StandaloneDBMapping))
+    mitm_header: Header = Field(sa_type=PydanticType.wrap(Header))
+
+    mapped_mitm_datasets: list['TrackedMitMDataset'] = Relationship(back_populates='mapped_db_source')
+
+    pulls: list['MappedDBPull'] = Relationship(back_populates='mapped_db_source', cascade_delete=True)
+
+    @property
+    def last_pulled(self) -> datetime | None:
+        return max((p.time_complete for p in self.pulls), default=None)
+
+
+class ListMappedDBPull(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    mapped_mitm_dataset_id: int
+    mapped_db_source_id: int
+    time_start: datetime
+    time_complete: datetime
+    insertion_result: SQLRepInsertionResult
+
+
+class GetMappedDBPull(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    mapped_mitm_dataset: 'ListTrackedMitMDataset'
+    mapped_db_source: 'ListMappedDBSource'
+    time_start: datetime
+    time_complete: datetime
+    insertion_result: SQLRepInsertionResult
+
+
+class MappedDBPull(IDMixin, SQLModel, table=True):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+    __tablename__ = 'mapped_db_pulls'
+    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
+
+    mapped_mitm_dataset_id: int = Field(nullable=False,
+                                        foreign_key=f'{APPLICATION_DB_SCHEMA}.tracked_mitm_datasets.id',
+                                        ondelete='CASCADE')
+    mapped_db_source_id: int = Field(nullable=False,
+                                     foreign_key=f'{APPLICATION_DB_SCHEMA}.mapped_db_sources.id',
+                                     ondelete='CASCADE')
+
+    time_start: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
+    time_complete: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
+    instances_imported: int = Field(default=0)
+    rows_created: int = Field(default=0)
+    insertion_result: SQLRepInsertionResult = Field(sa_type=PydanticType.wrap(SQLRepInsertionResult))
+
+    mapped_mitm_dataset: 'TrackedMitMDataset' = Relationship(back_populates='pulls')  # ,sa_relationship_kwargs=dict(foreign_keys='mapped_mitm_dataset_id'))
+    mapped_db_source: MappedDBSource = Relationship(back_populates='pulls')  # ,sa_relationship_kwargs=dict(foreign_keys='mapped_db_source_id'))
+
+
+TrackedMitMDatasetType = Literal['local', 'external', 'mapped']
+
+
+def mk_typed_kwargs(type_: TrackedMitMDatasetType) -> dict[str, Any]:
+    kwargs = {'type': type_}
+    match type_:
+        case 'local':
+            kwargs |= dict(lives_on_mitm_db=True, can_control_data=True, can_control_header=True)
+        case 'external':
+            kwargs |= dict(lives_on_mitm_db=False, can_control_data=False, can_control_header=False)
+        case 'mapped':
+            kwargs |= dict(lives_on_mitm_db=True, can_control_data=False, can_control_header=False)
+        case _:
+            raise ValueError(f'Unknown type: {type_}')
+    return kwargs
+
+
+def _no_reserved_kwargs(arg: dict[str, Any]) -> dict[str, Any]:
+    reserved = {'type', 'lives_on_mitm_db', 'can_control_data', 'can_control_header'}
+    return {k: v for k, v in arg.items() if k not in reserved}
+
+
+class ListTrackedMitMDataset(FromPydanticModelsMixin, BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    id: int
+    uuid: UUID
+    dataset_name: str
+    mitm: MITM
+    type: TrackedMitMDatasetType
+    lives_on_mitm_db: bool
+    can_control_data: bool
+    can_control_header: bool
+    header_changed: datetime | None
+    data_changed: datetime | None
+
+
+class GetTrackedMitMDataset(ListTrackedMitMDataset):
+    schema_name: SchemaName
+    sql_alchemy_uri: AnyUrl
+    mitm_header: Header
+    header_desynced: bool
+
+    superset_identifier_bundle: MitMDatasetIdentifierBundle
+    tracked_visualizations: list['ListTrackedVisualization']
+
+
+class PostTrackedMitMDataset(FromPydanticModelsMixin, BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    uuid: UUID | None = None
+    type: TrackedMitMDatasetType
+    lives_on_mitm_db: bool
+    can_control_data: bool
+    can_control_header: bool
+    dataset_name: str
+    schema_name: SchemaName
+    sql_alchemy_uri: AnyUrl
+    mitm_header: Header
+    mapped_db_source_id: int | None = None
+
+    @classmethod
+    def mk_local(cls, **data) -> Self:
+        return cls.mk_specific('local', **data)
+
+    @classmethod
+    def mk_external(cls, **data) -> Self:
+        return cls.mk_specific('external', **data)
+
+    @classmethod
+    def mk_mapped(cls, **data) -> Self:
+        return cls.mk_specific('mapped', **data)
+
+    @classmethod
+    def mk_specific(cls, type_: TrackedMitMDatasetType, **data) -> Self:
+        return cls(**mk_typed_kwargs(type_), **_no_reserved_kwargs(data))
+
+
+class PatchTrackedMitMDataset(BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    dataset_name: str | None = None
+    type: TrackedMitMDatasetType | None = None
+    lives_on_mitm_db: bool | None = None
+    can_control_data: bool | None = None
+    can_control_header: bool | None = None
+    schema_name: SchemaName | None = None
+    sql_alchemy_uri: AnyUrl | None = None
+    mitm_header: Header | None = None
+
+
+class TrackedMitMDataset(IDMixin, UUIDMixin, ApplyPatchMixin, SQLModel, table=True):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+    __tablename__ = 'tracked_mitm_datasets'
+    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
+
+    dataset_name: str = Field()
+    schema_name: str = Field()
+    sql_alchemy_uri: AnyUrl = Field(sa_type=StrType.wrap(AnyUrl))
+
+    type: str = Field(nullable=False, default='local')
+    lives_on_mitm_db: bool = Field(default=True)
+    can_control_data: bool = Field(default=True)
+    can_control_header: bool = Field(default=True)
+
+    header_changed: datetime | None = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
+    data_changed: datetime | None = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
+
+    mitm_header: Header = Field(sa_type=PydanticType.wrap(Header))
+    base_superset_identifier_bundle: MitMDatasetIdentifierBundle = Field(sa_type=PydanticType.wrap(
+        MitMDatasetIdentifierBundle))
+
+    mapped_db_source_id: int | None = Field(default=None,
+                                            foreign_key=f'{APPLICATION_DB_SCHEMA}.mapped_db_sources.id',
+                                            ondelete='SET NULL')
+
+    def transmute(self, type_: TrackedMitMDatasetType) -> None:
+        for k, v in mk_typed_kwargs(type_).items():
+            setattr(self, k, v)
+
+    @property
+    def db_conn_info(self) -> DBConnectionInfo:
+        return DBConnectionInfo(sql_alchemy_uri=self.sql_alchemy_uri, schema_name=self.schema_name)
+
+    @property
+    def header_desynced(self):
+        return self.header_changed is None or (
+                    self.data_changed is not None and self.header_changed < self.data_changed)
+
+    @property
+    def mitm(self) -> MITM:
+        return self.mitm_header.mitm
+
+    @property
+    def superset_identifier_bundle(self) -> MitMDatasetIdentifierBundle:
+        viz_id_bundles = [tv.identifier_bundle for tv in self.tracked_visualizations if
+                          tv.identifier_bundle is not None]
+        return self.base_superset_identifier_bundle.with_visualizations(*viz_id_bundles)
+
+    tracked_visualizations: list['TrackedVisualization'] = Relationship(back_populates='tracked_mitm_dataset',
+                                                                        cascade_delete=True)
+
+    mapped_db_source: Optional['MappedDBSource'] = Relationship(back_populates='mapped_mitm_datasets',
+                                                                )
+    pulls: list['MappedDBPull'] = Relationship(back_populates='mapped_mitm_dataset', cascade_delete=True)
+
+    @property
+    def last_pulled(self) -> datetime | None:
+        return max((p.time_complete for p in self.pulls), default=None)
+
+
+class ListLocalMitMDataset(ListTrackedMitMDataset):
+    pass
+
+
+class GetLocalMitMDataset(GetTrackedMitMDataset):
+    pass
+
+
+class PostLocalMitMDataset(FromPydanticModelsMixin, BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    uuid: UUID | None = None
+    dataset_name: str
+    mitm_header: Header
+
+
+class PatchLocalMitMDataset(FromPydanticModelsMixin, BaseModel):
+    dataset_name: str | None = None
+
+
+class ListExternalMitMDataset(ListTrackedMitMDataset):
+    pass
+
+
+class GetExternalMitMDataset(GetTrackedMitMDataset):
+    pass
+
+
+class PostExternalMitMDataset(FromPydanticModelsMixin, BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    uuid: UUID | None = None
+    dataset_name: str
+    schema_name: SchemaName
+    sql_alchemy_uri: AnyUrl
+
+
+class PatchExternalMitMDataset(PatchLocalMitMDataset):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    schema_name: SchemaName | None = None
+    sql_alchemy_uri: AnyUrl | None = None
+
+
+class ListMappedMitMDataset(ListTrackedMitMDataset):
+    mapped_db_source_id: int | None
+    last_pulled: datetime | None
+
+
+class GetMappedMitMDataset(GetTrackedMitMDataset):
+    mapped_db_source: Optional['ListMappedDBSource']
+    pulls: list['ListMappedDBPull']
+    last_pulled: datetime | None
+
+
+class PostMappedMitMDataset(FromPydanticModelsMixin, BaseModel):
+    model_config = ConfigDict(arbitrary_types_allowed=True)
+
+    uuid: UUID | None = None
+    dataset_name: str
+    sql_alchemy_uri: AnyUrl
+
+    db_mapping: StandaloneDBMapping
+
+
+class PatchMappedMitMDataset(PatchLocalMitMDataset):
+    mapped_db_source_id: int | None = None
+
+
+# Ensure all models are rebuilt in dependency order
+TrackedVisualization.model_rebuild()
+ListTrackedVisualization.model_rebuild()
+MappedDBSource.model_rebuild()
+ListMappedDBSource.model_rebuild()
+MappedDBPull.model_rebuild()
+ListMappedDBPull.model_rebuild()
+GetMappedDBPull.model_rebuild()
+TrackedMitMDataset.model_rebuild()
+ListTrackedMitMDataset.model_rebuild()
+GetTrackedMitMDataset.model_rebuild()
+PostTrackedMitMDataset.model_rebuild()
+PatchTrackedMitMDataset.model_rebuild()
+ListLocalMitMDataset.model_rebuild()
+GetLocalMitMDataset.model_rebuild()
+PostLocalMitMDataset.model_rebuild()
+PatchLocalMitMDataset.model_rebuild()
+ListExternalMitMDataset.model_rebuild()
+GetExternalMitMDataset.model_rebuild()
+PostExternalMitMDataset.model_rebuild()
+PatchExternalMitMDataset.model_rebuild()
+ListMappedMitMDataset.model_rebuild()
+GetMappedMitMDataset.model_rebuild()
+PostMappedMitMDataset.model_rebuild()
+PatchMappedMitMDataset.model_rebuild()
diff --git a/app/db/models/mapped_source.py b/app/db/models/mapped_source.py
deleted file mode 100644
index 6624d5e634c17461594accdf011a74b0d7391345..0000000000000000000000000000000000000000
--- a/app/db/models/mapped_source.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# from __future__ import annotations
-
-from datetime import datetime
-from typing import TYPE_CHECKING
-from uuid import UUID
-
-import pydantic
-import sqlmodel
-from mitm_tooling.definition import MITM
-from mitm_tooling.extraction.sql.data_models import CompiledVirtualView
-from mitm_tooling.extraction.sql.data_models.db_meta import DBMetaInfoBase
-from mitm_tooling.extraction.sql.data_models.db_probe import DBProbeBase
-from mitm_tooling.extraction.sql.mapping import ConceptMapping
-from mitm_tooling.representation.intermediate import Header
-from mitm_tooling.representation.sql import SQLRepInsertionResult
-from pydantic import BaseModel, AnyUrl, ConfigDict
-from sqlmodel import Field, SQLModel, Relationship
-
-from .common import APPLICATION_DB_SCHEMA, ApplyPatchMixin, IDMixin, UUIDMixin
-from ..adapters import PydanticType, StrType
-
-if TYPE_CHECKING:
-    from .tracked_mitm_dataset import TrackedMitMDataset, ListTrackedMitMDataset
-
-
-class MappedDB(BaseModel):
-    mitm: MITM
-    cvvs: list[CompiledVirtualView]
-    mappings: list[ConceptMapping]
-
-    @property
-    def relevant_mappings(self) -> list[ConceptMapping]:
-        return [cm for cm in self.mappings if cm.mitm == self.mitm]
-
-
-class DBInfo(BaseModel):
-    db_meta: DBMetaInfoBase
-    db_probe: DBProbeBase
-
-
-class ListMappedDBSource(BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    id: int
-    uuid: UUID
-    sql_alchemy_uri: AnyUrl
-    mitm_mapping: MappedDB
-    mitm_header: Header
-
-    tracked_mitm_datasets: list['ListTrackedMitMDataset']
-    pulls: list['ListMappedDBPull']
-    last_pulled: datetime | None
-
-
-class MappedDBSource(IDMixin, UUIDMixin, ApplyPatchMixin, SQLModel, table=True):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-    __tablename__ = 'mapped_db_sources'
-    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
-
-    sql_alchemy_uri: AnyUrl = Field(sa_type=StrType.wrap(AnyUrl))
-    mitm_mapping: MappedDB = Field(sa_type=PydanticType.wrap(MappedDB))
-    mitm_header: Header = Field(sa_type=PydanticType.wrap(Header))
-
-    mapped_mitm_datasets: list['TrackedMitMDataset'] = Relationship(back_populates='mapped_db_source')
-
-    pulls: list['MappedDBPull'] = Relationship(back_populates='mapped_db_source', cascade_delete=True)
-
-    @property
-    def last_pulled(self) -> datetime | None:
-        return max((p.time_complete for p in self.pulls), default=None)
-
-
-class ListMappedDBPull(BaseModel):
-    model_config = ConfigDict(arbitrary_types_allowed=True)
-
-    id: int
-    mapped_mitm_dataset: 'ListTrackedMitMDataset'
-    mapped_db_source: ListMappedDBSource
-    time_start: datetime
-    time_complete: datetime
-    insertion_result: SQLRepInsertionResult
-
-
-class MappedDBPull(IDMixin, SQLModel, table=True):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-    __tablename__ = 'mapped_db_pulls'
-    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
-
-    mapped_mitm_dataset_id: int = Field(nullable=False,
-                                        foreign_key=f'{APPLICATION_DB_SCHEMA}.tracked_mitm_datasets.id',
-                                        ondelete='CASCADE')
-    mapped_db_source_id: int = Field(nullable=False,
-                                     foreign_key=f'{APPLICATION_DB_SCHEMA}.mapped_db_sources.id',
-                                     ondelete='CASCADE')
-
-    time_start: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
-    time_complete: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
-    instances_imported: int = Field(default=0)
-    rows_created: int = Field(default=0)
-    insertion_result: SQLRepInsertionResult = Field(sa_type=PydanticType.wrap(SQLRepInsertionResult))
-
-    mapped_mitm_dataset: 'TrackedMitMDataset' = Relationship(back_populates='pulls')  # ,sa_relationship_kwargs=dict(foreign_keys='mapped_mitm_dataset_id'))
-    mapped_db_source: MappedDBSource = Relationship(back_populates='pulls')  # ,sa_relationship_kwargs=dict(foreign_keys='mapped_db_source_id'))
diff --git a/app/db/models/tracked_mitm_dataset.py b/app/db/models/tracked_mitm_dataset.py
deleted file mode 100644
index 1516a18536e004ef12d1dc468ab01f013f61547f..0000000000000000000000000000000000000000
--- a/app/db/models/tracked_mitm_dataset.py
+++ /dev/null
@@ -1,255 +0,0 @@
-# from __future__ import annotations
-
-from datetime import datetime
-from typing import Literal, Self, Any
-from uuid import UUID
-
-import pydantic
-import sqlmodel
-from mitm_tooling.definition import MITM
-from mitm_tooling.representation.intermediate import Header
-from mitm_tooling.representation.sql import SQLRepresentationSchema, mk_sql_rep_schema
-from mitm_tooling.representation.sql import SchemaName
-from mitm_tooling.transformation.superset.asset_bundles import MitMDatasetIdentifierBundle
-from mitm_tooling.transformation.superset.common import DBConnectionInfo
-from pydantic import BaseModel, AnyUrl
-from sqlmodel import SQLModel, Field, Relationship
-
-from app.db.adapters import StrType, PydanticType
-from .common import FromPydanticModelsMixin, APPLICATION_DB_SCHEMA, ApplyPatchMixin, IDMixin, UUIDMixin
-# if TYPE_CHECKING:
-from .mapped_source import MappedDBSource, MappedDBPull, MappedDB, ListMappedDBSource, ListMappedDBPull
-from .tracked_visualization import TrackedVisualization, ListTrackedVisualization
-
-TrackedMitMDatasetType = Literal['local', 'external', 'mapped']
-
-
-def _typed_kwargs(type_: TrackedMitMDatasetType) -> dict[str, Any]:
-    kwargs = {'type': type_}
-    match type_:
-        case 'local':
-            kwargs |= dict(lives_on_mitm_db=True, can_control_data=True, can_control_header=True)
-        case 'external':
-            kwargs |= dict(lives_on_mitm_db=False, can_control_data=False, can_control_header=False)
-        case 'mapped':
-            kwargs |= dict(lives_on_mitm_db=True, can_control_data=False, can_control_header=False)
-        case _:
-            raise ValueError(f'Unknown type: {type_}')
-    return kwargs
-
-
-def _no_reserved_kwargs(arg: dict[str, Any]) -> dict[str, Any]:
-    reserved = {'type', 'lives_on_mitm_db', 'can_control_data', 'can_control_header'}
-    return {k: v for k, v in arg.items() if k not in reserved}
-
-
-class ListTrackedMitMDataset(FromPydanticModelsMixin, BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    id: int
-    uuid: UUID
-    dataset_name: str
-    mitm: MITM
-    type: TrackedMitMDatasetType
-    lives_on_mitm_db: bool
-    can_control_data: bool
-    can_control_header: bool
-
-
-class GetTrackedMitMDataset(ListTrackedMitMDataset):
-    schema_name: SchemaName
-    sql_alchemy_uri: AnyUrl
-    mitm_header: Header
-    header_changed: datetime
-    data_changed: datetime
-    superset_identifier_bundle: MitMDatasetIdentifierBundle
-    tracked_visualizations: list[ListTrackedVisualization]
-
-
-class PostTrackedMitMDataset(FromPydanticModelsMixin, BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    uuid: UUID | None = None
-    type: TrackedMitMDatasetType
-    lives_on_mitm_db: bool
-    can_control_data: bool
-    can_control_header: bool
-    dataset_name: str
-    schema_name: SchemaName
-    sql_alchemy_uri: AnyUrl
-    mitm_header: Header
-    mapped_db_source_id: int | None = None
-
-    @classmethod
-    def mk_local(cls, **data) -> Self:
-        return cls.mk_specific('local', **data)
-
-    @classmethod
-    def mk_external(cls, **data) -> Self:
-        return cls.mk_specific('external', **data)
-
-    @classmethod
-    def mk_mapped(cls, **data) -> Self:
-        return cls.mk_specific('mapped', **data)
-
-    @classmethod
-    def mk_specific(cls, type_: TrackedMitMDatasetType, **data) -> Self:
-        return cls(**_typed_kwargs(type_), **_no_reserved_kwargs(data))
-
-
-class PatchTrackedMitMDataset(BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    dataset_name: str | None = None
-    type: TrackedMitMDatasetType | None = None
-    lives_on_mitm_db: bool | None = None
-    can_control_data: bool | None = None
-    can_control_header: bool | None = None
-    schema_name: SchemaName | None = None
-    sql_alchemy_uri: AnyUrl | None = None
-    mitm_header: Header | None = None
-
-
-class TrackedMitMDataset(IDMixin, UUIDMixin, ApplyPatchMixin, SQLModel, table=True):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-    __tablename__ = 'tracked_mitm_datasets'
-    __table_args__ = {'schema': APPLICATION_DB_SCHEMA}
-    # __mapper_args__ = {'polymorphic_on': 'type'}
-
-    dataset_name: str = Field()
-    schema_name: str = Field()
-    sql_alchemy_uri: AnyUrl = Field(sa_type=StrType.wrap(AnyUrl))
-
-    type: str = Field(nullable=False, default='local')
-    lives_on_mitm_db: bool = Field(default=True)
-    can_control_data: bool = Field(default=True)
-    can_control_header: bool = Field(default=True)
-
-    header_changed: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
-    data_changed: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
-
-    mitm_header: Header = Field(sa_type=PydanticType.wrap(Header))
-    base_superset_identifier_bundle: MitMDatasetIdentifierBundle = Field(sa_type=PydanticType.wrap(
-        MitMDatasetIdentifierBundle))
-
-    mapped_db_source_id: int | None = Field(default=None,
-                                            foreign_key=f'{APPLICATION_DB_SCHEMA}.mapped_db_sources.id',
-                                            ondelete='SET NULL')
-
-    def transmute(self, type_: TrackedMitMDatasetType) -> None:
-        for k, v in _typed_kwargs(type_).items():
-            setattr(self, k, v)
-
-    @property
-    def db_conn_info(self) -> DBConnectionInfo:
-        return DBConnectionInfo(sql_alchemy_uri=self.sql_alchemy_uri, schema_name=self.schema_name)
-
-    @property
-    def sql_rep_schema(self) -> SQLRepresentationSchema:
-        return mk_sql_rep_schema(self.mitm_header, override_schema=self.schema_name)
-
-    @property
-    def mitm(self) -> MITM:
-        return self.mitm_header.mitm
-
-    @property
-    def superset_identifier_bundle(self) -> MitMDatasetIdentifierBundle:
-        viz_id_bundles = [tv.identifier_bundle for tv in self.tracked_visualizations if
-                          tv.identifier_bundle is not None]
-        return self.base_superset_identifier_bundle.with_visualizations(*viz_id_bundles)
-
-    tracked_visualizations: list[TrackedVisualization] = Relationship(back_populates='tracked_mitm_dataset',
-                                                                      cascade_delete=True)
-    # @property
-    # def tracked_visualizations(self) -> list[TrackedVisualization]:
-    #    return Relationship(back_populates='tracked_mitm_dataset', cascade_delete=True)
-
-    mapped_db_source: MappedDBSource | None = Relationship(back_populates='mapped_mitm_datasets',
-                                                           )#sa_relationship_kwargs=dict(foreign_keys='mapped_db_source_id'))
-    pulls: list[MappedDBPull] = Relationship(back_populates='mapped_mitm_dataset', cascade_delete=True)
-
-    @property
-    def last_pulled(self) -> datetime | None:
-        return max((p.time_complete for p in self.pulls), default=None)
-
-
-class ListLocalMitMDataset(ListTrackedMitMDataset):
-    pass
-
-
-class GetLocalMitMDataset(GetTrackedMitMDataset):
-    pass
-
-
-class PostLocalMitMDataset(FromPydanticModelsMixin, BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    uuid: UUID | None = None
-    dataset_name: str
-    mitm_header: Header
-
-
-class PatchLocalMitMDataset(FromPydanticModelsMixin, BaseModel):
-    dataset_name: str | None = None
-
-
-class ListExternalMitMDataset(ListTrackedMitMDataset):
-    pass
-
-
-class GetExternalMitMDataset(GetTrackedMitMDataset):
-    pass
-
-
-class PostExternalMitMDataset(FromPydanticModelsMixin, BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    uuid: UUID | None = None
-    dataset_name: str
-    schema_name: SchemaName
-    sql_alchemy_uri: AnyUrl
-
-
-class PatchExternalMitMDataset(PatchLocalMitMDataset):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    schema_name: SchemaName | None = None
-    sql_alchemy_uri: AnyUrl | None = None
-
-
-class ListMappedMitMDataset(ListTrackedMitMDataset):
-    mapped_db_source_id: int | None
-    last_pulled: datetime | None
-
-
-class GetMappedMitMDataset(GetTrackedMitMDataset):
-    mapped_db_source: ListMappedDBSource | None
-    pulls: list[ListMappedDBPull]
-    last_pulled: datetime | None
-
-
-class PostMappedMitMDataset(FromPydanticModelsMixin, BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    uuid: UUID | None = None
-    dataset_name: str
-    sql_alchemy_uri: AnyUrl
-
-    mapped_db: MappedDB
-
-
-class PatchMappedMitMDataset(PatchLocalMitMDataset):
-    mapped_db_source_id: int | None = None
-
-# I've given up on inheritance
-# class MappedMitMDataset(TrackedMitMDataset):
-#    model_config = ConfigDict(
-#        table=False,  # turn *off* table-generation for this subclass
-#        arbitrary_types_allowed=True,  # if you need other custom types
-#    )
-#    __table__ = TrackedMitMDataset.__table__
-#    __mapper_args__ = {'polymorphic_identity': 'mapped'}
-#
-#    type: str = Field(nullable=False, default='mapped')
-#    lives_on_mitm_db: bool = Field(default=True)
-#    schema_under_external_control: bool = Field(default=True)
diff --git a/app/db/models/tracked_visualization.py b/app/db/models/tracked_visualization.py
deleted file mode 100644
index 294ab09e328697822793ecf786e80dc9145408c6..0000000000000000000000000000000000000000
--- a/app/db/models/tracked_visualization.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#from __future__ import annotations
-
-from datetime import datetime
-from typing import TYPE_CHECKING
-from uuid import UUID
-
-import pydantic
-import sqlmodel
-import sqlalchemy as sa
-from mitm_tooling.definition import MITM
-from mitm_tooling.transformation.superset import VisualizationType
-from mitm_tooling.transformation.superset.asset_bundles import VizCollectionIdentifierMap, \
-    VisualizationsIdentifierBundle
-from pydantic import BaseModel
-from sqlmodel import SQLModel, Field, Relationship
-
-from app.db.adapters import PydanticType
-from .common import APPLICATION_DB_SCHEMA, IDMixin, UUIDMixin
-
-if TYPE_CHECKING:
-    from .tracked_mitm_dataset import TrackedMitMDataset
-
-class ListTrackedVisualization(BaseModel):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-
-    id: int
-    uuid: UUID
-    tracked_mitm_dataset_id: int
-    mitm: MITM
-    viz_type: VisualizationType
-    identifier_bundle: VisualizationsIdentifierBundle
-    viz_changed: datetime
-
-
-class TrackedVisualization(IDMixin, UUIDMixin, SQLModel, table=True):
-    model_config = pydantic.ConfigDict(arbitrary_types_allowed=True)
-    __tablename__ = 'tracked_visualizations'
-    __table_args__ = (
-        sa.UniqueConstraint('tracked_mitm_dataset_id', 'viz_type'), # there can only be 0-1 tracked visualizations per dataset
-        {'schema': APPLICATION_DB_SCHEMA}
-    )
-
-    tracked_mitm_dataset_id: int = Field(nullable=False,
-                                         foreign_key=f'{APPLICATION_DB_SCHEMA}.tracked_mitm_datasets.id',
-                                         ondelete='CASCADE')
-    mitm: MITM = Field()
-    viz_type: VisualizationType = Field()
-    identifier_bundle: VisualizationsIdentifierBundle = Field(sa_type=PydanticType.wrap(VisualizationsIdentifierBundle))
-    viz_changed: datetime = Field(sa_type=sqlmodel.DateTime, default_factory=datetime.now)
-
-    tracked_mitm_dataset: 'TrackedMitMDataset' = Relationship(back_populates='tracked_visualizations') #, sa_relationship_kwargs=dict(foreign_keys='tracked_mitm_dataset_id')
diff --git a/app/db/setup.py b/app/db/setup.py
index 0a105e25128914e7b4914909beb0c7298cb58fab..60ae9ffef68c731fc50fa5177b9eb3a41c123568 100644
--- a/app/db/setup.py
+++ b/app/db/setup.py
@@ -1,9 +1,9 @@
 import logging
 
 import sqlalchemy as sa
+from mitm_tooling.utilities.sql_utils import create_sa_engine
 from mitm_tooling.utilities.python_utils import pick_from_mapping
-from sqlalchemy import create_engine, inspect, Engine
-from sqlalchemy.orm import Session
+from sqlalchemy import create_engine, inspect, StaticPool
 
 from ..config import app_cfg
 
@@ -12,20 +12,35 @@ MITM_DATABASE_URL = sa.engine.URL.create(*pick_from_mapping(app_cfg, ['MITM_DATA
                                                                       'MITM_DATABASE_PASSWORD', 'MITM_DATABASE_HOST',
                                                                       'MITM_DATABASE_PORT', 'MITM_DATABASE_DB']))
 
-execution_options = {}
+engine_kwargs = {}
 if MITM_DATABASE_URL.get_dialect().name == 'sqlite':
-    execution_options.update(check_same_thread=False)
-
-engine = create_engine(MITM_DATABASE_URL, execution_options=execution_options)
+    engine_kwargs['execution_options'] = dict(check_same_thread=False)
+    engine_kwargs['poolclass'] = StaticPool
 
+engine = create_engine(MITM_DATABASE_URL, **engine_kwargs)
 
 def init_db():
-    from .models.mapped_source import  MappedDBSource, MappedDBPull
-    from .models.tracked_visualization import TrackedVisualization
-    from .models.tracked_mitm_dataset import TrackedMitMDataset
+    from .models import TrackedMitMDataset, GetTrackedMitMDataset, GetMappedMitMDataset, \
+        GetLocalMitMDataset, GetExternalMitMDataset, ListTrackedMitMDataset, GetMappedDBPull
+    from .models import TrackedVisualization, ListTrackedVisualization
+    from .models import MappedDBSource, MappedDBPull, ListMappedDBSource, ListMappedDBPull
     from .models import APPLICATION_DB_SCHEMA
     from sqlmodel import SQLModel
-    from .utils import create_schema
+    from ..logic.db_actions import create_schema
+
+    #TrackedMitMDataset.model_rebuild()
+    #TrackedVisualization.model_rebuild()
+    #MappedDBSource.model_rebuild()
+    #MappedDBPull.model_rebuild()
+    #ListMappedDBSource.model_rebuild()
+    #ListMappedDBPull.model_rebuild()
+    #ListTrackedVisualization.model_rebuild()
+    #GetTrackedMitMDataset.model_rebuild()
+    #GetMappedMitMDataset.model_rebuild()
+    #GetMappedDBPull.model_rebuild()
+    #GetLocalMitMDataset.model_rebuild()
+    #GetExternalMitMDataset.model_rebuild()
+
     logger.info(f'Setting up MITM DB @ {MITM_DATABASE_URL}')
     with engine.connect() as conn:
         if APPLICATION_DB_SCHEMA not in inspect(engine).get_schema_names():
diff --git a/app/db/utils.py b/app/db/utils.py
index 6a0ad4da66055623536d95aa76ad8c2b8556d434..6caad88a731ba0c3af6d6abe967d208c6d4453c0 100644
--- a/app/db/utils.py
+++ b/app/db/utils.py
@@ -1,5 +1,4 @@
 import contextlib
-import logging
 from typing import Generator
 
 import sqlalchemy as sa
@@ -8,15 +7,11 @@ from mitm_tooling.extraction.sql.data_models import DBMetaInfo, DBProbe
 from mitm_tooling.extraction.sql.db import connect_and_reflect
 from mitm_tooling.extraction.sql.db import create_db_probe
 from sqlalchemy import Engine
-from sqlalchemy.exc import SQLAlchemyError
 from sqlalchemy.orm.session import Session
-from sqlalchemy.sql.ddl import CreateSchema, DropSchema
 from sqlmodel import Session as ORMSession
 
 from .models import TrackedMitMDataset
 
-logger = logging.getLogger(__name__)
-
 
 @contextlib.contextmanager
 def mk_session(engine: Engine) -> Generator[Session, None, None]:
@@ -40,28 +35,3 @@ def probe_tracked_mitm_dataset_schema(engine: sa.Engine, tracked_mitm_dataset: T
     with mk_session(engine) as session:
         return create_db_probe(session, db_meta, sample_size=1000)
 
-
-def create_schema(conn_or_sess: sa.Connection | Session, unique_schema_name: str) -> bool:
-    dialect = conn_or_sess.bind.dialect if isinstance(conn_or_sess, Session) else conn_or_sess.dialect
-    try:
-        if dialect.name == 'sqlite':
-            conn_or_sess.execute(sa.text(f"ATTACH DATABASE ':memory:' AS {unique_schema_name}"))
-        else:
-            conn_or_sess.execute(CreateSchema(unique_schema_name, if_not_exists=False))
-        return True
-    except SQLAlchemyError as e:
-        logger.error(e)
-        return False
-
-
-def delete_schema(conn_or_sess: sa.Connection | Session, unique_schema_name: str) -> bool:
-    dialect = conn_or_sess.bind.dialect if isinstance(conn_or_sess, Session) else conn_or_sess.dialect
-    try:
-        if dialect.name == 'sqlite':
-            conn_or_sess.execute(sa.text(f"DETACH DATABASE {unique_schema_name}"))
-        else:
-            conn_or_sess.execute(DropSchema(unique_schema_name, cascade=True, if_exists=False))
-        return True
-    except SQLAlchemyError as e:
-        logger.error(e)
-        return False
diff --git a/app/dependencies/db.py b/app/dependencies/db.py
index 2f767349eede741d7fc5199be19a69d2e8f9ba8b..3bc070a364e98f25e1b388735d24f1861f397c66 100644
--- a/app/dependencies/db.py
+++ b/app/dependencies/db.py
@@ -5,24 +5,28 @@ from sqlalchemy import engine, Engine
 from sqlalchemy.orm import Session
 from sqlmodel import Session as ORMSession
 
-from ..db.utils import mk_session, mk_orm_session
 from ..db.setup import engine
+from ..db.utils import mk_session, mk_orm_session
+
+
+def get_engine() -> Engine:
+    return engine
 
 
-def get_engine() -> Generator[Engine, None, None]:
+def yield_engine() -> Generator[Engine, None, None]:
     yield engine
 
 
-def get_session() -> Generator[Session, None, None]:
+def yield_session() -> Generator[Session, None, None]:
     with mk_session(engine) as session:
         yield session
 
 
-def get_orm_session() -> Generator[ORMSession, None, None]:
+def yield_orm_session() -> Generator[ORMSession, None, None]:
     with mk_orm_session(engine) as orm_session:
         yield orm_session
 
 
-DBEngineDependency = Annotated[Engine, Depends(get_engine)]
-DBSessionDependency = Annotated[Session, Depends(get_session)]
-ORMSessionDependency = Annotated[ORMSession, Depends(get_orm_session)]
+DBEngineDependency = Annotated[Engine, Depends(yield_engine)]
+DBSessionDependency = Annotated[Session, Depends(yield_session)]
+ORMSessionDependency = Annotated[ORMSession, Depends(yield_orm_session)]
diff --git a/app/dependencies/orm.py b/app/dependencies/orm.py
index dade51f81ecdca67adad282ef41e9e67dd468fbf..40f1834bc3a1f281965dfd4e2ba6307fc1c6dc08 100644
--- a/app/dependencies/orm.py
+++ b/app/dependencies/orm.py
@@ -7,7 +7,7 @@ from sqlmodel import select
 
 from .db import ORMSessionDependency
 from ..db.models import TrackedMitMDataset, MappedDBSource
-from ..db.models.tracked_mitm_dataset import TrackedMitMDatasetType
+from ..db.models import TrackedMitMDatasetType
 
 
 
@@ -53,7 +53,7 @@ def get_mitm_datasets(session: ORMSessionDependency,
                                                                       'mapped'))) -> list[
     TrackedMitMDataset]:
     #session.exec(select(TrackedMitMDataset).filter(TrackedMitMDataset.type in types))
-    return list(session.exec(select(TrackedMitMDataset).filter(TrackedMitMDataset.type in types)).all())
+    return list(session.exec(select(TrackedMitMDataset).filter(TrackedMitMDataset.type.in_(types))).all())
     # os = []
     # if 'local' in types:
     #     os.extend(session.exec(select(LocalMitMDataset)).all())
@@ -64,8 +64,9 @@ def get_mitm_datasets(session: ORMSessionDependency,
     # return os
 
 
-def get_db_source(session: ORMSessionDependency, uuid: int = fastapi.Path()) -> MappedDBSource:
-    o = session.exec(select(MappedDBSource).filter(MappedDBSource.uuid == uuid)).one_or_none()
+def get_db_source(session: ORMSessionDependency, id: int = fastapi.Path()) -> MappedDBSource:
+    o = session.get(MappedDBSource, (id,))
+    #o = session.exec(select(MappedDBSource).filter(MappedDBSource.uuid == uuid)).one_or_none()
     if o is None:
         raise HTTPException(status_code=404, detail='Referenced Mapped DB Source does not exist.')
     return o
diff --git a/app/logic/append.py b/app/logic/append.py
index fca07d8d84edafa5298ef595b52d17fd9081bcb8..05bcc34cd1eaa5b3a5b07e67be842a74eb474ec5 100644
--- a/app/logic/append.py
+++ b/app/logic/append.py
@@ -10,6 +10,8 @@ from mitm_tooling.utilities.sql_utils import create_sa_engine
 from pydantic import AnyUrl
 
 from app.db.models import TrackedMitMDataset
+from app.logic.connect import engine_for_tracked_dataset
+from app.logic.upload import get_sql_rep_schema
 
 logger = logging.getLogger(__name__)
 
@@ -29,8 +31,8 @@ async def append_instances(
         gen_instances: Callable[[], TypedMitMDataFrameStream],
         tracked_mitm_dataset: TrackedMitMDataset,
 ) -> SQLRepInsertionResult:
-    sql_rep_schema = tracked_mitm_dataset.sql_rep_schema
-    target_engine = create_sa_engine(tracked_mitm_dataset.sql_alchemy_uri)
+    sql_rep_schema = get_sql_rep_schema(tracked_mitm_dataset)
+    target_engine = engine_for_tracked_dataset(tracked_mitm_dataset)
 
     with target_engine.begin() as conn:
         insertion_result = append_data(conn, lambda: sql_rep_schema, gen_instances)
diff --git a/app/logic/connect.py b/app/logic/connect.py
new file mode 100644
index 0000000000000000000000000000000000000000..fa314ba10b938866dc6d2c87ad948da1a875b4eb
--- /dev/null
+++ b/app/logic/connect.py
@@ -0,0 +1,17 @@
+from mitm_tooling.utilities.sql_utils import create_sa_engine
+from pydantic import AnyUrl
+from sqlalchemy import Engine
+
+from app.db.models import TrackedMitMDataset
+from app.dependencies.db import get_engine
+
+
+def engine_for_uri(sql_alchemy_uri: AnyUrl) -> Engine:
+    return create_sa_engine(sql_alchemy_uri)
+
+
+def engine_for_tracked_dataset(tracked_dataset: TrackedMitMDataset) -> Engine:
+    if tracked_dataset.lives_on_mitm_db:
+        return get_engine()
+    else:
+        return engine_for_uri(tracked_dataset.sql_alchemy_uri)
diff --git a/app/logic/db_actions.py b/app/logic/db_actions.py
new file mode 100644
index 0000000000000000000000000000000000000000..9bbd5f7c66f6d95191fe2ec46052306d85a79bc1
--- /dev/null
+++ b/app/logic/db_actions.py
@@ -0,0 +1,65 @@
+import logging
+from typing import Collection
+
+import sqlalchemy as sa
+from mitm_tooling.utilities.backports.sqlchemy_sql_views import DropView
+from mitm_tooling.utilities.sql_utils import use_db_bind, AnyDBBind
+from sqlalchemy.exc import SQLAlchemyError
+from sqlalchemy.orm import Session
+from sqlalchemy.sql.ddl import CreateSchema, DropSchema
+
+logger = logging.getLogger(__name__)
+
+
+def get_dialect(conn_or_sess: sa.Connection | Session) -> sa.Dialect:
+    return conn_or_sess.bind.dialect if isinstance(conn_or_sess, Session) else conn_or_sess.dialect
+
+
+def drop_tables(bind: AnyDBBind, schemas: Collection[str]) -> list[str]:
+    schemas = set(schemas)
+    with use_db_bind(bind) as conn:
+        meta = sa.MetaData()
+        for s in schemas:
+            meta.reflect(bind=conn, schema=s, views=True)
+        # for schema in set(schemas):
+        #    meta.reflect(bind=conn, schema=schema)
+        ts = [t for t in meta.tables.values() if t.schema in schemas]
+        views = [t for t in ts if 'view' in t.name]
+        tables = [t for t in ts if 'view' not in t.name]
+        logger.info(f'Dropping tables in schemas {schemas}: {[t.name for t in ts]}')
+        try:
+            for v in views:
+                conn.execute(DropView(v.name, cascade=False, schema=v.schema))
+
+            meta.drop_all(bind=conn, tables=tables)
+
+            return [t.name for t in ts]
+        except SQLAlchemyError as e:
+            logger.error(e)
+            return []
+
+
+def create_schema(conn_or_sess: sa.Connection | Session, unique_schema_name: str) -> bool:
+    dialect = get_dialect(conn_or_sess)
+    try:
+        if dialect.name == 'sqlite':
+            conn_or_sess.execute(sa.text(f"ATTACH DATABASE ':memory:' AS {unique_schema_name}"))
+        else:
+            conn_or_sess.execute(CreateSchema(unique_schema_name, if_not_exists=False))
+        return True
+    except SQLAlchemyError as e:
+        logger.error(e)
+        return False
+
+
+def delete_schema(conn_or_sess: sa.Connection | Session, unique_schema_name: str) -> bool:
+    dialect = get_dialect(conn_or_sess)
+    try:
+        if dialect.name == 'sqlite':
+            conn_or_sess.execute(sa.text(f"DETACH DATABASE {unique_schema_name}"))
+        else:
+            conn_or_sess.execute(DropSchema(unique_schema_name, cascade=True, if_exists=False))
+        return True
+    except SQLAlchemyError as e:
+        logger.error(e)
+        return False
diff --git a/app/logic/export.py b/app/logic/export.py
index 698513b68bf117ccc33a4b706827979e707a8b52..971e4a183570ba36cd53094cbdd8284efc94bba3 100644
--- a/app/logic/export.py
+++ b/app/logic/export.py
@@ -3,19 +3,19 @@ import logging
 import sqlalchemy as sa
 from mitm_tooling.extraction.sql.data_models import DBMetaInfo, SourceDBType
 from mitm_tooling.extraction.sql.mapping import MappingExport, Exportable
-from mitm_tooling.extraction.sql.mapping.mapping import ConceptMappingException
+from mitm_tooling.extraction.sql.mapping.concept_mapping import ConceptMappingException
 from mitm_tooling.transformation.sql.into_exportable import sql_rep_into_exportable
 from mitm_tooling.transformation.sql.into_mappings import sql_rep_into_mappings
-from mitm_tooling.utilities.sql_utils import create_sa_engine
 
 from app.db.models import TrackedMitMDataset
+from app.logic.connect import engine_for_tracked_dataset
+from app.logic.upload import get_sql_rep_schema
 
 logger = logging.getLogger(__name__)
 
 
 def prepare_export(tracked_dataset: TrackedMitMDataset) -> tuple[sa.Engine, Exportable]:
-    sql_alchemy_uri = tracked_dataset.sql_alchemy_uri
-    sql_rep_schema = tracked_dataset.sql_rep_schema
+    sql_rep_schema = get_sql_rep_schema(tracked_dataset)
     schema_name = tracked_dataset.schema_name
     header = tracked_dataset.mitm_header
 
@@ -25,10 +25,10 @@ def prepare_export(tracked_dataset: TrackedMitMDataset) -> tuple[sa.Engine, Expo
 
     db_meta_info = DBMetaInfo.from_sa_meta(sql_rep_schema.sa_meta, default_schema=schema_name)
     db_metas = {SourceDBType.OriginalDB: db_meta_info}
-    remote_engine = create_sa_engine(sql_alchemy_uri)
+    remote_engine = engine_for_tracked_dataset(tracked_dataset)
 
     try:
-        exportable = MappingExport(mitm=header.mitm, mapped_concepts=cms, filename='export.zip').apply(db_metas)
+        exportable = MappingExport(mitm=header.mitm, concept_mappings=cms, filename='export.zip').apply(db_metas)
         return remote_engine, exportable
     except ConceptMappingException as exc:
         logger.error(f'Concept Mapping failed due to: {repr(exc)}')
@@ -36,7 +36,6 @@ def prepare_export(tracked_dataset: TrackedMitMDataset) -> tuple[sa.Engine, Expo
 
 
 def prepare_direct_download(tracked_dataset: TrackedMitMDataset) -> tuple[sa.Engine, Exportable]:
-    sql_alchemy_uri = tracked_dataset.sql_alchemy_uri
-    sql_rep_schema = tracked_dataset.sql_rep_schema
+    sql_rep_schema = get_sql_rep_schema(tracked_dataset)
     header = tracked_dataset.mitm_header
-    return create_sa_engine(sql_alchemy_uri), sql_rep_into_exportable(header, sql_rep_schema)
+    return engine_for_tracked_dataset(tracked_dataset), sql_rep_into_exportable(header, sql_rep_schema)
diff --git a/app/logic/mapped_db.py b/app/logic/mapped_db.py
index ea455ab4c9573147948bc6a6253d76b2aab30f04..a5632a1b0313ab8b53958ae635a91f820e210cd2 100644
--- a/app/logic/mapped_db.py
+++ b/app/logic/mapped_db.py
@@ -1,23 +1,6 @@
 import sqlalchemy as sa
-from mitm_tooling.definition import MITM
-from mitm_tooling.extraction.sql.data_models import VirtualDB, SourceDBType, CompiledVirtualView
-from mitm_tooling.extraction.sql.mapping import ConceptMapping, MappingExport, Exportable
-from mitm_tooling.transformation.sql.from_sql import db_engine_into_db_meta
-from pydantic import BaseModel
-from app.db.models.mapped_source import MappedDB
+from mitm_tooling.extraction.sql.mapping import Exportable, StandaloneDBMapping
 
 
-def mk_db_metas(remote_engine: sa.Engine, cvvs: list[CompiledVirtualView]):
-    vdb = VirtualDB()
-    for cvv in cvvs:
-        vdb.put_view(cvv.to_virtual_view(vdb.sa_meta))
-
-    virtual_db_meta = vdb.to_db_meta_info()
-    original_db_meta = db_engine_into_db_meta(remote_engine)
-    return {SourceDBType.OriginalDB: original_db_meta, SourceDBType.VirtualDB: virtual_db_meta}
-
-
-def mk_exportable(remote_engine: sa.Engine, mapped_db: MappedDB) -> Exportable:
-    db_metas = mk_db_metas(remote_engine, mapped_db.cvvs)
-    me = MappingExport(mitm=mapped_db.mitm, mapped_concepts=mapped_db.relevant_mappings)
-    return me.apply(db_metas)
+def mk_exportable(remote_engine: sa.Engine, db_mapping: StandaloneDBMapping) -> Exportable:
+    return db_mapping.to_exportable(remote_engine)
diff --git a/app/logic/migrate_schema.py b/app/logic/migrate_schema.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cf60913c6798b3a1ce44e84dde552f69388e79b
--- /dev/null
+++ b/app/logic/migrate_schema.py
@@ -0,0 +1,185 @@
+import logging
+import os
+import tempfile
+
+import sqlalchemy as sa
+from alembic import command
+from alembic.config import Config
+from mitm_tooling.utilities.sql_utils import any_url_into_sa_url
+from pydantic import AnyUrl
+
+logger = logging.getLogger('db-migrations')
+logger.handlers.clear()
+logger.addHandler(logging.FileHandler('db_migration.log'))
+verb_logger = logging.getLogger('db-migrations-verbatim')
+verb_logger.handlers.clear()
+verb_handler = logging.FileHandler('db_migration.log')
+verb_handler.setFormatter(logging.Formatter('%(message)s'))
+verb_logger.addHandler(verb_handler)
+
+
+def run_dynamic_migration(sql_alchemy_uri: AnyUrl, target_metadata: sa.MetaData):
+    logger.info('Currently running dynamic migration with SQLAlchemy URI: %s', sql_alchemy_uri)
+    logger.info('Target metadata: %s', target_metadata.tables.keys())
+
+    # Create a temporary directory to hold a minimal Alembic environment
+    with tempfile.TemporaryDirectory(delete=False) as temp_dir:
+        # Create a temporary alembic.ini file
+        alembic_ini_path = os.path.join(temp_dir, "alembic.ini")
+        with open(alembic_ini_path, "w") as f:
+            f.write(f"""
+[alembic]
+script_location = {temp_dir}/migrations
+sqlalchemy.url = {any_url_into_sa_url(sql_alchemy_uri).render_as_string(hide_password=False)}
+
+[loggers]
+keys = root,sqlalchemy,alembic
+
+[handlers]
+keys = console,file
+
+[formatters]
+keys = simple
+
+[logger_root]
+level = WARN
+handlers = file
+
+[logger_sqlalchemy]
+level = WARN
+handlers = file
+qualname = sqlalchemy.engine
+propagate = 0
+
+[logger_alembic]
+level = INFO
+handlers = file
+qualname = alembic
+propagate = 0
+
+[handler_console]
+class = StreamHandler
+level = NOTSET
+formatter = simple
+args = (sys.stdout,)
+
+[handler_file]
+class = FileHandler
+level = NOTSET
+formatter = simple
+args = ('alembic.log',)
+
+[formatter_simple]
+format = %(asctime)s %(levelname)s %(name)s %(message)s
+""")
+        # Set up a minimal migrations directory with an env.py
+        migrations_dir = os.path.join(temp_dir, "migrations")
+        os.makedirs(migrations_dir, exist_ok=True)
+        versions_dir = os.path.join(migrations_dir, "versions")
+        os.makedirs(versions_dir, exist_ok=True)
+
+        # In migrate_schema.py, add after creating versions_dir:
+
+        # Create the script.py.mako template file
+        script_mako_path = os.path.join(migrations_dir, "script.py.mako")
+        with open(script_mako_path, "w") as f:
+            f.write("""
+import sqlalchemy as sa
+${imports if imports else ""}
+
+# revision identifiers, used by Alembic.
+revision = ${repr(up_revision)}
+down_revision = ${repr(down_revision)}
+branch_labels = ${repr(branch_labels)}
+depends_on = ${repr(depends_on)}
+
+def upgrade():
+    ${upgrades if upgrades else "pass"}
+
+def downgrade():
+    ${downgrades if downgrades else "pass"}
+""")
+
+        # Create an env.py file that tells Alembic about your target metadata
+        env_py_path = os.path.join(migrations_dir, "env.py")
+        with open(env_py_path, "w") as f:
+            f.write(f"""
+from alembic import context
+from sqlalchemy import engine_from_config, pool
+from logging.config import fileConfig
+import sys
+import os
+sys.path.insert(0, os.getcwd())
+
+# this is the Alembic Config object, which provides
+# access to the values within the .ini file in use.
+config = context.config
+
+# Interpret the config file for Python logging.
+fileConfig(config.config_file_name)
+
+target_metadata = config.attributes['target_metadata']  # This will be set programmatically
+
+def only_my_schema(name, type_, parent_names):
+    if type_ == 'schema':
+        return name == target_metadata.schema
+    else:
+        return True
+
+def run_migrations_offline():
+    url = config.get_main_option("sqlalchemy.url")
+    context.configure(url=url, target_metadata=target_metadata, literal_binds=True, include_schemas=False, include_name=only_my_schema)
+    with context.begin_transaction():
+        context.run_migrations()
+
+def run_migrations_online():
+    connectable = engine_from_config(
+        config.get_section(config.config_ini_section),
+        prefix="sqlalchemy.",
+        poolclass=pool.NullPool)
+    with connectable.connect() as connection:
+        context.configure(connection=connection, target_metadata=target_metadata, include_schemas=False, include_name=only_my_schema)
+        with context.begin_transaction():
+            context.run_migrations()
+
+if context.is_offline_mode():
+    run_migrations_offline()
+else:
+    run_migrations_online()
+""")
+        # Create an Alembic configuration object
+        alembic_cfg = Config(alembic_ini_path)
+        # Set the target metadata programmatically
+        alembic_cfg.attributes['target_metadata'] = target_metadata
+
+        logger.info('Attempting to auto-generate a migration script...')
+
+        ###
+
+        # In migrate_schema.py, modify the try-except block:
+        try:
+            # Generate migration
+            command_output = None
+
+            rev = command.revision(alembic_cfg, message="Dynamic migration", autogenerate=True)
+            # Log the file contents
+            with open(rev.path) as f:
+                verb_logger.info('Migration file contents:\n%s', f.read())
+            # verb_logger.info(rev)
+        except Exception as e:
+            logger.error("Failed to generate migration: %s", str(e), exc_info=True)
+
+        ###
+        logger.info('Generated migration files: %s', os.listdir(versions_dir))
+
+        for fn in os.listdir(versions_dir):
+            logger.info('Generated migration file: %s', fn)
+            p = os.path.join(versions_dir, fn)
+            with open(p) as f:
+                content = f.read()
+                verb_logger.info(content)
+
+        logger.info('Attempting to apply the migration to the database...')
+
+        # Apply the migration to upgrade the DB schema to head (i.e. the newly generated revision)
+        command.upgrade(alembic_cfg, "head")
diff --git a/app/logic/overwrite.py b/app/logic/overwrite.py
new file mode 100644
index 0000000000000000000000000000000000000000..7abf3f709b63aba7a49eb54ca6ea834976a1d0fb
--- /dev/null
+++ b/app/logic/overwrite.py
@@ -0,0 +1,65 @@
+import logging
+from typing import Callable
+
+from mitm_tooling.extraction.sql.mapping import Exportable
+from mitm_tooling.representation.df import TypedMitMDataFrameStream
+from mitm_tooling.representation.intermediate import Header
+from mitm_tooling.representation.sql import SQLRepInsertionResult, SchemaName
+from mitm_tooling.representation.sql.sql_insertion import insert_data
+from mitm_tooling.transformation.df import exportable_to_typed_mitm_dataframes_stream
+from mitm_tooling.utilities.sql_utils import create_sa_engine, sa_url_into_any_url
+from pydantic import AnyUrl
+from sqlalchemy import Engine
+
+from app.db.models import TrackedMitMDataset
+from app.dependencies.db import get_engine
+from app.logic.connect import engine_for_tracked_dataset
+from app.logic.db_actions import drop_tables
+from app.logic.upload import specific_sql_rep_schema
+
+logger = logging.getLogger(__name__)
+
+
+async def overwrite_with_exportable(source: AnyUrl,
+                                    exportable: Exportable,
+                                    tracked_mitm_dataset: TrackedMitMDataset) -> SQLRepInsertionResult:
+    assert tracked_mitm_dataset.lives_on_mitm_db
+
+    source_engine = create_sa_engine(source)
+    target_engine = engine_for_tracked_dataset(tracked_mitm_dataset)
+
+    def gen_instances():
+        return exportable_to_typed_mitm_dataframes_stream(source_engine, exportable, stream_data=False)
+
+    gen_header = lambda: exportable.generate_header(source_engine)
+
+    return await overwrite_data(gen_header, gen_instances, tracked_mitm_dataset.schema_name, target_engine)
+
+
+async def overwrite_data(
+        gen_header: Callable[[], Header],
+        gen_instances: Callable[[], TypedMitMDataFrameStream],
+        schema_name: SchemaName,
+        engine: Engine = None
+) -> SQLRepInsertionResult:
+    engine = engine if engine is not None else get_engine()
+    sql_alchemy_uri = sa_url_into_any_url(engine.url)
+
+    header = gen_header()
+    sql_rep_schema = specific_sql_rep_schema(header, schema_name)
+
+    logger.info(f'Overwriting MitM Data in target schema {schema_name} on connected DB {sql_alchemy_uri}.')
+
+    with engine.begin() as conn:
+        dropped_tables = drop_tables(conn, [schema_name])
+        logger.info(f'Dropped tables: {dropped_tables}')
+
+        insertion_result = insert_data(conn,
+                                       lambda: sql_rep_schema,
+                                       gen_instances,
+                                       gen_override_header=lambda: header)
+
+        logger.info(f'Inserted MitM Data into schema {schema_name}: {insertion_result}')
+        conn.commit()
+
+        return insertion_result
diff --git a/app/logic/pull_mapped.py b/app/logic/pull_mapped.py
index e731e733ffc1191dd2bdc5d23547406f2cfaea51..ab9c8404267114ef864a6a2e29e0d707bd47670f 100644
--- a/app/logic/pull_mapped.py
+++ b/app/logic/pull_mapped.py
@@ -1,25 +1,39 @@
 from datetime import datetime
 
 from fastapi import HTTPException
+from mitm_tooling.representation.intermediate import Header
+from mitm_tooling.representation.sql import mk_sql_rep_schema, insert_db_schema
 from mitm_tooling.utilities.sql_utils import create_sa_engine
 
-from app.db.models.mapped_source import MappedDBPull, MappedDBSource
+from app.db.models import MappedDBPull, MappedDBSource
 from app.dependencies.db import ORMSessionDependency
 from .append import append_exportable
+from .connect import engine_for_tracked_dataset
+from .db_actions import drop_tables
 from .mapped_db import mk_exportable
+from .migrate_schema import run_dynamic_migration
+from .overwrite import overwrite_with_exportable
+from .refresh import update_header, pull_header
+from .upload import upload_exportable, specific_sql_rep_schema
 from ..db.models import TrackedMitMDataset
 
+def migrate_schema():
+    pass
+    # header = exportable.generate_header(remote_engine)
+    # sql_rep_schema = specific_sql_rep_schema(header, tracked_dataset.schema_name)
+    # run_dynamic_migration(target_sql_alchemy_uri, sql_rep_schema.sa_meta)
 
 async def pull_data(tracked_dataset: TrackedMitMDataset, db_source: MappedDBSource) -> MappedDBPull:
     assert tracked_dataset.type == 'mapped'
 
-    remote_engine = create_sa_engine(db_source.sql_alchemy_uri)
+    source_sql_alchemy_uri = db_source.sql_alchemy_uri
+    remote_engine = engine_for_tracked_dataset(tracked_dataset)
 
     time_start = datetime.now()
 
-    exportable = mk_exportable(remote_engine, db_source.mitm_mapping)
+    exportable = mk_exportable(remote_engine, db_source.db_mapping)
 
-    ir = await append_exportable(db_source.sql_alchemy_uri, exportable, tracked_dataset)
+    ir = await overwrite_with_exportable(source_sql_alchemy_uri, exportable, tracked_dataset)
 
     time_complete = datetime.now()
 
@@ -35,6 +49,7 @@ async def pull_data(tracked_dataset: TrackedMitMDataset, db_source: MappedDBSour
 
 async def pull_mapped_mitm_dataset(session: ORMSessionDependency,
                                    mapped_dataset: TrackedMitMDataset) -> MappedDBPull:
+
     db_source = mapped_dataset.mapped_db_source
 
     if db_source is None:
@@ -42,9 +57,11 @@ async def pull_mapped_mitm_dataset(session: ORMSessionDependency,
 
     mapped_db_pull = await pull_data(mapped_dataset, db_source)
 
-    mapped_dataset.header_changed = mapped_db_pull.time_complete
     mapped_dataset.data_changed = mapped_db_pull.time_complete
 
+    # await pull_header(session, mapped_dataset, drop_datasource_identifiers=True)
+    # mapped_dataset.header_changed = mapped_db_pull.time_complete
+
     session.add(mapped_db_pull)
     session.commit()
     session.refresh(mapped_db_pull)
diff --git a/app/logic/refresh.py b/app/logic/refresh.py
index 4a23e51edfe5b2cc96e9bb3070cbc30bb3b6e687..e773b51a36c172b6cd5bc302d572ef12cc36f241 100644
--- a/app/logic/refresh.py
+++ b/app/logic/refresh.py
@@ -3,35 +3,34 @@ from typing import TypeVar
 
 from mitm_tooling.representation.intermediate import Header
 from mitm_tooling.representation.intermediate.deltas import diff_header
+from mitm_tooling.representation.sql import SchemaName
 from mitm_tooling.transformation.sql import mitm_db_into_header
 from mitm_tooling.transformation.superset import mk_superset_mitm_dataset_bundle
 from mitm_tooling.transformation.superset.asset_bundles import MitMDatasetIdentifierBundle
-from mitm_tooling.transformation.superset.common import DBConnectionInfo, MitMDatasetInfo
-from mitm_tooling.utilities.sql_utils import create_sa_engine
+from sqlalchemy import Engine
 
 from app.db.models import TrackedMitMDataset, TrackedVisualization
 from app.dependencies.db import ORMSession
-from app.logic.definitions import mk_mitm_dataset_bundle
-from app.logic.register import mk_base_superset_identifiers
+from app.logic.connect import engine_for_tracked_dataset
 
 T = TypeVar('T', bound=TrackedMitMDataset)
 
 
-def remk_superset_identifiers(tracked_dataset: TrackedMitMDataset, drop_datasources: bool = True) -> MitMDatasetIdentifierBundle:
+def remk_superset_identifiers(tracked_dataset: TrackedMitMDataset,
+                              drop_datasources: bool = True) -> MitMDatasetIdentifierBundle:
     update = {}
     if drop_datasources:
         update['ds_id_map'] = {}
     identifiers = tracked_dataset.base_superset_identifier_bundle.model_copy(deep=True, update=update)
     definition = mk_superset_mitm_dataset_bundle(tracked_dataset.mitm_header,
-                                        tracked_dataset.db_conn_info,
-                                        tracked_dataset.dataset_name,
-                                        identifiers=identifiers)
+                                                 tracked_dataset.db_conn_info,
+                                                 tracked_dataset.dataset_name,
+                                                 identifiers=identifiers)
     return definition.identifiers
 
 
-async def infer_header(db_conn_info: DBConnectionInfo) -> Header | None:
-    remote_engine = create_sa_engine(db_conn_info.sql_alchemy_uri)
-    return mitm_db_into_header(remote_engine, override_schema=db_conn_info.schema_name)
+async def infer_header(remote_engine: Engine, schema_name: SchemaName) -> Header | None:
+    return mitm_db_into_header(remote_engine, override_schema=schema_name)
 
 
 def update_header(session: ORMSession,
@@ -69,13 +68,14 @@ def get_incompatible_visualizations(tracked_dataset: TrackedMitMDataset) -> list
 
 
 def get_invalidated_visualizations(tracked_dataset: TrackedMitMDataset) -> list[TrackedVisualization]:
-    return [tv for tv in tracked_dataset.tracked_visualizations if tv.viz_changed < tracked_dataset.header_changed]
+    return [tv for tv in tracked_dataset.tracked_visualizations if
+            tracked_dataset.header_changed and tv.viz_changed < tracked_dataset.header_changed]
 
 
-async def pull_header(session: ORMSession, tracked_dataset: TrackedMitMDataset, drop_datasource_identifiers: bool = True) -> TrackedMitMDataset:
-    assert tracked_dataset.type in {'local', 'external'}
-
-    header = await infer_header(tracked_dataset.db_conn_info)
+async def pull_header(session: ORMSession,
+                      tracked_dataset: TrackedMitMDataset,
+                      drop_datasource_identifiers: bool = True) -> TrackedMitMDataset:
+    header = await infer_header(engine_for_tracked_dataset(tracked_dataset), tracked_dataset.schema_name)
     if header is not None:
         return update_header(session, tracked_dataset, header, drop_datasource_identifiers=drop_datasource_identifiers)
     else:
diff --git a/app/logic/register.py b/app/logic/register.py
index 19748a217c1325206fb2f450f9db650403e8bfaf..d092eeb6a9ba46f533b4311d4ab4f02fe05c001e 100644
--- a/app/logic/register.py
+++ b/app/logic/register.py
@@ -7,11 +7,12 @@ from mitm_tooling.transformation.superset.common import DBConnectionInfo
 from mitm_tooling.transformation.superset.definitions import MitMDatasetIdentifier
 from mitm_tooling.utilities.sql_utils import create_sa_engine
 
-from app.db.models import TrackedMitMDataset, MappedDBSource
-from app.db.models.tracked_mitm_dataset import PostMappedMitMDataset, _typed_kwargs
-from app.db.models.tracked_mitm_dataset import PostTrackedMitMDataset, \
+from app.db.models import PostMappedMitMDataset, mk_typed_kwargs
+from app.db.models import PostTrackedMitMDataset, \
     PostExternalMitMDataset
+from app.db.models import TrackedMitMDataset, MappedDBSource
 from app.dependencies.db import ORMSessionDependency
+from app.logic.connect import engine_for_uri
 from app.logic.mapped_db import mk_exportable
 from app.logic.upload import upload_exportable
 
@@ -52,8 +53,8 @@ def register_mitm_dataset(session: ORMSessionDependency,
 async def register_external_mitm_dataset(session: ORMSessionDependency,
                                          post_model: PostExternalMitMDataset) -> TrackedMitMDataset:
     from .refresh import infer_header
-    header = await infer_header(DBConnectionInfo(sql_alchemy_uri=post_model.sql_alchemy_uri,
-                                                 schema_name=post_model.schema_name))
+
+    header = await infer_header(engine_for_uri(post_model.sql_alchemy_uri), post_model.schema_name)
 
     return register_mitm_dataset(session,
                                  PostTrackedMitMDataset.mk_external(**post_model.__dict__, mitm_header=header))
@@ -64,7 +65,7 @@ async def register_mapped_mitm_dataset(
         add_model: PostMappedMitMDataset,
 ) -> tuple[TrackedMitMDataset, MappedDBSource]:
     remote_engine = create_sa_engine(add_model.sql_alchemy_uri)
-    exportable = mk_exportable(remote_engine, add_model.mapped_db)
+    exportable = mk_exportable(remote_engine, add_model.db_mapping)
     # header = exportable.generate_header(remote_engine)
 
     post_tracked_mitm_dataset = await upload_exportable(add_model.sql_alchemy_uri,
@@ -72,10 +73,10 @@ async def register_mapped_mitm_dataset(
                                                         add_model.dataset_name,
                                                         skip_instances=True)
 
-    post_tracked_mitm_dataset = post_tracked_mitm_dataset.model_copy(update=_typed_kwargs('mapped'))
+    post_tracked_mitm_dataset = post_tracked_mitm_dataset.model_copy(update=mk_typed_kwargs('mapped'))
 
     mapped_db_source = MappedDBSource(sql_alchemy_uri=add_model.sql_alchemy_uri,
-                                      mitm_mapping=add_model.mapped_db,
+                                      db_mapping=add_model.db_mapping,
                                       mitm_header=post_tracked_mitm_dataset.mitm_header)
     session.add(mapped_db_source)
 
diff --git a/app/logic/upload.py b/app/logic/upload.py
index 6bc960cdf7adc44e6e15407bf56775ab4fbb1d22..1a0374a5781bb1e227da2fa671caee6b51194f12 100644
--- a/app/logic/upload.py
+++ b/app/logic/upload.py
@@ -2,29 +2,36 @@ import logging
 from typing import Callable
 from uuid import UUID
 
-import sqlalchemy as sa
 from mitm_tooling.definition import MITM
 from mitm_tooling.extraction.sql.mapping import Exportable
 from mitm_tooling.io import read_zip
 from mitm_tooling.representation.df import TypedMitMDataFrameStream
 from mitm_tooling.representation.intermediate import Header, MITMData
-from mitm_tooling.representation.sql import SQLRepresentationSchema, SQLRepInsertionResult, mk_sql_rep_schema, \
-    insert_data
+from mitm_tooling.representation.sql import insert_data, SQLRepresentationSchema
 from mitm_tooling.transformation.df import exportable_to_typed_mitm_dataframes_stream
 from mitm_tooling.transformation.df import mitm_data_into_mitm_dataframes
-from mitm_tooling.utilities.identifiers import mk_uuid, mk_short_uuid_str, name_plus_uuid
+from mitm_tooling.utilities.identifiers import mk_uuid, name_plus_uuid
 from mitm_tooling.utilities.io_utils import DataSource
 from mitm_tooling.utilities.sql_utils import sa_url_into_any_url, create_sa_engine
 from pydantic import AnyUrl
 from sqlalchemy import Engine
 
-from app.db.models import PostTrackedMitMDataset
-from app.db.utils import create_schema
+from app.db.models import PostTrackedMitMDataset, TrackedMitMDataset
 from app.dependencies.db import get_engine
+from app.logic.db_actions import create_schema
 
 logger = logging.getLogger(__name__)
 
 
+def specific_sql_rep_schema(header: Header, schema_name: str) -> SQLRepresentationSchema:
+    from mitm_tooling.representation.sql import mk_sql_rep_schema
+    return mk_sql_rep_schema(header, override_schema=schema_name, skip_fk_constraints=True)
+
+
+def get_sql_rep_schema(tracked_dataset: TrackedMitMDataset) -> SQLRepresentationSchema:
+    return specific_sql_rep_schema(tracked_dataset.mitm_header, tracked_dataset.schema_name)
+
+
 async def upload_mitm_file(mitm: MITM,
                            mitm_zip: DataSource,
                            dataset_name: str,
@@ -40,11 +47,11 @@ async def upload_mitm_data(mitm_data: MITMData,
                            engine: Engine = None,
                            skip_instances: bool = False) -> PostTrackedMitMDataset:
     if skip_instances:
-        get_instances = lambda: ()
+        gen_instances = lambda: ()
     else:
-        get_instances = lambda: mitm_data_into_mitm_dataframes(mitm_data).typed_stream()
+        gen_instances = lambda: mitm_data_into_mitm_dataframes(mitm_data).typed_stream()
 
-    return await upload_data(lambda: mitm_data.header, get_instances, dataset_name, uuid, engine)
+    return await upload_data(lambda: mitm_data.header, gen_instances, dataset_name, uuid, engine)
 
 
 async def upload_exportable(source: AnyUrl,
@@ -55,19 +62,19 @@ async def upload_exportable(source: AnyUrl,
                             skip_instances: bool = False) -> PostTrackedMitMDataset:
     source_engine = create_sa_engine(source)
 
-    get_header = lambda: exportable.generate_header(source_engine)
+    gen_header = lambda: exportable.generate_header(source_engine)
 
     if skip_instances:
-        get_instances = lambda: ()
+        gen_instances = lambda: ()
     else:
-        def get_instances():
+        def gen_instances():
             return exportable_to_typed_mitm_dataframes_stream(source_engine, exportable, stream_data=False)
 
-    return await upload_data(get_header, get_instances, dataset_name, uuid, engine)
+    return await upload_data(gen_header, gen_instances, dataset_name, uuid, engine)
 
 
-async def upload_data(get_header: Callable[[], Header],
-                      get_instances: Callable[[], TypedMitMDataFrameStream],
+async def upload_data(gen_header: Callable[[], Header],
+                      gen_instances: Callable[[], TypedMitMDataFrameStream],
                       dataset_name: str,
                       uuid: UUID | None = None,
                       engine: Engine = None) -> PostTrackedMitMDataset:
@@ -78,8 +85,8 @@ async def upload_data(get_header: Callable[[], Header],
 
     logger.info(f'Uploading MitM Data with uuid {uuid} into target schema {unique_schema_name} on connected DB {engine.url}.')
 
-    header = get_header()
-    sql_rep_schema = mk_sql_rep_schema(header, override_schema=unique_schema_name, skip_fk_constraints=True)
+    header = gen_header()
+    sql_rep_schema = specific_sql_rep_schema(header, unique_schema_name)
 
     with engine.connect() as connection:
         create_schema(connection, unique_schema_name)
@@ -87,7 +94,7 @@ async def upload_data(get_header: Callable[[], Header],
 
         insertion_result = insert_data(connection,
                                        lambda: sql_rep_schema,
-                                       get_instances,
+                                       gen_instances,
                                        gen_override_header=lambda: header)
 
         logger.info(f'Inserted MitM Data into schema {unique_schema_name}: {insertion_result}')
diff --git a/app/logic/visualizations.py b/app/logic/visualizations.py
index 7c8c2474a1e803e7789562a443c4e0f6893a14bd..a5dabbbf76c1db6fbf0ce71c9e6ea6dbab6c594a 100644
--- a/app/logic/visualizations.py
+++ b/app/logic/visualizations.py
@@ -59,7 +59,7 @@ def refresh_visualizations(orm_session: ORMSession,
 
     for vt in viz_types:
         tv = tvs.get(vt)
-        if vt is None:
+        if tv is None:
             raise HTTPException(400,
                                 f'Visualization type {vt} is not tracked for {tracked_dataset.uuid}.')
         if drop_chart_identifiers:
@@ -67,6 +67,9 @@ def refresh_visualizations(orm_session: ORMSession,
         if drop_dashboard_identifiers:
             tv.identifier_bundle.viz_id_map.clear()
 
+    orm_session.flush()
+    orm_session.refresh(tracked_dataset, attribute_names=['tracked_visualizations'])
+
     new_identifier_bundle = tracked_dataset.superset_identifier_bundle
     for vt in viz_types:
         tv = tvs.get(vt)
diff --git a/app/main.py b/app/main.py
index 4525ddcc8d0b8580ff0110a6840db28e44de85bc..42b83cd521395787d5a48a12b3ccc41f9fc23b15 100644
--- a/app/main.py
+++ b/app/main.py
@@ -1,9 +1,10 @@
 import logging
+
 from fastapi import FastAPI
 
 from .config import app_cfg
 from .dependencies.startup import lifecycle, use_route_names_as_operation_ids
-from .routes import mitm_dataset, definitions, admin, data, viz
+from .routes import mitm_dataset, definitions, admin, data, viz, meta
 
 # Configure logging
 logging.basicConfig(
@@ -17,8 +18,7 @@ app.include_router(definitions.router)
 app.include_router(viz.router)
 app.include_router(data.router)
 app.include_router(admin.router)
-
-use_route_names_as_operation_ids(app)
+app.include_router(meta.router)
 
 
 @app.get('/')
@@ -30,3 +30,5 @@ async def root():
 async def health():
     return {'status': 'healthy'}
 
+
+use_route_names_as_operation_ids(app)
diff --git a/app/routes/admin/router.py b/app/routes/admin/router.py
index a2ad3257b3a3691c8e810387533fc7a112a83cef..e5e87bacb04c117ab7e0ccad2d5c0a03c7781983 100644
--- a/app/routes/admin/router.py
+++ b/app/routes/admin/router.py
@@ -6,8 +6,9 @@ from sqlalchemy import inspect
 from sqlalchemy.sql.ddl import DropSchema
 
 from app.dependencies.orm import get_mitm_datasets
-from ...db.models import ListTrackedMitMDataset
-from ...db.utils import delete_schema, mk_session
+from ...db.models import ListTrackedMitMDataset, APPLICATION_DB_SCHEMA
+from ...db.utils import mk_session
+from ...logic.db_actions import delete_schema
 from ...dependencies.db import DBEngineDependency, ORMSessionDependency
 
 router = APIRouter(prefix='/admin', tags=['admin'])
@@ -53,10 +54,10 @@ def drop_mitm_datasets(engine: DBEngineDependency, orm_session: ORMSessionDepend
 @router.post('/drop-db')
 def drop_db(engine: DBEngineDependency) -> DropSchemasResponse:
     insp = inspect(engine)
-    schemas_to_drop = insp.get_schema_names()
+    schemas_to_drop = [s for s in insp.get_schema_names() if s != APPLICATION_DB_SCHEMA]
     with mk_session(engine) as session:
         for schema_name in schemas_to_drop:
-            session.execute(DropSchema(schema_name, cascade=True))
+            delete_schema(session, schema_name)
             logger.info('Dropped schema: %s', schema_name)
         session.commit()
 
diff --git a/app/routes/definitions/responses.py b/app/routes/definitions/responses.py
index d12bdfd8ba38b06c105a88f5b3e212247a4082b4..3999eaddf2a4148cc4f0fe565856ade33ed88748 100644
--- a/app/routes/definitions/responses.py
+++ b/app/routes/definitions/responses.py
@@ -2,6 +2,7 @@ from typing import Self
 
 from mitm_tooling.transformation.superset.definitions import SupersetMitMDatasetImport, SupersetAssetsImport
 from mitm_tooling.transformation.superset.asset_bundles import SupersetMitMDatasetBundle
+from pydantic import ConfigDict
 
 from app.db.models import FromPydanticModelsMixin
 
diff --git a/app/routes/definitions/router.py b/app/routes/definitions/router.py
index 3d071a82f4c09b4e42ff8604ef6184789b225e0a..fa0b435bd4e79a4aa98fc0715181d03abfbdcaad 100644
--- a/app/routes/definitions/router.py
+++ b/app/routes/definitions/router.py
@@ -2,6 +2,7 @@ import io
 import logging
 
 from fastapi import APIRouter
+from fastapi.encoders import jsonable_encoder
 from mitm_tooling.transformation.superset import write_superset_import_as_zip
 from mitm_tooling.transformation.superset.asset_bundles import SupersetMitMDatasetBundle
 from mitm_tooling.transformation.superset.definitions import SupersetMitMDatasetImport
diff --git a/app/routes/meta/__init__.py b/app/routes/meta/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5d16142a14b01bab0804a708b527a6192bf4b8a
--- /dev/null
+++ b/app/routes/meta/__init__.py
@@ -0,0 +1 @@
+from .router import router
\ No newline at end of file
diff --git a/app/routes/meta/router.py b/app/routes/meta/router.py
new file mode 100644
index 0000000000000000000000000000000000000000..9fb7ab65c6d0dc3c02476a65f0facd9b1f4334fd
--- /dev/null
+++ b/app/routes/meta/router.py
@@ -0,0 +1,25 @@
+import logging
+from typing import Any
+
+from fastapi import APIRouter
+from mitm_tooling.definition import MITM, MITMDefinition, get_mitm_def, mitm_definitions
+from mitm_tooling.extraction.sql.mapping import DBMapping, StandaloneDBMapping
+from pydantic import BaseModel
+from sqlalchemy import inspect
+from sqlalchemy.sql.ddl import DropSchema
+
+from app.dependencies.orm import get_mitm_datasets
+from ...db.models import ListTrackedMitMDataset, APPLICATION_DB_SCHEMA
+from ...db.utils import mk_session
+from ...logic.db_actions import delete_schema
+from ...dependencies.db import DBEngineDependency, ORMSessionDependency
+
+router = APIRouter(prefix='/meta', tags=['meta'])
+
+@router.get('/schema/standalone-db-mapping')
+def get_standalone_db_mapping_schema() -> dict[str, Any]:
+    return StandaloneDBMapping.model_json_schema(by_alias=True)
+
+@router.get('/mitm-defs')
+def get_mitm_defs() -> dict[MITM, MITMDefinition]:
+    return mitm_definitions
\ No newline at end of file
diff --git a/app/routes/mitm_dataset/external/requests.py b/app/routes/mitm_dataset/external/requests.py
index da6e2ac1e87c33feab113ac9ed9c505a54e96c12..2f48afcfc99762b20ec2665ae8c746f9a15395e4 100644
--- a/app/routes/mitm_dataset/external/requests.py
+++ b/app/routes/mitm_dataset/external/requests.py
@@ -1,4 +1,4 @@
-from app.db.models.tracked_mitm_dataset import PostExternalMitMDataset, PatchExternalMitMDataset
+from app.db.models import PostExternalMitMDataset, PatchExternalMitMDataset
 
 
 class RegisterExternalMitMDatasetRequest(PostExternalMitMDataset):
diff --git a/app/routes/mitm_dataset/external/router.py b/app/routes/mitm_dataset/external/router.py
index 0726fc36f40d778a242288f9a042e5f2ccc3ec58..8ffdba3e3d9706aa4210390f202bf3ef690acbb5 100644
--- a/app/routes/mitm_dataset/external/router.py
+++ b/app/routes/mitm_dataset/external/router.py
@@ -3,7 +3,7 @@ import logging
 from fastapi.routing import APIRouter
 
 from app.db.models import ListTrackedMitMDataset
-from app.db.models.tracked_mitm_dataset import GetExternalMitMDataset, TrackedMitMDataset
+from app.db.models import GetExternalMitMDataset, TrackedMitMDataset
 from app.dependencies.db import ORMSessionDependency
 from app.dependencies.orm import ExternalMitMDatasetDependency, get_mitm_datasets
 from app.logic.refresh import pull_header
@@ -41,15 +41,7 @@ def get_external_mitm_dataset(tracked_dataset: ExternalMitMDatasetDependency) ->
 
 @router.get('/', response_model=list[ListTrackedMitMDataset])
 def get_external_mitm_datasets(session: ORMSessionDependency) -> list[TrackedMitMDataset]:
-    sequence = get_mitm_datasets(session, types={'external'})
-    return sequence
-
-
-@router.post('/refresh/{uuid}', response_model=GetExternalMitMDataset)
-async def refresh_external_mitm_dataset(session: ORMSessionDependency,
-                                        external_tracked_dataset: ExternalMitMDatasetDependency) -> TrackedMitMDataset:
-    external_tracked_dataset = await pull_header(session, external_tracked_dataset)
-    logger.info(
-        f'Refreshed external dataset {external_tracked_dataset.uuid} {external_tracked_dataset.dataset_name} @ {external_tracked_dataset.sql_alchemy_uri}'
-    )
-    return external_tracked_dataset
+    return get_mitm_datasets(session, types={'external'})
+
+
+
diff --git a/app/routes/mitm_dataset/local/router.py b/app/routes/mitm_dataset/local/router.py
index e913fdbefa2612db497df00623b591440374b881..bb2e335adfb786411f4287521bb0f02cdaac51e3 100644
--- a/app/routes/mitm_dataset/local/router.py
+++ b/app/routes/mitm_dataset/local/router.py
@@ -3,7 +3,7 @@ import logging
 from fastapi.routing import APIRouter
 
 from app.db.models import GetLocalMitMDataset, ListLocalMitMDataset
-from app.db.models.tracked_mitm_dataset import TrackedMitMDataset
+from app.db.models import TrackedMitMDataset
 from app.dependencies.db import ORMSessionDependency
 from app.dependencies.orm import get_mitm_datasets, LocalMitMDatasetDependency
 from app.routes.mitm_dataset.local.requests import PatchLocalMitMDatasetRequest
diff --git a/app/routes/mitm_dataset/mapped/requests.py b/app/routes/mitm_dataset/mapped/requests.py
index cca275036ef0377239f777a1a5a5a84d3e2d11d7..cd59b9d50a6b0176c373377e93c8c6cf1c0076b4 100644
--- a/app/routes/mitm_dataset/mapped/requests.py
+++ b/app/routes/mitm_dataset/mapped/requests.py
@@ -1,4 +1,4 @@
-from app.db.models.tracked_mitm_dataset import PostMappedMitMDataset, PatchMappedMitMDataset
+from app.db.models import PostMappedMitMDataset, PatchMappedMitMDataset
 
 
 class RegisterMappedMitMDatasetRequest(PostMappedMitMDataset):
diff --git a/app/routes/mitm_dataset/mapped/responses.py b/app/routes/mitm_dataset/mapped/responses.py
index 031f03b522d53d7abb6c96bcc11cd36a52ea100a..e1f5f112f2ccbaaeb1a442094e54ca0514b85cf9 100644
--- a/app/routes/mitm_dataset/mapped/responses.py
+++ b/app/routes/mitm_dataset/mapped/responses.py
@@ -1,5 +1,5 @@
 from app.db.models import MappedDBSource, TrackedMitMDataset, ListMappedDBSource
-from app.db.models.mapped_source import ListMappedDBPull
+from app.db.models import ListMappedDBPull
 from app.routes.mitm_dataset.responses import TrackMitMResponse
 
 
diff --git a/app/routes/mitm_dataset/mapped/router.py b/app/routes/mitm_dataset/mapped/router.py
index c1903023008de3739510617fa0c5f407f9201d50..9f16c5b60311ae2862c707668fe2c51e9e5f594e 100644
--- a/app/routes/mitm_dataset/mapped/router.py
+++ b/app/routes/mitm_dataset/mapped/router.py
@@ -1,17 +1,18 @@
 import logging
 
+from fastapi import BackgroundTasks
 from fastapi.routing import APIRouter
 from sqlmodel import select
 
-from app.db.models import MappedDBPull, GetTrackedMitMDataset
-from app.db.models.mapped_source import ListMappedDBSource, MappedDBSource
-from app.db.models.tracked_mitm_dataset import GetMappedMitMDataset, \
-    ListMappedMitMDataset, TrackedMitMDataset
-from app.dependencies.db import ORMSessionDependency
+from app.db.models import GetMappedMitMDataset, \
+    ListMappedMitMDataset, TrackedMitMDataset, GetMappedDBSource, MappedDBPull, GetMappedDBPull
+from app.db.models import GetTrackedMitMDataset
+from app.db.models import ListMappedDBSource, MappedDBSource
+from app.dependencies.db import ORMSessionDependency, ORMSession
 from app.dependencies.orm import get_mitm_datasets, MappedMitMDatasetDependency, \
-    TrackedMitMDatasetDependency, MappedDBSourceDependency
+    MappedDBSourceDependency
 from .requests import RegisterMappedMitMDatasetRequest, PatchMappedMitMDatasetRequest
-from .responses import MappedDBPullResponse, RegisterMappedMitMResult
+from .responses import RegisterMappedMitMResult
 
 router = APIRouter(prefix='/mapped', tags=['mapped'])
 logger = logging.getLogger(__name__)
@@ -46,32 +47,50 @@ def get_mapped_mitm_datasets(session: ORMSessionDependency) -> list[TrackedMitMD
     return get_mitm_datasets(session, types={'mapped'})
 
 
-@router.post('/pull/{uuid}', response_model=MappedDBPullResponse)
+@router.post('/pull/{uuid}', response_model=GetMappedDBPull)
 async def pull_mapped_mitm_dataset(session: ORMSessionDependency,
                                    mapped_dataset: MappedMitMDatasetDependency) -> MappedDBPull:
     from app.logic.pull_mapped import pull_mapped_mitm_dataset
+    '''
+    Overwrites the existing mapped dataset with the latest data from the source.
+    This drops all superset base identifiers and re-creates them, as the table structure could have changed.
+    '''
     return await pull_mapped_mitm_dataset(session, mapped_dataset)
 
 
+@router.post('/pull/async/{uuid}')
+async def pull_mapped_mitm_dataset_async(session: ORMSessionDependency,
+                                         mapped_dataset: MappedMitMDatasetDependency,
+                                         background_tasks: BackgroundTasks) -> None:
+    from app.logic.pull_mapped import pull_mapped_mitm_dataset
+
+    def task(sess: ORMSession, mds: TrackedMitMDataset):
+        sess.add(mds)  # otherwise, I get the error that the object is not tracked in the session
+        pull_mapped_mitm_dataset(session, mapped_dataset)
+
+    background_tasks.add_task(task, session, mapped_dataset)
+
+
 @router.post('/decouple/{uuid}', response_model=GetTrackedMitMDataset)
 def decouple_mapped_mitm_dataset(session: ORMSessionDependency,
-                                 mapped_dataset: TrackedMitMDatasetDependency) -> TrackedMitMDataset:
+                                 mapped_dataset: MappedMitMDatasetDependency) -> TrackedMitMDataset:
     mapped_dataset = decouple_mapped_mitm_dataset(session, mapped_dataset)
     logger.info(f'Decoupled MappedMitMDataset (uuid={mapped_dataset.uuid}) from MappedDBSource.')
     return mapped_dataset
 
 
 @router.get('/db_source/', response_model=list[ListMappedDBSource])
-def get_mapped_mitm_dataset(session: ORMSessionDependency) -> list[MappedDBSource]:
+def get_mapped_db_sources(session: ORMSessionDependency) -> list[MappedDBSource]:
     return list(session.exec(select(MappedDBSource)))
 
 
-@router.get('/db_source/{uuid}', response_model=ListMappedDBSource)
-def get_mapped_mitm_dataset(session: ORMSessionDependency, db_source: MappedDBSourceDependency) -> MappedDBSource:
+@router.get('/db_source/{id}', response_model=GetMappedDBSource)
+def get_mapped_db_source(session: ORMSessionDependency, db_source: MappedDBSourceDependency) -> MappedDBSource:
+    logger.info('Get Mapped DB Source: %s', db_source)
     return db_source
 
 
-@router.delete('/db_source/{uuid}')
-def get_mapped_mitm_dataset(session: ORMSessionDependency, db_source: MappedDBSourceDependency) -> None:
+@router.delete('/db_source/{id}')
+def delete_mapped_db_source(session: ORMSessionDependency, db_source: MappedDBSourceDependency) -> None:
     session.delete(db_source)
     session.commit()
diff --git a/app/routes/mitm_dataset/requests.py b/app/routes/mitm_dataset/requests.py
index f66723137b2e3bce6674e6dfe3f8ceefb4eea9ad..47032f79bd308f65b1943878bc792e89f77d58c9 100644
--- a/app/routes/mitm_dataset/requests.py
+++ b/app/routes/mitm_dataset/requests.py
@@ -3,7 +3,7 @@ from mitm_tooling.transformation.superset import VisualizationType
 from pydantic import BaseModel
 
 from app.db.models import PostTrackedMitMDataset
-from app.db.models.tracked_mitm_dataset import PatchTrackedMitMDataset
+from app.db.models import PatchTrackedMitMDataset
 
 
 class PostTrackedMitMDatasetRequest(PostTrackedMitMDataset):
diff --git a/app/routes/mitm_dataset/responses.py b/app/routes/mitm_dataset/responses.py
index 1c1a5d9eae16e50da03c7ee2011fca412ee28c32..2d1bf774830238da37623a2c13cfe039ac995f55 100644
--- a/app/routes/mitm_dataset/responses.py
+++ b/app/routes/mitm_dataset/responses.py
@@ -3,7 +3,7 @@ from typing import Literal
 from pydantic import BaseModel
 
 from app.db.models import TrackedMitMDataset, GetTrackedMitMDataset
-from app.db.models.tracked_visualization import ListTrackedVisualization, TrackedVisualization
+from app.db.models import ListTrackedVisualization, TrackedVisualization
 
 
 class TrackMitMResponse(BaseModel):
diff --git a/app/routes/mitm_dataset/router.py b/app/routes/mitm_dataset/router.py
index 60d4f6806344e8d1ddc2e1efefd3dcc4991bfbc5..9f679eacfff42a475f263595e0cde78954e873f7 100644
--- a/app/routes/mitm_dataset/router.py
+++ b/app/routes/mitm_dataset/router.py
@@ -5,7 +5,7 @@ from fastapi.routing import APIRouter
 from mitm_tooling.definition import MITM
 from mitm_tooling.utilities.identifiers import mk_uuid
 from pydantic import ValidationError
-from starlette.responses import StreamingResponse
+from starlette.responses import StreamingResponse, Response
 
 from app.db.models import TrackedMitMDataset, ListTrackedMitMDataset, GetTrackedMitMDataset
 from app.dependencies.db import DBEngineDependency, ORMSessionDependency
@@ -81,8 +81,7 @@ def get_mitm_dataset(tracked_dataset: TrackedMitMDatasetDependency) -> TrackedMi
 @router.get('/', response_model=list[ListTrackedMitMDataset])
 def get_mitm_datasets(session: ORMSessionDependency) -> list[TrackedMitMDataset]:
     from app.dependencies.orm import get_mitm_datasets
-    sequence = get_mitm_datasets(session)
-    return sequence
+    return get_mitm_datasets(session)
 
 
 @router.delete('/{uuid}')
@@ -91,19 +90,45 @@ def delete_mitm_dataset(session: ORMSessionDependency, tracked_dataset: TrackedM
     session.commit()
 
 
-@router.post('/export/{uuid}', response_class=StreamingResponse,
+@router.post('/export/{uuid}',
              responses={200: {'content': {'application/zip': {}}}})
 async def export_mitm_dataset(engine: DBEngineDependency,
-                              tracked_dataset: TrackedMitMDatasetDependency,
-                              use_streaming: bool = False) -> StreamingResponse:
+                              tracked_dataset: TrackedMitMDatasetDependency) -> Response:
     remote_engine, exportable = prepare_export(tracked_dataset)
     with remote_engine.connect() as conn:
-        if use_streaming:
+        ze = exportable.export_to_memory(conn)
+        data = ze.to_buffer()
+        return Response(data.getvalue(),
+                        media_type='application/zip',
+                        headers={'Content-Disposition': 'attachment; filename=export.zip'})
+
+
+@router.post('/export/stream/{uuid}',
+             responses={200: {'content': {'application/zip': {}}}})
+async def export_mitm_dataset_streaming(engine: DBEngineDependency,
+                                        tracked_dataset: TrackedMitMDatasetDependency) -> StreamingResponse:
+    remote_engine, exportable = prepare_export(tracked_dataset)
+
+    def data_streamer():
+        with remote_engine.connect() as conn:
             ze = exportable.export_as_stream(conn)
-            data = ze.iter_bytes()
-        else:
-            ze = exportable.export_to_memory(conn)
-            data = ze.to_buffer()
-        return StreamingResponse(data,
-                                 media_type='application/zip',
-                                 headers={'Content-Disposition': 'attachment; filename=export.zip'})
+            for chunk in ze.iter_bytes():
+                yield chunk
+
+    return StreamingResponse(data_streamer(),
+                             media_type='application/octet-stream',
+                             headers={'Content-Disposition': 'attachment; filename=export.zip'})
+
+
+@router.post('/refresh/{uuid}', response_model=GetTrackedMitMDataset)
+async def refresh_mitm_dataset(session: ORMSessionDependency,
+                               tracked_dataset: TrackedMitMDatasetDependency,
+                               drop_datasource_identifiers: bool = True) -> TrackedMitMDataset:
+    from app.logic.refresh import pull_header
+    external_tracked_dataset = await pull_header(session,
+                                                 tracked_dataset,
+                                                 drop_datasource_identifiers=drop_datasource_identifiers)
+    logger.info(
+        f'Refreshed MitM Dataset {tracked_dataset.dataset_name} ({tracked_dataset.uuid}) @ {tracked_dataset.sql_alchemy_uri}'
+    )
+    return external_tracked_dataset
diff --git a/app/routes/viz/router.py b/app/routes/viz/router.py
index 6559d81b43d3b139bb232c3e765a51bfb2ccc0f3..cf1aec20ff15cf6cfbe4a981d1e86cc65fa93133 100644
--- a/app/routes/viz/router.py
+++ b/app/routes/viz/router.py
@@ -2,7 +2,7 @@ import logging
 
 from fastapi import APIRouter
 
-from app.db.models import TrackedVisualization, ListTrackedVisualization
+from app.db.models import TrackedVisualization, ListTrackedVisualization, GetTrackedVisualization
 from app.dependencies.db import ORMSessionDependency
 from app.dependencies.orm import TrackedMitMDatasetDependency
 from app.logic.visualizations import drop_visualizations
@@ -24,7 +24,7 @@ def track_visualizations(session: ORMSessionDependency,
     return TrackVisualizationsResult(tracked_mitm_dataset=tracked_dataset, tracked_visualizations=list(tvs.values()))
 
 
-@router.get('/{uuid}', response_model=list[ListTrackedVisualization])
+@router.get('/{uuid}', response_model=list[GetTrackedVisualization])
 def get_tracked_visualizations(session: ORMSessionDependency,
                                tracked_dataset: TrackedMitMDatasetDependency) -> list[TrackedVisualization]:
     return tracked_dataset.tracked_visualizations
@@ -38,14 +38,14 @@ def drop_tracked_visualizations(session: ORMSessionDependency,
     # session.refresh(tracked_dataset)
 
 
-@router.get('/{uuid}/invalidated', response_model=list[ListTrackedVisualization])
+@router.get('/{uuid}/invalidated', response_model=list[GetTrackedVisualization])
 def get_invalidated_visualizations(session: ORMSessionDependency,
                                    tracked_dataset: TrackedMitMDatasetDependency) -> list[TrackedVisualization]:
     from app.logic.refresh import get_invalidated_visualizations
-    return get_invalidated_visualizations(tracked_dataset.tracked_visualizations)
+    return get_invalidated_visualizations(tracked_dataset)
 
 
-@router.get('/{uuid}/refresh', response_model=TrackVisualizationsResponse)
+@router.post('/{uuid}/refresh', response_model=TrackVisualizationsResponse)
 def refresh_tracked_visualizations(session: ORMSessionDependency,
                                    tracked_dataset: TrackedMitMDatasetDependency,
                                    request: RefreshTrackVisualizationsRequest) -> TrackVisualizationsResult:
diff --git a/docker-compose.yaml b/docker-compose.yaml
index b5e76a3f41a0aced774361dd185818d42d677d63..5f4270241c795dc4d7e700c744e36b02fb3e0851 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -24,6 +24,8 @@ services:
     ports:
       - "25432:5432"
     env_file: docker/.env
+    healthcheck:
+      test: ["CMD-SHELL", "pg_isready"]
     volumes:
       - mitm_db_home:/var/lib/postgresql/data
 
diff --git a/schema/openapi.json b/schema/openapi.json
index af3d0d87b0ee58fc777d10dfe454632e362fcb1f..ede91c2150bed9fcd5d40160e927958cc8cf1ec5 100644
--- a/schema/openapi.json
+++ b/schema/openapi.json
@@ -1 +1 @@
-{"openapi": "3.1.0", "info": {"title": "SupersetMitMService", "version": "0.1.0"}, "paths": {"/mitm_dataset/upload": {"post": {"tags": ["mitm_dataset"], "summary": "Upload Mitm Dataset", "operationId": "upload_mitm_dataset", "parameters": [{"name": "dataset_name", "in": "query", "required": true, "schema": {"type": "string", "title": "Dataset Name"}}, {"name": "mitm", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/MITM", "default": "MAED"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_mitm_dataset_mitm_dataset_upload_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UploadMitMResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/register": {"post": {"tags": ["mitm_dataset"], "summary": "Register Mitm Dataset", "operationId": "register_mitm_dataset", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterExternalMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterMitMResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/": {"get": {"tags": ["mitm_dataset"], "summary": "Get Mitm Datasets", "operationId": "get_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array", "title": "Response Get Mitm Datasets Mitm Dataset  Get"}}}}}}, "post": {"tags": ["mitm_dataset"], "summary": "Post Mitm Dataset", "operationId": "post_mitm_dataset", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddTrackedMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/{uuid}": {"get": {"tags": ["mitm_dataset"], "summary": "Get Mitm Dataset", "operationId": "get_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["mitm_dataset"], "summary": "Delete Mitm Dataset", "operationId": "delete_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/export/{uuid}": {"post": {"tags": ["mitm_dataset"], "summary": "Export Mitm Dataset", "operationId": "export_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Bundle", "operationId": "generate_mitm_dataset_bundle", "parameters": [{"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetBundleResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/import": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Import", "operationId": "generate_mitm_dataset_import", "parameters": [{"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}, {"name": "override_metadata_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}], "title": "Override Metadata Type"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetImportResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/import/zip": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Import Zip", "operationId": "generate_mitm_dataset_import_zip", "parameters": [{"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}, {"name": "override_metadata_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}], "title": "Override Metadata Type"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}": {"get": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Bundle", "operationId": "generate_tracked_mitm_dataset_bundle", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetBundleResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}/import": {"get": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Import", "operationId": "generate_tracked_mitm_dataset_import", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}, {"name": "override_metadata_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}], "title": "Override Metadata Type"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetImportResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}/import/zip": {"get": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Import Zip", "operationId": "generate_tracked_mitm_dataset_import_zip", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "include_visualizations", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Visualizations"}}, {"name": "override_metadata_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}], "title": "Override Metadata Type"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/viz/{uuid}": {"post": {"tags": ["definitions"], "summary": "Generate Visualizations For Tracked Dataset", "operationId": "generate_visualizations_for_tracked_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetBundleResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/viz/{uuid}/import": {"post": {"tags": ["definitions"], "summary": "Generate Visualizations Import For Tracked Dataset", "operationId": "generate_visualizations_import_for_tracked_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "as_assets", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "As Assets"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VisualizationImportResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/viz/{uuid}/import/zip": {"post": {"tags": ["definitions"], "summary": "Generate Visualizations Import Zip For Tracked Dataset", "operationId": "generate_visualizations_import_zip_for_tracked_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "as_assets", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "As Assets"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/db-meta/{uuid}": {"get": {"tags": ["data"], "summary": "Get Db Meta", "operationId": "get_db_meta", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBMetaResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/db-probe/{uuid}": {"get": {"tags": ["data"], "summary": "Get Db Probe", "operationId": "get_db_probe", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBProbeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/admin/clear-db": {"post": {"tags": ["admin"], "summary": "Clear Db", "description": "Clear the database.", "operationId": "clear_db", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ClearDBResponse"}}}}}}}, "/": {"get": {"summary": "Root", "operationId": "root__get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/health": {"get": {"summary": "Health", "operationId": "health_health_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}}, "components": {"schemas": {"AddTrackedMitMDatasetRequest": {"properties": {"uuid": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Input"}}, "type": "object", "required": ["dataset_name", "schema_name", "sql_alchemy_uri", "mitm_header"], "title": "AddTrackedMitMDatasetRequest"}, "AnnotationLayer": {"properties": {"name": {"type": "string", "title": "Name"}, "value": {"type": "integer", "title": "Value"}, "annotationType": {"$ref": "#/components/schemas/AnnotationType"}, "sourceType": {"$ref": "#/components/schemas/AnnotationSource", "default": "table"}, "opacity": {"type": "string", "title": "Opacity", "default": ""}, "overrides": {"$ref": "#/components/schemas/AnnotationOverrides"}, "hideLine": {"type": "boolean", "title": "Hideline", "default": false}, "show": {"type": "boolean", "title": "Show", "default": false}, "showLabel": {"type": "boolean", "title": "Showlabel", "default": false}, "showMarkers": {"type": "boolean", "title": "Showmarkers", "default": false}, "style": {"type": "string", "title": "Style", "default": "solid"}, "width": {"type": "integer", "title": "Width", "default": 1}}, "type": "object", "required": ["name", "value", "annotationType", "overrides"], "title": "AnnotationLayer"}, "AnnotationOverrides": {"properties": {"time_range": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Time Range"}}, "type": "object", "title": "AnnotationOverrides"}, "AnnotationSource": {"type": "string", "enum": ["line", "NATIVE", "table", ""], "title": "AnnotationSource"}, "AnnotationType": {"type": "string", "enum": ["EVENT", "FORMULA", "INTERVAL", "TIME_SERIES"], "title": "AnnotationType"}, "Body_upload_mitm_dataset_mitm_dataset_upload_post": {"properties": {"mitm_zip": {"type": "string", "format": "binary", "title": "Mitm Zip"}}, "type": "object", "required": ["mitm_zip"], "title": "Body_upload_mitm_dataset_mitm_dataset_upload_post"}, "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"}, "ChartDataResultFormat": {"type": "string", "enum": ["csv", "json", "xlsx"], "title": "ChartDataResultFormat"}, "ChartDataResultType": {"type": "string", "enum": ["columns", "full", "query", "results", "samples", "timegrains", "post_processed", "drill_detail"], "title": "ChartDataResultType"}, "ChartDatasource": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "table_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Table Name"}, "type": {"type": "string", "enum": ["table", "annotation"], "title": "Type", "default": "table"}}, "type": "object", "title": "ChartDatasource"}, "ChartIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "slice_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slice Name"}}, "type": "object", "title": "ChartIdentifier"}, "ChartParams": {"properties": {"datasource": {"anyOf": [{"type": "string"}, {"$ref": "#/components/schemas/DatasetIdentifier"}], "title": "Datasource"}, "viz_type": {"$ref": "#/components/schemas/SupersetVizType"}, "groupby": {"items": {"type": "string"}, "type": "array", "title": "Groupby"}, "adhoc_filters": {"items": {"$ref": "#/components/schemas/SupersetAdhocFilter"}, "type": "array", "title": "Adhoc Filters"}, "row_limit": {"type": "integer", "title": "Row Limit", "default": 10000}, "sort_by_metric": {"type": "boolean", "title": "Sort By Metric", "default": true}, "color_scheme": {"type": "string", "enum": ["blueToGreen", "supersetColors"], "title": "Color Scheme", "default": "supersetColors"}, "show_legend": {"type": "boolean", "title": "Show Legend", "default": true}, "legendType": {"type": "string", "title": "Legendtype", "default": "scroll"}, "legendOrientation": {"type": "string", "title": "Legendorientation", "default": "top"}, "extra_form_data": {"additionalProperties": true, "type": "object", "title": "Extra Form Data"}, "slice_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Slice Id"}, "dashboards": {"items": {"type": "integer"}, "type": "array", "title": "Dashboards"}}, "type": "object", "required": ["datasource", "viz_type"], "title": "ChartParams"}, "ClearDBResponse": {"properties": {"dropped_mitm_datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array"}, {"type": "null"}], "title": "Dropped Mitm Datasets"}, "dropped_schemas": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dropped Schemas"}}, "type": "object", "title": "ClearDBResponse", "description": "Response model for clearing the database."}, "ColName": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ColName"}, "ColumnOfDataset": {"properties": {"datasetUuid": {"type": "string", "format": "uuid", "title": "Datasetuuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "column": {"$ref": "#/components/schemas/ColName"}}, "type": "object", "required": ["datasetUuid", "column"], "title": "ColumnOfDataset"}, "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"}, "ComponentMeta": {"properties": {}, "type": "object", "title": "ComponentMeta"}, "ConceptMapping": {"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"}, "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"}, "ControlValues": {"properties": {"enableEmptyFilter": {"type": "boolean", "title": "Enableemptyfilter", "default": false}, "defaultToFirstItem": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Defaulttofirstitem", "default": false}, "multiSelect": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Multiselect", "default": true}, "searchAllOptions": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Searchalloptions", "default": false}, "inverseSelection": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Inverseselection", "default": false}}, "type": "object", "title": "ControlValues"}, "DBConnectionInfo": {"properties": {"sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, "explicit_db_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Explicit Db Name"}, "schema_name": {"type": "string", "title": "Schema Name", "default": "main"}, "catalog": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Catalog"}}, "type": "object", "required": ["sql_alchemy_uri"], "title": "DBConnectionInfo"}, "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"}, "DBMetaResponse": {"properties": {"db_meta": {"anyOf": [{"$ref": "#/components/schemas/DBMetaInfoBase"}, {"type": "null"}]}}, "type": "object", "title": "DBMetaResponse"}, "DBProbeMinimal": {"properties": {"table_probes": {"additionalProperties": {"$ref": "#/components/schemas/TableProbeMinimal"}, "type": "object", "title": "Table Probes"}}, "type": "object", "title": "DBProbeMinimal"}, "DBProbeResponse": {"properties": {"db_probe": {"anyOf": [{"$ref": "#/components/schemas/DBProbeMinimal"}, {"type": "null"}]}}, "type": "object", "title": "DBProbeResponse"}, "DashboardComponent": {"properties": {"id": {"type": "string", "title": "Id"}, "type": {"$ref": "#/components/schemas/DashboardComponentType"}, "meta": {"anyOf": [{"$ref": "#/components/schemas/ComponentMeta"}, {"type": "null"}]}, "children": {"items": {"type": "string"}, "type": "array", "title": "Children"}}, "type": "object", "required": ["id", "type"], "title": "DashboardComponent"}, "DashboardComponentType": {"type": "string", "enum": ["CHART", "HEADER", "GRID", "ROW", "ROOT"], "title": "DashboardComponentType"}, "DashboardIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dashboard_title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dashboard Title"}}, "type": "object", "title": "DashboardIdentifier"}, "DashboardMetadata": {"properties": {"color_scheme": {"type": "string", "title": "Color Scheme", "default": "blueToGreen"}, "cross_filters_enabled": {"type": "boolean", "title": "Cross Filters Enabled", "default": true}, "native_filter_configuration": {"items": {"$ref": "#/components/schemas/NativeFilterConfig"}, "type": "array", "title": "Native Filter Configuration"}}, "type": "object", "title": "DashboardMetadata"}, "DatabaseIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "database_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Database Name"}}, "type": "object", "title": "DatabaseIdentifier"}, "DatasetIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "table_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Table Name"}}, "type": "object", "title": "DatasetIdentifier"}, "DatasetReference": {"properties": {"datasetUuid": {"type": "string", "format": "uuid", "title": "Datasetuuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}}, "type": "object", "required": ["datasetUuid"], "title": "DatasetReference"}, "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"}, "ExpressionType": {"type": "string", "enum": ["SIMPLE", "SQL"], "title": "ExpressionType"}, "FilterOperator": {"type": "string", "enum": ["==", "!=", ">", "<", ">=", "<=", "LIKE", "NOT LIKE", "ILIKE", "IS NULL", "IS NOT NULL", "IN", "NOT IN", "IS TRUE", "IS FALSE", "TEMPORAL_RANGE"], "title": "FilterOperator"}, "FilterStringOperators": {"type": "string", "enum": ["EQUALS", "NOT_EQUALS", "LESS_THAN", "GREATER_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN_OR_EQUAL", "IN", "NOT_IN", "ILIKE", "LIKE", "IS_NOT_NULL", "IS_NULL", "LATEST_PARTITION", "IS_TRUE", "IS_FALSE"], "title": "FilterStringOperators"}, "FilterType": {"type": "string", "enum": ["filter_select", "filter_timegrain"], "title": "FilterType"}, "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"}, "ForeignRelation": {"properties": {"fk_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Fk Columns"}, "referred_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Referred Table"}}, "type": "object", "required": ["fk_columns", "referred_table"], "title": "ForeignRelation"}, "FormData": {"properties": {}, "type": "object", "title": "FormData"}, "GenerateIndependentMitMDatasetDefinitionRequest": {"properties": {"dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm_header": {"$ref": "#/components/schemas/Header-Input"}, "db_conn_info": {"$ref": "#/components/schemas/DBConnectionInfo"}, "identifiers": {"anyOf": [{"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, {"type": "null"}]}}, "type": "object", "required": ["dataset_name", "mitm_header", "db_conn_info"], "title": "GenerateIndependentMitMDatasetDefinitionRequest"}, "GenerateVisualizationsRequest": {"properties": {"visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types", "default": ["baseline"]}, "reuse_existing_identifiers": {"type": "boolean", "title": "Reuse Existing Identifiers", "default": true}, "track_identifiers": {"type": "boolean", "title": "Track Identifiers", "default": false}}, "type": "object", "title": "GenerateVisualizationsRequest"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "Header-Input": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "header_entries": {"items": {"$ref": "#/components/schemas/HeaderEntry"}, "type": "array", "title": "Header Entries"}}, "type": "object", "required": ["mitm"], "title": "Header"}, "Header-Output": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "header_entries": {"items": {"$ref": "#/components/schemas/HeaderEntry"}, "type": "array", "title": "Header Entries"}}, "type": "object", "required": ["mitm"], "title": "Header"}, "HeaderEntry": {"properties": {"concept": {"type": "string", "title": "Concept"}, "kind": {"type": "string", "title": "Kind"}, "type_name": {"type": "string", "title": "Type Name"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["concept", "kind", "type_name", "attributes", "attribute_dtypes"], "title": "HeaderEntry"}, "ListTrackedMitMDataset": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}}, "type": "object", "required": ["uuid", "dataset_name", "mitm"], "title": "ListTrackedMitMDataset"}, "LocalTableIdentifier": {"properties": {"name": {"type": "string", "title": "Name"}, "schema": {"type": "string", "title": "Schema", "default": "main"}}, "type": "object", "required": ["name"], "title": "LocalTableIdentifier"}, "MAEDVisualizationType": {"type": "string", "enum": ["baseline", "experimental"], "title": "MAEDVisualizationType"}, "MITM": {"type": "string", "enum": ["MAED", "OCEL2"], "title": "MITM"}, "MITMDataType": {"type": "string", "enum": ["text", "json", "integer", "numeric", "boolean", "datetime", "unknown", "infer"], "title": "MITMDataType"}, "MetadataType": {"type": "string", "enum": ["Database", "SqlaTable", "Slice", "Chart", "Dashboard", "Asset", "MitMDataset"], "title": "MetadataType"}, "MitMDatasetBundleResponse": {"properties": {"mitm_dataset": {"$ref": "#/components/schemas/SupersetMitMDatasetDef"}, "datasource_bundle": {"$ref": "#/components/schemas/SupersetDatasourceBundle"}, "visualization_bundle": {"$ref": "#/components/schemas/SupersetVisualizationBundle"}}, "type": "object", "required": ["mitm_dataset", "datasource_bundle"], "title": "MitMDatasetBundleResponse"}, "MitMDatasetIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}}, "type": "object", "title": "MitMDatasetIdentifier"}, "MitMDatasetIdentifierBundle": {"properties": {"database": {"anyOf": [{"$ref": "#/components/schemas/DatabaseIdentifier"}, {"type": "null"}]}, "ds_id_map": {"additionalProperties": {"$ref": "#/components/schemas/DatasetIdentifier"}, "type": "object", "title": "Ds Id Map"}, "mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/MitMDatasetIdentifier"}, {"type": "null"}]}, "viz_id_map": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "object"}, "type": "object", "title": "Viz Id Map"}}, "type": "object", "title": "MitMDatasetIdentifierBundle"}, "MitMDatasetImportResponse": {"properties": {"mitm_datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetMitMDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Mitm Datasets"}, "base_assets": {"anyOf": [{"$ref": "#/components/schemas/SupersetAssetsImport"}, {"type": "null"}]}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "required": ["mitm_datasets", "base_assets"], "title": "MitMDatasetImportResponse"}, "NativeFilterConfig": {"properties": {"id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "targets": {"items": {"anyOf": [{"$ref": "#/components/schemas/DatasetReference"}, {"$ref": "#/components/schemas/ColumnOfDataset"}]}, "type": "array", "title": "Targets"}, "controlValues": {"$ref": "#/components/schemas/ControlValues"}, "filterType": {"$ref": "#/components/schemas/FilterType", "default": "filter_select"}, "type": {"type": "string", "title": "Type", "default": "NATIVE_FILTER"}}, "type": "object", "required": ["id", "name"], "title": "NativeFilterConfig"}, "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"}, "QueryContext": {"properties": {"datasource": {"$ref": "#/components/schemas/ChartDatasource"}, "queries": {"items": {"$ref": "#/components/schemas/QueryObject"}, "type": "array", "title": "Queries"}, "form_data": {"anyOf": [{"$ref": "#/components/schemas/FormData"}, {"type": "null"}]}, "result_type": {"$ref": "#/components/schemas/ChartDataResultType", "default": "full"}, "result_format": {"$ref": "#/components/schemas/ChartDataResultFormat", "default": "json"}, "force": {"type": "boolean", "title": "Force", "default": false}, "custom_cache_timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Custom Cache Timeout"}}, "type": "object", "required": ["datasource"], "title": "QueryContext"}, "QueryObject": {"properties": {"annotation_layers": {"items": {"$ref": "#/components/schemas/AnnotationLayer"}, "type": "array", "title": "Annotation Layers"}, "applied_time_extras": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Applied Time Extras"}, "columns": {"items": {"anyOf": [{"type": "string"}, {"$ref": "#/components/schemas/SupersetAdhocColumn"}]}, "type": "array", "title": "Columns"}, "datasource": {"anyOf": [{"$ref": "#/components/schemas/ChartDatasource"}, {"type": "null"}]}, "extras": {"$ref": "#/components/schemas/QueryObjectExtras"}, "filters": {"items": {"$ref": "#/components/schemas/QueryObjectFilterClause"}, "type": "array", "title": "Filters"}, "metrics": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetAdhocMetric"}, "type": "array"}, {"type": "null"}], "title": "Metrics"}, "granularity": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Granularity"}, "from_dttm": {"anyOf": [{"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "From Dttm"}, "to_dttm": {"anyOf": [{"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "To Dttm"}, "inner_from_dttm": {"anyOf": [{"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "Inner From Dttm"}, "inner_to_dttm": {"anyOf": [{"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "Inner To Dttm"}, "is_rowcount": {"type": "boolean", "title": "Is Rowcount", "default": false}, "is_timeseries": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Timeseries"}, "order_desc": {"type": "boolean", "title": "Order Desc", "default": true}, "orderby": {"items": {"prefixItems": [{"anyOf": [{"$ref": "#/components/schemas/SupersetAdhocMetric"}, {"type": "string"}]}, {"type": "boolean"}], "type": "array", "maxItems": 2, "minItems": 2}, "type": "array", "title": "Orderby"}, "post_processing": {"items": {"anyOf": [{"$ref": "#/components/schemas/SupersetPostProcessing"}, {"additionalProperties": true, "type": "object"}]}, "type": "array", "title": "Post Processing"}, "result_type": {"anyOf": [{"$ref": "#/components/schemas/ChartDataResultType"}, {"type": "null"}]}, "row_limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Row Limit"}, "row_offset": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Row Offset"}, "series_columns": {"items": {"type": "string"}, "type": "array", "title": "Series Columns"}, "series_limit": {"type": "integer", "title": "Series Limit", "default": 0}, "series_limit_metric": {"anyOf": [{"$ref": "#/components/schemas/SupersetAdhocMetric"}, {"type": "null"}]}, "time_offsets": {"items": {"type": "string"}, "type": "array", "title": "Time Offsets"}, "time_shift": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Time Shift"}, "time_range": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Time Range"}, "url_params": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"type": "null"}], "title": "Url Params"}}, "type": "object", "title": "QueryObject"}, "QueryObjectExtras": {"properties": {"having": {"type": "string", "title": "Having", "default": ""}, "where": {"type": "string", "title": "Where", "default": ""}, "time_grain_sqla": {"anyOf": [{"$ref": "#/components/schemas/TimeGrain"}, {"type": "null"}]}}, "type": "object", "title": "QueryObjectExtras"}, "QueryObjectFilterClause": {"properties": {"col": {"type": "string", "title": "Col"}, "op": {"$ref": "#/components/schemas/FilterOperator"}, "val": {"anyOf": [{"type": "boolean"}, {"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "number"}, {"type": "integer"}, {"type": "string"}, {"items": {"anyOf": [{"type": "boolean"}, {"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "number"}, {"type": "integer"}, {"type": "string"}]}, "type": "array"}, {"prefixItems": [{"anyOf": [{"type": "boolean"}, {"type": "string", "format": "date-time", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}, {"type": "number"}, {"type": "integer"}, {"type": "string"}]}], "type": "array", "maxItems": 1, "minItems": 1}, {"type": "null"}], "title": "Val"}, "grain": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Grain"}, "isExtra": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Isextra"}}, "type": "object", "required": ["col", "op"], "title": "QueryObjectFilterClause"}, "RegisterExternalMitMDatasetRequest": {"properties": {"dataset_name": {"type": "string", "title": "Dataset Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "cvvs": {"items": {"$ref": "#/components/schemas/CompiledVirtualView"}, "type": "array", "title": "Cvvs"}, "mappings": {"items": {"$ref": "#/components/schemas/ConceptMapping"}, "type": "array", "title": "Mappings"}}, "type": "object", "required": ["dataset_name", "sql_alchemy_uri", "mitm", "cvvs", "mappings"], "title": "RegisterExternalMitMDatasetRequest"}, "RegisterMitMResponse": {"properties": {"status": {"type": "string", "enum": ["success", "failure"], "title": "Status"}, "tracked_mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/TrackedMitMDataset"}, {"type": "null"}]}, "msg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Msg"}}, "type": "object", "required": ["status"], "title": "RegisterMitMResponse"}, "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": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Json Schema"}}, "type": "object", "title": "SampleSummary"}, "SourceDBType": {"type": "string", "enum": ["original", "working", "virtual"], "title": "SourceDBType"}, "SupersetAdhocColumn": {"properties": {"label": {"type": "string", "title": "Label"}, "sqlExpression": {"type": "string", "title": "Sqlexpression"}, "columnType": {"type": "string", "title": "Columntype", "default": "BASE_AXIS"}, "expressionType": {"type": "string", "title": "Expressiontype", "default": "SQL"}, "timeGrain": {"anyOf": [{"$ref": "#/components/schemas/TimeGrain"}, {"type": "null"}]}}, "type": "object", "required": ["label", "sqlExpression"], "title": "SupersetAdhocColumn"}, "SupersetAdhocFilter": {"properties": {"clause": {"type": "string", "title": "Clause", "default": "WHERE"}, "subject": {"type": "string", "title": "Subject"}, "operator": {"$ref": "#/components/schemas/FilterOperator"}, "operatorId": {"anyOf": [{"$ref": "#/components/schemas/FilterStringOperators"}, {"type": "null"}]}, "comparator": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Comparator", "default": "No filter"}, "expressionType": {"$ref": "#/components/schemas/ExpressionType", "default": "SIMPLE"}, "isExtra": {"type": "boolean", "title": "Isextra", "default": false}, "isNew": {"type": "boolean", "title": "Isnew", "default": false}, "sqlExpression": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sqlexpression"}}, "type": "object", "required": ["subject", "operator"], "title": "SupersetAdhocFilter"}, "SupersetAdhocMetric": {"properties": {"label": {"type": "string", "title": "Label"}, "column": {"$ref": "#/components/schemas/SupersetColumn"}, "expressionType": {"$ref": "#/components/schemas/ExpressionType", "default": "SIMPLE"}, "aggregate": {"$ref": "#/components/schemas/SupersetAggregate", "default": "COUNT"}, "sqlExpression": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sqlexpression"}, "datasourceWarning": {"type": "boolean", "title": "Datasourcewarning", "default": false}, "hasCustomLabel": {"type": "boolean", "title": "Hascustomlabel", "default": false}, "optionName": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optionname"}}, "type": "object", "required": ["label", "column"], "title": "SupersetAdhocMetric"}, "SupersetAggregate": {"type": "string", "enum": ["COUNT", "SUM", "MIN", "MAX", "AVG"], "title": "SupersetAggregate"}, "SupersetAssetsImport": {"properties": {"databases": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatabaseDef"}, "type": "array"}, {"type": "null"}], "title": "Databases"}, "datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Datasets"}, "charts": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetChartDef"}, "type": "array"}, {"type": "null"}], "title": "Charts"}, "dashboards": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDashboardDef"}, "type": "array"}, {"type": "null"}], "title": "Dashboards"}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "title": "SupersetAssetsImport"}, "SupersetChartDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "slice_name": {"type": "string", "title": "Slice Name"}, "viz_type": {"$ref": "#/components/schemas/SupersetVizType"}, "dataset_uuid": {"type": "string", "format": "uuid", "title": "Dataset Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "certified_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certified By"}, "certification_details": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certification Details"}, "params": {"anyOf": [{"$ref": "#/components/schemas/ChartParams"}, {"type": "null"}]}, "query_context": {"anyOf": [{}, {"type": "null"}]}, "cache_timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cache Timeout"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "is_managed_externally": {"type": "boolean", "title": "Is Managed Externally", "default": false}, "external_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "External Url"}}, "type": "object", "required": ["uuid", "slice_name", "viz_type", "dataset_uuid"], "title": "SupersetChartDef"}, "SupersetColumn": {"properties": {"column_name": {"type": "string", "title": "Column Name"}, "verbose_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Verbose Name"}, "id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "is_dttm": {"type": "boolean", "title": "Is Dttm", "default": false}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "type": {"type": "string", "title": "Type", "default": "VARCHAR"}, "advanced_data_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Advanced Data Type"}, "groupby": {"type": "boolean", "title": "Groupby", "default": true}, "filterable": {"type": "boolean", "title": "Filterable", "default": true}, "expression": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Expression"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "python_date_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Python Date Format"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}}, "type": "object", "required": ["column_name"], "title": "SupersetColumn"}, "SupersetDashboardDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dashboard_title": {"type": "string", "title": "Dashboard Title"}, "position": {"additionalProperties": {"anyOf": [{"type": "string"}, {"$ref": "#/components/schemas/DashboardComponent"}]}, "type": "object", "title": "Position"}, "metadata": {"$ref": "#/components/schemas/DashboardMetadata"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "css": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Css"}, "slug": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slug"}, "is_managed_externally": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Managed Externally", "default": false}, "external_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "External Url"}, "certified_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certified By"}, "certification_details": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certification Details"}, "published": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Published", "default": false}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["uuid", "dashboard_title", "position", "metadata"], "title": "SupersetDashboardDef"}, "SupersetDatabaseDef": {"properties": {"database_name": {"type": "string", "title": "Database Name"}, "sqlalchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sqlalchemy Uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "cache_timeout": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Cache Timeout"}, "expose_in_sqllab": {"type": "boolean", "title": "Expose In Sqllab", "default": true}, "allow_run_async": {"type": "boolean", "title": "Allow Run Async", "default": true}, "allow_ctas": {"type": "boolean", "title": "Allow Ctas", "default": false}, "allow_cvas": {"type": "boolean", "title": "Allow Cvas", "default": false}, "allow_dml": {"type": "boolean", "title": "Allow Dml", "default": false}, "allow_file_upload": {"type": "boolean", "title": "Allow File Upload", "default": false}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "impersonate_user": {"type": "boolean", "title": "Impersonate User", "default": false}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "ssh_tunnel": {"type": "null", "title": "Ssh Tunnel"}}, "type": "object", "required": ["database_name", "sqlalchemy_uri", "uuid"], "title": "SupersetDatabaseDef"}, "SupersetDatasetDef": {"properties": {"table_name": {"type": "string", "title": "Table Name"}, "schema": {"type": "string", "title": "Schema"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "database_uuid": {"type": "string", "format": "uuid", "title": "Database Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "main_dttm_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Main Dttm Col"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "default_endpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Endpoint"}, "offset": {"type": "integer", "title": "Offset", "default": 0}, "cache_timeout": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Cache Timeout"}, "catalog": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Catalog"}, "sql": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sql"}, "params": {"title": "Params"}, "template_params": {"title": "Template Params"}, "is_managed_externally": {"type": "boolean", "title": "Is Managed Externally", "default": true}, "external_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "External Url"}, "filter_select_enabled": {"type": "boolean", "title": "Filter Select Enabled", "default": true}, "fetch_values_predicate": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Fetch Values Predicate"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "normalize_columns": {"type": "boolean", "title": "Normalize Columns", "default": false}, "always_filter_main_dttm": {"type": "boolean", "title": "Always Filter Main Dttm", "default": false}, "metrics": {"items": {"$ref": "#/components/schemas/SupersetMetric"}, "type": "array", "title": "Metrics"}, "columns": {"items": {"$ref": "#/components/schemas/SupersetColumn"}, "type": "array", "title": "Columns"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["table_name", "schema", "uuid", "database_uuid"], "title": "SupersetDatasetDef"}, "SupersetDatasourceBundle": {"properties": {"database": {"$ref": "#/components/schemas/SupersetDatabaseDef"}, "datasets": {"items": {"$ref": "#/components/schemas/SupersetDatasetDef"}, "type": "array", "title": "Datasets"}}, "type": "object", "required": ["database"], "title": "SupersetDatasourceBundle"}, "SupersetMetadataDef": {"properties": {"type": {"$ref": "#/components/schemas/MetadataType"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "timestamp": {"type": "string", "format": "date-time", "title": "Timestamp", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}}, "type": "object", "required": ["type"], "title": "SupersetMetadataDef"}, "SupersetMetric": {"properties": {"metric_name": {"type": "string", "title": "Metric Name"}, "verbose_name": {"type": "string", "title": "Verbose Name"}, "expression": {"type": "string", "title": "Expression"}, "metric_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Metric Type"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "d3format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "D3Format"}, "currency": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Currency"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "warning_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Warning Text"}}, "type": "object", "required": ["metric_name", "verbose_name", "expression"], "title": "SupersetMetric"}, "SupersetMitMDatasetDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "mitm_header": {"anyOf": [{"$ref": "#/components/schemas/Header-Output"}, {"type": "null"}]}, "database_uuid": {"type": "string", "format": "uuid", "title": "Database Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "tables": {"anyOf": [{"items": {"$ref": "#/components/schemas/DatasetIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Tables"}, "slices": {"anyOf": [{"items": {"$ref": "#/components/schemas/ChartIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Slices"}, "dashboards": {"anyOf": [{"items": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Dashboards"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["uuid", "dataset_name", "mitm", "database_uuid"], "title": "SupersetMitMDatasetDef"}, "SupersetPostProcessing": {"properties": {"operation": {"type": "string", "title": "Operation"}}, "type": "object", "required": ["operation"], "title": "SupersetPostProcessing"}, "SupersetVisualizationBundle": {"properties": {"charts": {"items": {"$ref": "#/components/schemas/SupersetChartDef"}, "type": "array", "title": "Charts"}, "dashboards": {"items": {"$ref": "#/components/schemas/SupersetDashboardDef"}, "type": "array", "title": "Dashboards"}, "viz_collections": {"anyOf": [{"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "object"}, "type": "object"}, {"type": "null"}], "title": "Viz Collections"}}, "type": "object", "title": "SupersetVisualizationBundle"}, "SupersetVizType": {"type": "string", "enum": ["pie", "echarts_timeseries_bar", "echarts_timeseries_line", "maed_custom"], "title": "SupersetVizType"}, "TableIdentifier": {"properties": {"source": {"$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"}, "TableProbeMinimal": {"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"}}, "type": "object", "required": ["row_count", "inferred_types", "sample_summaries"], "title": "TableProbeMinimal"}, "TimeGrain": {"type": "string", "enum": ["PT1S", "PT5S", "PT30S", "PT1M", "PT5M", "PT10M", "PT15M", "PT30M", "PT0.5H", "PT1H", "PT6H", "P1D", "P1W", "1969-12-28T00:00:00Z/P1W", "1969-12-29T00:00:00Z/P1W", "P1W/1970-01-03T00:00:00Z", "P1W/1970-01-04T00:00:00Z", "P1M", "P3M", "P0.25Y", "P1Y"], "title": "TimeGrain"}, "TrackedMitMDataset": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "is_managed_locally": {"type": "boolean", "title": "Is Managed Locally", "default": true}, "last_edited": {"type": "string", "format": "date-time", "title": "Last Edited"}, "identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}}, "type": "object", "required": ["dataset_name", "schema_name", "sql_alchemy_uri", "mitm_header", "identifier_bundle"], "title": "TrackedMitMDataset"}, "UploadMitMResponse": {"properties": {"status": {"type": "string", "enum": ["success", "failure"], "title": "Status"}, "tracked_mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/TrackedMitMDataset"}, {"type": "null"}]}, "msg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Msg"}}, "type": "object", "required": ["status"], "title": "UploadMitMResponse"}, "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"}, "VisualizationImportResponse": {"properties": {"databases": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatabaseDef"}, "type": "array"}, {"type": "null"}], "title": "Databases"}, "datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Datasets"}, "charts": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetChartDef"}, "type": "array"}, {"type": "null"}], "title": "Charts"}, "dashboards": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDashboardDef"}, "type": "array"}, {"type": "null"}], "title": "Dashboards"}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "title": "VisualizationImportResponse"}, "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": "SupersetMitMService", "version": "0.1.0"}, "paths": {"/mitm_dataset/local/{uuid}": {"patch": {"tags": ["mitm_dataset", "local"], "summary": "Patch Local Mitm Dataset", "operationId": "patch_local_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PatchLocalMitMDatasetRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetLocalMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["mitm_dataset", "local"], "summary": "Get Local Mitm Dataset", "operationId": "get_local_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetLocalMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/local/": {"get": {"tags": ["mitm_dataset", "local"], "summary": "Get Local Mitm Datasets", "operationId": "get_local_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListLocalMitMDataset"}, "type": "array", "title": "Response Get Local Mitm Datasets Mitm Dataset Local  Get"}}}}}}}, "/mitm_dataset/external/register": {"post": {"tags": ["mitm_dataset", "external"], "summary": "Register External Mitm Dataset", "operationId": "register_external_mitm_dataset", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterExternalMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterExternalMitMResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/external/{uuid}": {"patch": {"tags": ["mitm_dataset", "external"], "summary": "Patch External Mitm Dataset", "operationId": "patch_external_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PatchExternalMitMDatasetRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetExternalMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["mitm_dataset", "external"], "summary": "Get External Mitm Dataset", "operationId": "get_external_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetExternalMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/external/": {"get": {"tags": ["mitm_dataset", "external"], "summary": "Get External Mitm Datasets", "operationId": "get_external_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array", "title": "Response Get External Mitm Datasets Mitm Dataset External  Get"}}}}}}}, "/mitm_dataset/mapped/register": {"post": {"tags": ["mitm_dataset", "mapped"], "summary": "Register Mapped Mitm Dataset", "operationId": "register_mapped_mitm_dataset", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterMappedMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegisterMappedMitMResult"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/mapped/{uuid}": {"patch": {"tags": ["mitm_dataset", "mapped"], "summary": "Patch Mapped Mitm Dataset", "operationId": "patch_mapped_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PatchMappedMitMDatasetRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetMappedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["mitm_dataset", "mapped"], "summary": "Get Mapped Mitm Dataset", "operationId": "get_mapped_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetMappedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/mapped/": {"get": {"tags": ["mitm_dataset", "mapped"], "summary": "Get Mapped Mitm Datasets", "operationId": "get_mapped_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListMappedMitMDataset"}, "type": "array", "title": "Response Get Mapped Mitm Datasets Mitm Dataset Mapped  Get"}}}}}}}, "/mitm_dataset/mapped/pull/{uuid}": {"post": {"tags": ["mitm_dataset", "mapped"], "summary": "Pull Mapped Mitm Dataset", "operationId": "pull_mapped_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetMappedDBPull"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/mapped/pull/async/{uuid}": {"post": {"tags": ["mitm_dataset", "mapped"], "summary": "Pull Mapped Mitm Dataset Async", "operationId": "pull_mapped_mitm_dataset_async", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/mapped/decouple/{uuid}": {"post": {"tags": ["mitm_dataset", "mapped"], "summary": "Decouple Mapped Mitm Dataset", "operationId": "decouple_mapped_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/mapped/db_source/": {"get": {"tags": ["mitm_dataset", "mapped"], "summary": "Get Mapped Db Sources", "operationId": "get_mapped_db_sources", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListMappedDBSource"}, "type": "array", "title": "Response Get Mapped Db Sources Mitm Dataset Mapped Db Source  Get"}}}}}}}, "/mitm_dataset/mapped/db_source/{id}": {"get": {"tags": ["mitm_dataset", "mapped"], "summary": "Get Mapped Db Source", "operationId": "get_mapped_db_source", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetMappedDBSource"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["mitm_dataset", "mapped"], "summary": "Delete Mapped Db Source", "operationId": "delete_mapped_db_source", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/upload": {"post": {"tags": ["mitm_dataset"], "summary": "Upload Mitm Dataset", "operationId": "upload_mitm_dataset", "parameters": [{"name": "dataset_name", "in": "query", "required": true, "schema": {"type": "string", "title": "Dataset Name"}}, {"name": "mitm", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/MITM", "default": "MAED"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_mitm_dataset_mitm_dataset_upload_post"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UploadMitMResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/": {"get": {"tags": ["mitm_dataset"], "summary": "Get Mitm Datasets", "operationId": "get_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array", "title": "Response Get Mitm Datasets Mitm Dataset  Get"}}}}}}, "post": {"tags": ["mitm_dataset"], "summary": "Post Mitm Dataset", "operationId": "post_mitm_dataset", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/PostTrackedMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/{uuid}": {"patch": {"tags": ["mitm_dataset"], "summary": "Patch Mitm Dataset", "operationId": "patch_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PatchTrackedMitMDatasetRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["mitm_dataset"], "summary": "Get Mitm Dataset", "operationId": "get_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["mitm_dataset"], "summary": "Delete Mitm Dataset", "operationId": "delete_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/export/{uuid}": {"post": {"tags": ["mitm_dataset"], "summary": "Export Mitm Dataset", "operationId": "export_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}, "application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/export/stream/{uuid}": {"post": {"tags": ["mitm_dataset"], "summary": "Export Mitm Dataset Streaming", "operationId": "export_mitm_dataset_streaming", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}, "application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/mitm_dataset/refresh/{uuid}": {"post": {"tags": ["mitm_dataset"], "summary": "Refresh Mitm Dataset", "operationId": "refresh_mitm_dataset", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}, {"name": "drop_datasource_identifiers", "in": "query", "required": false, "schema": {"type": "boolean", "default": true, "title": "Drop Datasource Identifiers"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Bundle", "operationId": "generate_mitm_dataset_bundle", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateDefinitionsForIndependentMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetBundleResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/import": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Import", "operationId": "generate_mitm_dataset_import", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateImportableDefinitionsForIndependentMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetImportResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/import/zip": {"post": {"tags": ["definitions"], "summary": "Generate Mitm Dataset Import Zip", "operationId": "generate_mitm_dataset_import_zip", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateImportableDefinitionsForIndependentMitMDatasetRequest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}": {"post": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Bundle", "operationId": "generate_tracked_mitm_dataset_bundle", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateDefinitionsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MitMDatasetBundleResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}/import": {"post": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Import", "operationId": "generate_tracked_mitm_dataset_import", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateImportableDefinitionsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SupersetMitMDatasetImport"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/definitions/mitm_dataset/{uuid}/import/zip": {"post": {"tags": ["definitions"], "summary": "Generate Tracked Mitm Dataset Import Zip", "operationId": "generate_tracked_mitm_dataset_import_zip", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateImportableDefinitionsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/zip": {}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/viz/{uuid}": {"post": {"tags": ["viz"], "summary": "Track Visualizations", "operationId": "track_visualizations", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TrackVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TrackVisualizationsResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["viz"], "summary": "Get Tracked Visualizations", "operationId": "get_tracked_visualizations", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/GetTrackedVisualization"}, "title": "Response Get Tracked Visualizations Viz  Uuid  Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["viz"], "summary": "Drop Tracked Visualizations", "operationId": "drop_tracked_visualizations", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DropVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/viz/{uuid}/invalidated": {"get": {"tags": ["viz"], "summary": "Get Invalidated Visualizations", "operationId": "get_invalidated_visualizations", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/GetTrackedVisualization"}, "title": "Response Get Invalidated Visualizations Viz  Uuid  Invalidated Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/viz/{uuid}/refresh": {"post": {"tags": ["viz"], "summary": "Refresh Tracked Visualizations", "operationId": "refresh_tracked_visualizations", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RefreshTrackVisualizationsRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TrackVisualizationsResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/db-meta/{uuid}": {"get": {"tags": ["data"], "summary": "Get Db Meta", "operationId": "get_db_meta", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBMetaResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/data/db-probe/{uuid}": {"get": {"tags": ["data"], "summary": "Get Db Probe", "operationId": "get_db_probe", "parameters": [{"name": "uuid", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Uuid"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DBProbeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/admin/drop-mitm-datasets": {"post": {"tags": ["admin"], "summary": "Drop Mitm Datasets", "operationId": "drop_mitm_datasets", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DropMitMDatasetsResponse"}}}}}}}, "/admin/drop-db": {"post": {"tags": ["admin"], "summary": "Drop Db", "operationId": "drop_db", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DropSchemasResponse"}}}}}}}, "/meta/schema/standalone-db-mapping": {"get": {"tags": ["meta"], "summary": "Get Standalone Db Mapping Schema", "operationId": "get_standalone_db_mapping_schema", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": true, "type": "object", "title": "Response Get Standalone Db Mapping Schema Meta Schema Standalone Db Mapping Get"}}}}}}}, "/meta/mitm-defs": {"get": {"tags": ["meta"], "summary": "Get Mitm Defs", "operationId": "get_mitm_defs", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": {"$ref": "#/components/schemas/MITMDefinition"}, "propertyNames": {"$ref": "#/components/schemas/MITM"}, "type": "object", "title": "Response Get Mitm Defs Meta Mitm Defs Get"}}}}}}}, "/": {"get": {"summary": "Root", "operationId": "root", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/health": {"get": {"summary": "Health", "operationId": "health", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}}, "components": {"schemas": {"AddColumn-Input": {"properties": {"operation": {"type": "string", "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"}, "AddColumn-Output": {"properties": {"operation": {"type": "string", "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_upload_mitm_dataset_mitm_dataset_upload_post": {"properties": {"mitm_zip": {"type": "string", "format": "binary", "title": "Mitm Zip"}}, "type": "object", "required": ["mitm_zip"], "title": "Body_upload_mitm_dataset_mitm_dataset_upload_post"}, "CastColumn-Input": {"properties": {"operation": {"type": "string", "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"}, "CastColumn-Output": {"properties": {"operation": {"type": "string", "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"}, "ChartIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "slice_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slice Name"}}, "type": "object", "title": "ChartIdentifier"}, "ChartParams": {"properties": {"datasource": {"anyOf": [{"type": "string"}, {"$ref": "#/components/schemas/DatasetIdentifier"}], "title": "Datasource"}, "viz_type": {"$ref": "#/components/schemas/SupersetVizType"}, "groupby": {"items": {"type": "string"}, "type": "array", "title": "Groupby"}, "adhoc_filters": {"items": {"$ref": "#/components/schemas/SupersetAdhocFilter"}, "type": "array", "title": "Adhoc Filters"}, "row_limit": {"type": "integer", "title": "Row Limit", "default": 10000}, "sort_by_metric": {"type": "boolean", "title": "Sort By Metric", "default": true}, "color_scheme": {"type": "string", "enum": ["blueToGreen", "supersetColors"], "title": "Color Scheme", "default": "supersetColors"}, "show_legend": {"type": "boolean", "title": "Show Legend", "default": true}, "legendType": {"type": "string", "title": "Legendtype", "default": "scroll"}, "legendOrientation": {"type": "string", "title": "Legendorientation", "default": "top"}, "extra_form_data": {"additionalProperties": true, "type": "object", "title": "Extra Form Data"}, "slice_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Slice Id"}, "dashboards": {"items": {"type": "integer"}, "type": "array", "title": "Dashboards"}}, "type": "object", "required": ["datasource", "viz_type"], "title": "ChartParams"}, "ColName": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ColName"}, "ColumnOfDataset": {"properties": {"datasetUuid": {"type": "string", "format": "uuid", "title": "Datasetuuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "column": {"$ref": "#/components/schemas/ColName"}}, "type": "object", "required": ["datasetUuid", "column"], "title": "ColumnOfDataset"}, "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"}, "ComponentMeta": {"properties": {}, "type": "object", "title": "ComponentMeta"}, "ConceptKind": {"type": "string", "enum": ["concrete", "abstract"], "title": "ConceptKind"}, "ConceptLevel": {"type": "string", "enum": ["main", "sub", "weak"], "title": "ConceptLevel"}, "ConceptMapping-Input": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept": {"type": "string", "title": "Concept"}, "base_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Base Table"}, "kind_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kind Col"}, "type_col": {"type": "string", "title": "Type Col"}, "identity_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Identity Columns"}, "inline_relations": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Inline Relations"}, "foreign_relations": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelation-Input"}, "type": "object", "title": "Foreign Relations"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["mitm", "concept", "base_table", "type_col"], "title": "ConceptMapping"}, "ConceptMapping-Output": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept": {"type": "string", "title": "Concept"}, "base_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Base Table"}, "kind_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kind Col"}, "type_col": {"type": "string", "title": "Type Col"}, "identity_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Identity Columns"}, "inline_relations": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Inline Relations"}, "foreign_relations": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelation-Output"}, "type": "object", "title": "Foreign Relations"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["mitm", "concept", "base_table", "type_col"], "title": "ConceptMapping"}, "ConceptProperties": {"properties": {"nature": {"prefixItems": [{"$ref": "#/components/schemas/ConceptLevel"}, {"$ref": "#/components/schemas/ConceptKind"}], "type": "array", "maxItems": 2, "minItems": 2, "title": "Nature"}, "key": {"type": "string", "title": "Key"}, "plural": {"type": "string", "title": "Plural"}, "typing_concept": {"type": "string", "title": "Typing Concept", "default": "type"}, "column_group_ordering": {"items": {"type": "string", "enum": ["kind", "type", "identity-relations", "inline-relations", "foreign-relations", "attributes"]}, "type": "array", "title": "Column Group Ordering", "default": ["kind", "type", "identity-relations", "inline-relations", "foreign-relations", "attributes"]}, "permit_attributes": {"type": "boolean", "title": "Permit Attributes", "default": true}}, "type": "object", "required": ["nature", "key", "plural"], "title": "ConceptProperties"}, "ControlValues": {"properties": {"enableEmptyFilter": {"type": "boolean", "title": "Enableemptyfilter", "default": false}, "defaultToFirstItem": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Defaulttofirstitem"}, "multiSelect": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Multiselect"}, "searchAllOptions": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Searchalloptions"}, "inverseSelection": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Inverseselection"}}, "type": "object", "title": "ControlValues"}, "DBConnectionInfo": {"properties": {"sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, "explicit_db_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Explicit Db Name"}, "schema_name": {"type": "string", "title": "Schema Name", "default": "main"}, "catalog": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Catalog"}}, "type": "object", "required": ["sql_alchemy_uri"], "title": "DBConnectionInfo"}, "DBMetaInfoBase": {"properties": {"db_structure": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/TableMetaInfoBase"}, "type": "object"}, "type": "object", "title": "Db Structure"}}, "type": "object", "required": ["db_structure"], "title": "DBMetaInfoBase"}, "DBMetaResponse": {"properties": {"db_meta": {"anyOf": [{"$ref": "#/components/schemas/DBMetaInfoBase"}, {"type": "null"}]}}, "type": "object", "title": "DBMetaResponse"}, "DBProbeMinimal": {"properties": {"db_table_probes": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/TableProbeMinimal"}, "type": "object"}, "type": "object", "title": "Db Table Probes"}}, "type": "object", "title": "DBProbeMinimal"}, "DBProbeResponse": {"properties": {"db_probe": {"anyOf": [{"$ref": "#/components/schemas/DBProbeMinimal"}, {"type": "null"}]}}, "type": "object", "title": "DBProbeResponse"}, "DashboardComponent": {"properties": {"id": {"type": "string", "title": "Id"}, "type": {"$ref": "#/components/schemas/DashboardComponentType"}, "meta": {"anyOf": [{"$ref": "#/components/schemas/ComponentMeta"}, {"type": "null"}]}, "children": {"items": {"type": "string"}, "type": "array", "title": "Children"}}, "type": "object", "required": ["id", "type"], "title": "DashboardComponent"}, "DashboardComponentType": {"type": "string", "enum": ["CHART", "HEADER", "GRID", "ROOT", "ROW", "COLUMN", "TAB", "TABS", "MARKDOWN", "DIVIDER"], "title": "DashboardComponentType"}, "DashboardIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dashboard_title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dashboard Title"}}, "type": "object", "title": "DashboardIdentifier"}, "DashboardMetadata": {"properties": {"color_scheme": {"type": "string", "title": "Color Scheme", "default": "blueToGreen"}, "cross_filters_enabled": {"type": "boolean", "title": "Cross Filters Enabled", "default": true}, "native_filter_configuration": {"items": {"$ref": "#/components/schemas/NativeFilterConfig"}, "type": "array", "title": "Native Filter Configuration"}, "chart_configuration": {"additionalProperties": true, "type": "object", "title": "Chart Configuration"}, "global_chart_configuration": {"additionalProperties": true, "type": "object", "title": "Global Chart Configuration"}, "default_filters": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Filters"}, "filter_scopes": {"additionalProperties": true, "type": "object", "title": "Filter Scopes"}, "expanded_slices": {"additionalProperties": true, "type": "object", "title": "Expanded Slices"}}, "type": "object", "title": "DashboardMetadata"}, "DatabaseIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "database_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Database Name"}}, "type": "object", "title": "DatabaseIdentifier"}, "DatasetIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "table_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Table Name"}}, "type": "object", "title": "DatasetIdentifier"}, "DatasetReference": {"properties": {"datasetUuid": {"type": "string", "format": "uuid", "title": "Datasetuuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}}, "type": "object", "required": ["datasetUuid"], "title": "DatasetReference"}, "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"}, "DropMitMDatasetsResponse": {"properties": {"dropped_schemas": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dropped Schemas"}, "dropped_mitm_datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array"}, {"type": "null"}], "title": "Dropped Mitm Datasets"}}, "type": "object", "title": "DropMitMDatasetsResponse"}, "DropSchemasResponse": {"properties": {"dropped_schemas": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dropped Schemas"}}, "type": "object", "title": "DropSchemasResponse"}, "DropVisualizationsRequest": {"properties": {"visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}}, "type": "object", "required": ["visualization_types"], "title": "DropVisualizationsRequest"}, "EditColumns-Input": {"properties": {"operation": {"type": "string", "const": "edit_columns", "title": "Operation", "default": "edit_columns"}, "transforms": {"additionalProperties": {"oneOf": [{"$ref": "#/components/schemas/CastColumn-Input"}], "discriminator": {"propertyName": "operation", "mapping": {"cast_column": "#/components/schemas/CastColumn-Input"}}}, "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-Input"}, {"$ref": "#/components/schemas/ExtractJson"}], "discriminator": {"propertyName": "operation", "mapping": {"add_column": "#/components/schemas/AddColumn-Input", "extract_json": "#/components/schemas/ExtractJson"}}}, "type": "array"}, "type": "object", "title": "Additions"}}, "type": "object", "title": "EditColumns"}, "EditColumns-Output": {"properties": {"operation": {"type": "string", "const": "edit_columns", "title": "Operation", "default": "edit_columns"}, "transforms": {"additionalProperties": {"oneOf": [{"$ref": "#/components/schemas/CastColumn-Output"}], "discriminator": {"propertyName": "operation", "mapping": {"cast_column": "#/components/schemas/CastColumn-Output"}}}, "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-Output"}, {"$ref": "#/components/schemas/ExtractJson"}], "discriminator": {"propertyName": "operation", "mapping": {"add_column": "#/components/schemas/AddColumn-Output", "extract_json": "#/components/schemas/ExtractJson"}}}, "type": "array"}, "type": "object", "title": "Additions"}}, "type": "object", "title": "EditColumns"}, "ExistingTable-Input": {"properties": {"operation": {"type": "string", "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"}, "ExistingTable-Output": {"properties": {"operation": {"type": "string", "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"}, "ExpressionType": {"type": "string", "enum": ["SIMPLE", "SQL"], "title": "ExpressionType"}, "ExtractJson": {"properties": {"operation": {"type": "string", "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"}, "FilterOperator": {"type": "string", "enum": ["==", "!=", ">", "<", ">=", "<=", "LIKE", "NOT LIKE", "ILIKE", "IS NULL", "IS NOT NULL", "IN", "NOT IN", "IS TRUE", "IS FALSE", "TEMPORAL_RANGE"], "title": "FilterOperator"}, "FilterStringOperators": {"type": "string", "enum": ["EQUALS", "NOT_EQUALS", "LESS_THAN", "GREATER_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN_OR_EQUAL", "IN", "NOT_IN", "ILIKE", "LIKE", "IS_NOT_NULL", "IS_NULL", "LATEST_PARTITION", "IS_TRUE", "IS_FALSE"], "title": "FilterStringOperators"}, "FilterType": {"type": "string", "enum": ["filter_select", "filter_timegrain", "filter_time"], "title": "FilterType"}, "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"}, "ForeignRelation-Input": {"properties": {"fk_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Fk Columns"}, "referred_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Referred Table"}}, "type": "object", "required": ["fk_columns", "referred_table"], "title": "ForeignRelation"}, "ForeignRelation-Output": {"properties": {"fk_columns": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"items": {"type": "string"}, "type": "array"}], "title": "Fk Columns"}, "referred_table": {"anyOf": [{"$ref": "#/components/schemas/TableIdentifier"}, {"prefixItems": [{"$ref": "#/components/schemas/SourceDBType"}, {"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 3, "minItems": 3}, {"prefixItems": [{"type": "string"}, {"type": "string"}], "type": "array", "maxItems": 2, "minItems": 2}], "title": "Referred Table"}}, "type": "object", "required": ["fk_columns", "referred_table"], "title": "ForeignRelation"}, "ForeignRelationInfo": {"properties": {"target_concept": {"type": "string", "title": "Target Concept"}, "fk_relations": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Fk Relations"}}, "type": "object", "required": ["target_concept", "fk_relations"], "title": "ForeignRelationInfo"}, "GenerateDefinitionsForIndependentMitMDatasetRequest": {"properties": {"include_default_visualizations": {"type": "boolean", "title": "Include Default Visualizations", "default": false}, "visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm_header": {"$ref": "#/components/schemas/Header-Input"}, "db_conn_info": {"$ref": "#/components/schemas/DBConnectionInfo"}, "identifiers": {"anyOf": [{"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, {"type": "null"}]}}, "type": "object", "required": ["dataset_name", "mitm_header", "db_conn_info"], "title": "GenerateDefinitionsForIndependentMitMDatasetRequest"}, "GenerateDefinitionsRequest": {"properties": {"include_default_visualizations": {"type": "boolean", "title": "Include Default Visualizations", "default": false}, "visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}, "use_existing_identifiers": {"type": "boolean", "title": "Use Existing Identifiers", "default": true}}, "type": "object", "title": "GenerateDefinitionsRequest"}, "GenerateImportableDefinitionsForIndependentMitMDatasetRequest": {"properties": {"include_default_visualizations": {"type": "boolean", "title": "Include Default Visualizations", "default": false}, "visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm_header": {"$ref": "#/components/schemas/Header-Input"}, "db_conn_info": {"$ref": "#/components/schemas/DBConnectionInfo"}, "identifiers": {"anyOf": [{"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, {"type": "null"}]}, "override_metadata_type": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}]}, "included_asset_types": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetAssetType"}, "type": "array"}, {"type": "null"}], "title": "Included Asset Types"}}, "type": "object", "required": ["dataset_name", "mitm_header", "db_conn_info"], "title": "GenerateImportableDefinitionsForIndependentMitMDatasetRequest"}, "GenerateImportableDefinitionsRequest": {"properties": {"include_default_visualizations": {"type": "boolean", "title": "Include Default Visualizations", "default": false}, "visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}, "use_existing_identifiers": {"type": "boolean", "title": "Use Existing Identifiers", "default": true}, "override_metadata_type": {"anyOf": [{"$ref": "#/components/schemas/MetadataType"}, {"type": "null"}]}, "included_asset_types": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetAssetType"}, "type": "array"}, {"type": "null"}], "title": "Included Asset Types"}}, "type": "object", "title": "GenerateImportableDefinitionsRequest"}, "GetExternalMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "header_desynced": {"type": "boolean", "title": "Header Desynced"}, "superset_identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, "tracked_visualizations": {"items": {"$ref": "#/components/schemas/ListTrackedVisualization"}, "type": "array", "title": "Tracked Visualizations"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed", "schema_name", "sql_alchemy_uri", "mitm_header", "header_desynced", "superset_identifier_bundle", "tracked_visualizations"], "title": "GetExternalMitMDataset"}, "GetLocalMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "header_desynced": {"type": "boolean", "title": "Header Desynced"}, "superset_identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, "tracked_visualizations": {"items": {"$ref": "#/components/schemas/ListTrackedVisualization"}, "type": "array", "title": "Tracked Visualizations"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed", "schema_name", "sql_alchemy_uri", "mitm_header", "header_desynced", "superset_identifier_bundle", "tracked_visualizations"], "title": "GetLocalMitMDataset"}, "GetMappedDBPull": {"properties": {"id": {"type": "integer", "title": "Id"}, "mapped_mitm_dataset": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "mapped_db_source": {"$ref": "#/components/schemas/ListMappedDBSource"}, "time_start": {"type": "string", "format": "date-time", "title": "Time Start"}, "time_complete": {"type": "string", "format": "date-time", "title": "Time Complete"}, "insertion_result": {"$ref": "#/components/schemas/SQLRepInsertionResult"}}, "type": "object", "required": ["id", "mapped_mitm_dataset", "mapped_db_source", "time_start", "time_complete", "insertion_result"], "title": "GetMappedDBPull"}, "GetMappedDBSource": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "db_mapping": {"$ref": "#/components/schemas/StandaloneDBMapping-Output"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "mapped_mitm_datasets": {"items": {"$ref": "#/components/schemas/ListTrackedMitMDataset"}, "type": "array", "title": "Mapped Mitm Datasets"}, "pulls": {"items": {"$ref": "#/components/schemas/ListMappedDBPull"}, "type": "array", "title": "Pulls"}, "last_pulled": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Pulled"}}, "type": "object", "required": ["id", "uuid", "sql_alchemy_uri", "db_mapping", "mitm_header", "mapped_mitm_datasets", "pulls", "last_pulled"], "title": "GetMappedDBSource"}, "GetMappedMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "header_desynced": {"type": "boolean", "title": "Header Desynced"}, "superset_identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, "tracked_visualizations": {"items": {"$ref": "#/components/schemas/ListTrackedVisualization"}, "type": "array", "title": "Tracked Visualizations"}, "mapped_db_source": {"anyOf": [{"$ref": "#/components/schemas/ListMappedDBSource"}, {"type": "null"}]}, "pulls": {"items": {"$ref": "#/components/schemas/ListMappedDBPull"}, "type": "array", "title": "Pulls"}, "last_pulled": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Pulled"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed", "schema_name", "sql_alchemy_uri", "mitm_header", "header_desynced", "superset_identifier_bundle", "tracked_visualizations", "mapped_db_source", "pulls", "last_pulled"], "title": "GetMappedMitMDataset"}, "GetTrackedMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "header_desynced": {"type": "boolean", "title": "Header Desynced"}, "superset_identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, "tracked_visualizations": {"items": {"$ref": "#/components/schemas/ListTrackedVisualization"}, "type": "array", "title": "Tracked Visualizations"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed", "schema_name", "sql_alchemy_uri", "mitm_header", "header_desynced", "superset_identifier_bundle", "tracked_visualizations"], "title": "GetTrackedMitMDataset"}, "GetTrackedVisualization": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "tracked_mitm_dataset_id": {"type": "integer", "title": "Tracked Mitm Dataset Id"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "viz_type": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "viz_changed": {"type": "string", "format": "date-time", "title": "Viz Changed"}, "identifier_bundle": {"$ref": "#/components/schemas/VisualizationsIdentifierBundle"}}, "type": "object", "required": ["id", "uuid", "tracked_mitm_dataset_id", "mitm", "viz_type", "viz_changed", "identifier_bundle"], "title": "GetTrackedVisualization"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "Header-Input": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "header_entries": {"items": {"$ref": "#/components/schemas/HeaderEntry"}, "type": "array", "uniqueItems": true, "title": "Header Entries"}}, "type": "object", "required": ["mitm"], "title": "Header"}, "Header-Output": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "header_entries": {"items": {"$ref": "#/components/schemas/HeaderEntry"}, "type": "array", "uniqueItems": true, "title": "Header Entries"}}, "type": "object", "required": ["mitm"], "title": "Header"}, "HeaderEntry": {"properties": {"concept": {"type": "string", "title": "Concept"}, "kind": {"type": "string", "title": "Kind"}, "type_name": {"type": "string", "title": "Type Name"}, "attributes": {"items": {"type": "string"}, "type": "array", "title": "Attributes"}, "attribute_dtypes": {"items": {"$ref": "#/components/schemas/MITMDataType"}, "type": "array", "title": "Attribute Dtypes"}}, "type": "object", "required": ["concept", "kind", "type_name", "attributes", "attribute_dtypes"], "title": "HeaderEntry"}, "Limit": {"properties": {"operation": {"type": "string", "const": "limit", "title": "Operation", "default": "limit"}, "limit": {"type": "integer", "title": "Limit"}}, "type": "object", "required": ["limit"], "title": "Limit"}, "ListLocalMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed"], "title": "ListLocalMitMDataset"}, "ListMappedDBPull": {"properties": {"id": {"type": "integer", "title": "Id"}, "mapped_mitm_dataset_id": {"type": "integer", "title": "Mapped Mitm Dataset Id"}, "mapped_db_source_id": {"type": "integer", "title": "Mapped Db Source Id"}, "time_start": {"type": "string", "format": "date-time", "title": "Time Start"}, "time_complete": {"type": "string", "format": "date-time", "title": "Time Complete"}, "insertion_result": {"$ref": "#/components/schemas/SQLRepInsertionResult"}}, "type": "object", "required": ["id", "mapped_mitm_dataset_id", "mapped_db_source_id", "time_start", "time_complete", "insertion_result"], "title": "ListMappedDBPull"}, "ListMappedDBSource": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "db_mapping": {"$ref": "#/components/schemas/StandaloneDBMapping-Output"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "last_pulled": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Pulled"}}, "type": "object", "required": ["id", "uuid", "sql_alchemy_uri", "db_mapping", "mitm_header", "last_pulled"], "title": "ListMappedDBSource"}, "ListMappedMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "mapped_db_source_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Mapped Db Source Id"}, "last_pulled": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Pulled"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed", "mapped_db_source_id", "last_pulled"], "title": "ListMappedMitMDataset"}, "ListTrackedMitMDataset": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}}, "type": "object", "required": ["id", "uuid", "dataset_name", "mitm", "type", "lives_on_mitm_db", "can_control_data", "can_control_header", "header_changed", "data_changed"], "title": "ListTrackedMitMDataset"}, "ListTrackedVisualization": {"properties": {"id": {"type": "integer", "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "tracked_mitm_dataset_id": {"type": "integer", "title": "Tracked Mitm Dataset Id"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "viz_type": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "viz_changed": {"type": "string", "format": "date-time", "title": "Viz Changed"}}, "type": "object", "required": ["id", "uuid", "tracked_mitm_dataset_id", "mitm", "viz_type", "viz_changed"], "title": "ListTrackedVisualization"}, "LocalTableIdentifier": {"properties": {"name": {"type": "string", "title": "Name"}, "schema": {"type": "string", "title": "Schema", "default": "main"}}, "type": "object", "required": ["name"], "title": "LocalTableIdentifier"}, "MAEDVisualizationType": {"type": "string", "enum": ["baseline", "experimental", "custom-chart"], "title": "MAEDVisualizationType"}, "MITM": {"type": "string", "enum": ["MAED", "OCEL2"], "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_concept_map": {"additionalProperties": {"items": {"type": "string"}, "type": "array", "uniqueItems": true}, "type": "object", "title": "Sub Concept Map"}, "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_concept_map": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Parent Concept Map", "readOnly": true}}, "type": "object", "required": ["main_concepts", "weak_concepts", "sub_concept_map", "concept_relations", "concept_properties", "leaf_concepts", "abstract_concepts", "parent_concept_map"], "title": "MITMDefinition"}, "MappedDBSource": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "db_mapping": {"$ref": "#/components/schemas/StandaloneDBMapping-Output"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}}, "type": "object", "required": ["sql_alchemy_uri", "db_mapping", "mitm_header"], "title": "MappedDBSource"}, "MetadataType": {"type": "string", "enum": ["Database", "SqlaTable", "Slice", "Chart", "Dashboard", "Asset", "MitMDataset"], "title": "MetadataType"}, "MitMDatasetBundleResponse": {"properties": {"mitm_dataset": {"$ref": "#/components/schemas/SupersetMitMDatasetDef"}, "datasource_bundle": {"$ref": "#/components/schemas/SupersetDatasourceBundle"}, "visualization_bundle": {"$ref": "#/components/schemas/SupersetVisualizationBundle"}}, "type": "object", "required": ["mitm_dataset", "datasource_bundle", "visualization_bundle"], "title": "MitMDatasetBundleResponse"}, "MitMDatasetIdentifier": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}}, "type": "object", "title": "MitMDatasetIdentifier"}, "MitMDatasetIdentifierBundle": {"properties": {"ch_id_map": {"additionalProperties": {"$ref": "#/components/schemas/ChartIdentifier"}, "type": "object", "title": "Ch Id Map"}, "viz_id_map": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "object"}, "type": "object", "title": "Viz Id Map"}, "database": {"anyOf": [{"$ref": "#/components/schemas/DatabaseIdentifier"}, {"type": "null"}]}, "ds_id_map": {"additionalProperties": {"$ref": "#/components/schemas/DatasetIdentifier"}, "type": "object", "title": "Ds Id Map"}, "mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/MitMDatasetIdentifier"}, {"type": "null"}]}}, "type": "object", "title": "MitMDatasetIdentifierBundle"}, "MitMDatasetImportResponse": {"properties": {"mitm_datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetMitMDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Mitm Datasets"}, "base_assets": {"anyOf": [{"$ref": "#/components/schemas/SupersetAssetsImport"}, {"type": "null"}]}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "required": ["mitm_datasets", "base_assets"], "title": "MitMDatasetImportResponse"}, "NativeFilterConfig": {"properties": {"id": {"type": "string", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "targets": {"items": {"anyOf": [{"$ref": "#/components/schemas/DatasetReference"}, {"$ref": "#/components/schemas/ColumnOfDataset"}]}, "type": "array", "title": "Targets"}, "controlValues": {"$ref": "#/components/schemas/ControlValues"}, "filterType": {"$ref": "#/components/schemas/FilterType", "default": "filter_select"}, "type": {"type": "string", "title": "Type", "default": "NATIVE_FILTER"}, "scope": {"$ref": "#/components/schemas/NativeFilterScope"}}, "type": "object", "required": ["id", "name"], "title": "NativeFilterConfig"}, "NativeFilterScope": {"properties": {"rootPath": {"items": {"type": "string"}, "type": "array", "title": "Rootpath"}, "excluded": {"items": {"type": "string"}, "type": "array", "title": "Excluded"}}, "type": "object", "title": "NativeFilterScope"}, "NumericSummaryStatistics": {"properties": {"count": {"type": "integer", "title": "Count"}, "mean": {"type": "number", "title": "Mean"}, "min": {"type": "number", "title": "Min"}, "max": {"type": "number", "title": "Max"}, "std": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Std"}, "percentile_25": {"type": "number", "title": "Percentile 25"}, "percentile_50": {"type": "number", "title": "Percentile 50"}, "percentile_75": {"type": "number", "title": "Percentile 75"}}, "type": "object", "required": ["count", "mean", "min", "max", "percentile_25", "percentile_50", "percentile_75"], "title": "NumericSummaryStatistics"}, "OwnedRelations": {"properties": {"identity": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Identity"}, "inline": {"additionalProperties": {"type": "string"}, "type": "object", "title": "Inline"}, "foreign": {"additionalProperties": {"$ref": "#/components/schemas/ForeignRelationInfo"}, "type": "object", "title": "Foreign"}}, "type": "object", "required": ["identity", "inline", "foreign"], "title": "OwnedRelations"}, "PatchExternalMitMDatasetRequest": {"properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}, "schema_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Schema Name"}, "sql_alchemy_uri": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Sql Alchemy Uri"}}, "type": "object", "title": "PatchExternalMitMDatasetRequest"}, "PatchLocalMitMDatasetRequest": {"properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}}, "type": "object", "title": "PatchLocalMitMDatasetRequest"}, "PatchMappedMitMDatasetRequest": {"properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}, "mapped_db_source_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Mapped Db Source Id"}}, "type": "object", "title": "PatchMappedMitMDatasetRequest"}, "PatchTrackedMitMDatasetRequest": {"properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Dataset Name"}, "type": {"anyOf": [{"type": "string", "enum": ["local", "external", "mapped"]}, {"type": "null"}], "title": "Type"}, "lives_on_mitm_db": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Lives On Mitm Db"}, "can_control_data": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Can Control Data"}, "can_control_header": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Can Control Header"}, "schema_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Schema Name"}, "sql_alchemy_uri": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Sql Alchemy Uri"}, "mitm_header": {"anyOf": [{"$ref": "#/components/schemas/Header-Input"}, {"type": "null"}]}}, "type": "object", "title": "PatchTrackedMitMDatasetRequest"}, "PostTrackedMitMDatasetRequest": {"properties": {"uuid": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Uuid"}, "type": {"type": "string", "enum": ["local", "external", "mapped"], "title": "Type"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db"}, "can_control_data": {"type": "boolean", "title": "Can Control Data"}, "can_control_header": {"type": "boolean", "title": "Can Control Header"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "mitm_header": {"$ref": "#/components/schemas/Header-Input"}, "mapped_db_source_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Mapped Db Source Id"}}, "type": "object", "required": ["type", "lives_on_mitm_db", "can_control_data", "can_control_header", "dataset_name", "schema_name", "sql_alchemy_uri", "mitm_header"], "title": "PostTrackedMitMDatasetRequest"}, "RawCompiled-Input": {"properties": {"operation": {"type": "string", "const": "compiled", "title": "Operation", "default": "compiled"}, "typed_query": {"$ref": "#/components/schemas/TypedRawQuery-Input"}}, "type": "object", "required": ["typed_query"], "title": "RawCompiled"}, "RawCompiled-Output": {"properties": {"operation": {"type": "string", "const": "compiled", "title": "Operation", "default": "compiled"}, "typed_query": {"$ref": "#/components/schemas/TypedRawQuery-Output"}}, "type": "object", "required": ["typed_query"], "title": "RawCompiled"}, "RefreshTrackVisualizationsRequest": {"properties": {"visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}, "drop_chart_identifiers": {"type": "boolean", "title": "Drop Chart Identifiers", "default": true}, "drop_dashboard_identifiers": {"type": "boolean", "title": "Drop Dashboard Identifiers", "default": false}}, "type": "object", "required": ["visualization_types"], "title": "RefreshTrackVisualizationsRequest"}, "RegisterExternalMitMDatasetRequest": {"properties": {"uuid": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}}, "type": "object", "required": ["dataset_name", "schema_name", "sql_alchemy_uri"], "title": "RegisterExternalMitMDatasetRequest"}, "RegisterExternalMitMResponse": {"properties": {"status": {"type": "string", "enum": ["success", "failure"], "title": "Status", "default": "failure"}, "tracked_mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/GetTrackedMitMDataset"}, {"type": "null"}]}, "msg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Msg"}}, "type": "object", "title": "RegisterExternalMitMResponse"}, "RegisterMappedMitMDatasetRequest": {"properties": {"uuid": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Uuid"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "db_mapping": {"$ref": "#/components/schemas/StandaloneDBMapping-Input"}}, "type": "object", "required": ["dataset_name", "sql_alchemy_uri", "db_mapping"], "title": "RegisterMappedMitMDatasetRequest"}, "RegisterMappedMitMResult": {"properties": {"status": {"type": "string", "enum": ["success", "failure"], "title": "Status", "default": "failure"}, "tracked_mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/TrackedMitMDataset"}, {"type": "null"}]}, "msg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Msg"}, "mapped_db_source": {"anyOf": [{"$ref": "#/components/schemas/MappedDBSource"}, {"type": "null"}]}}, "type": "object", "title": "RegisterMappedMitMResult"}, "ReselectColumns": {"properties": {"operation": {"type": "string", "const": "reselect_columns", "title": "Operation", "default": "reselect_columns"}, "selection": {"items": {"type": "string"}, "type": "array", "title": "Selection"}}, "type": "object", "required": ["selection"], "title": "ReselectColumns"}, "SQLRepInsertionResult": {"properties": {"inserted_types": {"items": {"$ref": "#/components/schemas/HeaderEntry"}, "type": "array", "title": "Inserted Types"}, "inserted_instances": {"type": "integer", "title": "Inserted Instances"}, "inserted_rows": {"type": "integer", "title": "Inserted Rows"}}, "type": "object", "required": ["inserted_types", "inserted_instances", "inserted_rows"], "title": "SQLRepInsertionResult"}, "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": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Json Schema"}}, "type": "object", "title": "SampleSummary"}, "SimpleJoin-Input": {"properties": {"operation": {"type": "string", "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"}, "SimpleJoin-Output": {"properties": {"operation": {"type": "string", "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", "eq", "ge", "gt", "le", "lt", "in", "notin"], "title": "SimpleSQLOperator"}, "SimpleWhere-Input": {"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"}, "SimpleWhere-Output": {"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"}, "rhs_is_literal": {"type": "boolean", "title": "Rhs Is Literal", "readOnly": true}}, "type": "object", "required": ["lhs", "operator", "rhs", "rhs_is_literal"], "title": "SimpleWhere"}, "SourceDBType": {"type": "string", "enum": ["original", "working", "virtual"], "title": "SourceDBType"}, "StandaloneDBMapping-Input": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept_mappings": {"items": {"$ref": "#/components/schemas/ConceptMapping-Input"}, "type": "array", "title": "Concept Mappings"}, "virtual_db_creation": {"$ref": "#/components/schemas/VirtualDBCreation-Input"}}, "type": "object", "required": ["mitm", "concept_mappings", "virtual_db_creation"], "title": "StandaloneDBMapping"}, "StandaloneDBMapping-Output": {"properties": {"mitm": {"$ref": "#/components/schemas/MITM"}, "concept_mappings": {"items": {"$ref": "#/components/schemas/ConceptMapping-Output"}, "type": "array", "title": "Concept Mappings"}, "virtual_db_creation": {"$ref": "#/components/schemas/VirtualDBCreation-Output"}}, "type": "object", "required": ["mitm", "concept_mappings", "virtual_db_creation"], "title": "StandaloneDBMapping"}, "SupersetAdhocFilter": {"properties": {"clause": {"type": "string", "title": "Clause", "default": "WHERE"}, "subject": {"type": "string", "title": "Subject"}, "operator": {"$ref": "#/components/schemas/FilterOperator"}, "operatorId": {"anyOf": [{"$ref": "#/components/schemas/FilterStringOperators"}, {"type": "null"}]}, "comparator": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Comparator", "default": "No filter"}, "expressionType": {"$ref": "#/components/schemas/ExpressionType", "default": "SIMPLE"}, "isExtra": {"type": "boolean", "title": "Isextra", "default": false}, "isNew": {"type": "boolean", "title": "Isnew", "default": true}, "sqlExpression": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sqlexpression"}}, "type": "object", "required": ["subject", "operator"], "title": "SupersetAdhocFilter"}, "SupersetAssetType": {"type": "string", "enum": ["database", "dataset", "chart", "dashboard", "mitm_dataset"], "title": "SupersetAssetType"}, "SupersetAssetsImport": {"properties": {"databases": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatabaseDef"}, "type": "array"}, {"type": "null"}], "title": "Databases"}, "datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Datasets"}, "charts": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetChartDef"}, "type": "array"}, {"type": "null"}], "title": "Charts"}, "dashboards": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetDashboardDef"}, "type": "array"}, {"type": "null"}], "title": "Dashboards"}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "title": "SupersetAssetsImport"}, "SupersetChartDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "slice_name": {"type": "string", "title": "Slice Name"}, "viz_type": {"$ref": "#/components/schemas/SupersetVizType"}, "dataset_uuid": {"type": "string", "format": "uuid", "title": "Dataset Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "certified_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certified By"}, "certification_details": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certification Details"}, "params": {"anyOf": [{"$ref": "#/components/schemas/ChartParams"}, {"type": "null"}]}, "query_context": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Query Context"}, "cache_timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cache Timeout"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "is_managed_externally": {"type": "boolean", "title": "Is Managed Externally", "default": false}, "external_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "External Url"}}, "type": "object", "required": ["uuid", "slice_name", "viz_type", "dataset_uuid"], "title": "SupersetChartDef"}, "SupersetColumn": {"properties": {"column_name": {"type": "string", "title": "Column Name"}, "verbose_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Verbose Name"}, "id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "is_dttm": {"type": "boolean", "title": "Is Dttm", "default": false}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "type": {"type": "string", "title": "Type", "default": "VARCHAR"}, "advanced_data_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Advanced Data Type"}, "groupby": {"type": "boolean", "title": "Groupby", "default": true}, "filterable": {"type": "boolean", "title": "Filterable", "default": true}, "expression": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Expression"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "python_date_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Python Date Format"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}}, "type": "object", "required": ["column_name"], "title": "SupersetColumn"}, "SupersetDashboardDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dashboard_title": {"type": "string", "title": "Dashboard Title"}, "position": {"additionalProperties": {"anyOf": [{"type": "string"}, {"$ref": "#/components/schemas/DashboardComponent"}]}, "type": "object", "title": "Position"}, "metadata": {"$ref": "#/components/schemas/DashboardMetadata"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "css": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Css"}, "slug": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slug"}, "is_managed_externally": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Managed Externally", "default": false}, "external_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, {"type": "null"}], "title": "External Url"}, "certified_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certified By"}, "certification_details": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Certification Details"}, "published": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Published", "default": false}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["uuid", "dashboard_title", "position", "metadata"], "title": "SupersetDashboardDef"}, "SupersetDatabaseDef": {"properties": {"database_name": {"type": "string", "title": "Database Name"}, "sqlalchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sqlalchemy Uri", "description": "Better annotation for AnyUrl. Parses from string format, serializes to string format."}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "cache_timeout": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Cache Timeout"}, "expose_in_sqllab": {"type": "boolean", "title": "Expose In Sqllab", "default": true}, "allow_run_async": {"type": "boolean", "title": "Allow Run Async", "default": true}, "allow_ctas": {"type": "boolean", "title": "Allow Ctas", "default": false}, "allow_cvas": {"type": "boolean", "title": "Allow Cvas", "default": false}, "allow_dml": {"type": "boolean", "title": "Allow Dml", "default": false}, "allow_file_upload": {"type": "boolean", "title": "Allow File Upload", "default": false}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "impersonate_user": {"type": "boolean", "title": "Impersonate User", "default": false}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "ssh_tunnel": {"type": "null", "title": "Ssh Tunnel"}}, "type": "object", "required": ["database_name", "sqlalchemy_uri", "uuid"], "title": "SupersetDatabaseDef"}, "SupersetDatasetDef": {"properties": {"table_name": {"type": "string", "title": "Table Name"}, "schema": {"type": "string", "title": "Schema"}, "uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "database_uuid": {"type": "string", "format": "uuid", "title": "Database Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "main_dttm_col": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Main Dttm Col"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "default_endpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Endpoint"}, "offset": {"type": "integer", "title": "Offset", "default": 0}, "cache_timeout": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Cache Timeout"}, "catalog": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Catalog"}, "sql": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sql"}, "params": {"title": "Params"}, "template_params": {"title": "Template Params"}, "is_managed_externally": {"type": "boolean", "title": "Is Managed Externally", "default": true}, "external_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "External Url"}, "filter_select_enabled": {"type": "boolean", "title": "Filter Select Enabled", "default": true}, "fetch_values_predicate": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Fetch Values Predicate"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "normalize_columns": {"type": "boolean", "title": "Normalize Columns", "default": false}, "always_filter_main_dttm": {"type": "boolean", "title": "Always Filter Main Dttm", "default": false}, "metrics": {"items": {"$ref": "#/components/schemas/SupersetMetric"}, "type": "array", "title": "Metrics"}, "columns": {"items": {"$ref": "#/components/schemas/SupersetColumn"}, "type": "array", "title": "Columns"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["table_name", "schema", "uuid", "database_uuid"], "title": "SupersetDatasetDef"}, "SupersetDatasourceBundle": {"properties": {"database": {"$ref": "#/components/schemas/SupersetDatabaseDef"}, "datasets": {"items": {"$ref": "#/components/schemas/SupersetDatasetDef"}, "type": "array", "title": "Datasets"}}, "type": "object", "required": ["database"], "title": "SupersetDatasourceBundle"}, "SupersetMetadataDef": {"properties": {"type": {"$ref": "#/components/schemas/MetadataType"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}, "timestamp": {"type": "string", "format": "date-time", "title": "Timestamp", "description": "Better annotation for datetime. Parses from string format, serializes to string format."}}, "type": "object", "required": ["type"], "title": "SupersetMetadataDef"}, "SupersetMetric": {"properties": {"metric_name": {"type": "string", "title": "Metric Name"}, "verbose_name": {"type": "string", "title": "Verbose Name"}, "expression": {"type": "string", "title": "Expression"}, "metric_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Metric Type"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "d3format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "D3Format"}, "currency": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Currency"}, "extra": {"additionalProperties": true, "type": "object", "title": "Extra"}, "warning_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Warning Text"}}, "type": "object", "required": ["metric_name", "verbose_name", "expression"], "title": "SupersetMetric"}, "SupersetMitMDatasetDef": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "mitm": {"$ref": "#/components/schemas/MITM"}, "mitm_header": {"anyOf": [{"$ref": "#/components/schemas/Header-Output"}, {"type": "null"}]}, "database_uuid": {"type": "string", "format": "uuid", "title": "Database Uuid", "description": "Better annotation for UUID. Parses from string format, serializes to string format."}, "tables": {"anyOf": [{"items": {"$ref": "#/components/schemas/DatasetIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Tables"}, "slices": {"anyOf": [{"items": {"$ref": "#/components/schemas/ChartIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Slices"}, "dashboards": {"anyOf": [{"items": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "array"}, {"type": "null"}], "title": "Dashboards"}, "version": {"type": "string", "title": "Version", "default": "1.0.0"}}, "type": "object", "required": ["uuid", "dataset_name", "mitm", "database_uuid"], "title": "SupersetMitMDatasetDef"}, "SupersetMitMDatasetImport": {"properties": {"mitm_datasets": {"anyOf": [{"items": {"$ref": "#/components/schemas/SupersetMitMDatasetDef"}, "type": "array"}, {"type": "null"}], "title": "Mitm Datasets"}, "base_assets": {"anyOf": [{"$ref": "#/components/schemas/SupersetAssetsImport"}, {"type": "null"}]}, "metadata": {"$ref": "#/components/schemas/SupersetMetadataDef"}}, "type": "object", "required": ["mitm_datasets", "base_assets"], "title": "SupersetMitMDatasetImport"}, "SupersetVisualizationBundle": {"properties": {"charts": {"items": {"$ref": "#/components/schemas/SupersetChartDef"}, "type": "array", "title": "Charts"}, "dashboards": {"items": {"$ref": "#/components/schemas/SupersetDashboardDef"}, "type": "array", "title": "Dashboards"}, "named_charts": {"anyOf": [{"additionalProperties": {"$ref": "#/components/schemas/ChartIdentifier"}, "type": "object"}, {"type": "null"}], "title": "Named Charts"}, "viz_collections": {"anyOf": [{"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "object"}, "type": "object"}, {"type": "null"}], "title": "Viz Collections"}}, "type": "object", "title": "SupersetVisualizationBundle"}, "SupersetVizType": {"type": "string", "enum": ["pie", "big_number", "big_number_total", "echarts_timeseries_bar", "echarts_timeseries_line", "maed_custom"], "title": "SupersetVizType"}, "TableFilter-Input": {"properties": {"operation": {"type": "string", "const": "table_filter", "title": "Operation", "default": "table_filter"}, "wheres": {"items": {"$ref": "#/components/schemas/SimpleWhere-Input"}, "type": "array", "title": "Wheres"}, "limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Limit"}}, "type": "object", "required": ["wheres"], "title": "TableFilter"}, "TableFilter-Output": {"properties": {"operation": {"type": "string", "const": "table_filter", "title": "Operation", "default": "table_filter"}, "wheres": {"items": {"$ref": "#/components/schemas/SimpleWhere-Output"}, "type": "array", "title": "Wheres"}, "limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Limit"}}, "type": "object", "required": ["wheres"], "title": "TableFilter"}, "TableIdentifier": {"properties": {"source": {"$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"}, "TableProbeMinimal": {"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"}}, "type": "object", "required": ["row_count", "inferred_types", "sample_summaries"], "title": "TableProbeMinimal"}, "TrackVisualizationsRequest": {"properties": {"visualization_types": {"items": {"$ref": "#/components/schemas/MAEDVisualizationType"}, "type": "array", "title": "Visualization Types"}}, "type": "object", "required": ["visualization_types"], "title": "TrackVisualizationsRequest"}, "TrackVisualizationsResponse": {"properties": {"tracked_mitm_dataset": {"$ref": "#/components/schemas/GetTrackedMitMDataset"}, "tracked_visualizations": {"items": {"$ref": "#/components/schemas/ListTrackedVisualization"}, "type": "array", "title": "Tracked Visualizations"}}, "type": "object", "required": ["tracked_mitm_dataset", "tracked_visualizations"], "title": "TrackVisualizationsResponse"}, "TrackedMitMDataset": {"properties": {"uuid": {"type": "string", "format": "uuid", "title": "Uuid"}, "id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}, "dataset_name": {"type": "string", "title": "Dataset Name"}, "schema_name": {"type": "string", "title": "Schema Name"}, "sql_alchemy_uri": {"type": "string", "minLength": 1, "format": "uri", "title": "Sql Alchemy Uri"}, "type": {"type": "string", "title": "Type", "default": "local"}, "lives_on_mitm_db": {"type": "boolean", "title": "Lives On Mitm Db", "default": true}, "can_control_data": {"type": "boolean", "title": "Can Control Data", "default": true}, "can_control_header": {"type": "boolean", "title": "Can Control Header", "default": true}, "header_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Header Changed"}, "data_changed": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Data Changed"}, "mitm_header": {"$ref": "#/components/schemas/Header-Output"}, "base_superset_identifier_bundle": {"$ref": "#/components/schemas/MitMDatasetIdentifierBundle"}, "mapped_db_source_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Mapped Db Source Id"}}, "type": "object", "required": ["dataset_name", "schema_name", "sql_alchemy_uri", "mitm_header", "base_superset_identifier_bundle"], "title": "TrackedMitMDataset"}, "TypedRawQuery-Input": {"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"}, "TypedRawQuery-Output": {"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"}, "UploadMitMResponse": {"properties": {"status": {"type": "string", "enum": ["success", "failure"], "title": "Status", "default": "failure"}, "tracked_mitm_dataset": {"anyOf": [{"$ref": "#/components/schemas/GetTrackedMitMDataset"}, {"type": "null"}]}, "msg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Msg"}}, "type": "object", "title": "UploadMitMResponse"}, "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"}, "VirtualDBCreation-Input": {"properties": {"virtual_view_creations": {"items": {"$ref": "#/components/schemas/VirtualViewCreation-Input"}, "type": "array", "title": "Virtual View Creations"}}, "type": "object", "title": "VirtualDBCreation"}, "VirtualDBCreation-Output": {"properties": {"virtual_view_creations": {"items": {"$ref": "#/components/schemas/VirtualViewCreation-Output"}, "type": "array", "title": "Virtual View Creations"}}, "type": "object", "title": "VirtualDBCreation"}, "VirtualViewCreation-Input": {"properties": {"name": {"type": "string", "title": "Name"}, "schema": {"type": "string", "title": "Schema", "default": "virtual"}, "table_creation": {"oneOf": [{"$ref": "#/components/schemas/SimpleJoin-Input"}, {"$ref": "#/components/schemas/ExistingTable-Input"}, {"$ref": "#/components/schemas/RawCompiled-Input"}], "title": "Table Creation", "discriminator": {"propertyName": "operation", "mapping": {"compiled": "#/components/schemas/RawCompiled-Input", "existing": "#/components/schemas/ExistingTable-Input", "join": "#/components/schemas/SimpleJoin-Input"}}}, "transforms": {"anyOf": [{"items": {"oneOf": [{"$ref": "#/components/schemas/EditColumns-Input"}, {"$ref": "#/components/schemas/ReselectColumns"}, {"$ref": "#/components/schemas/TableFilter-Input"}, {"$ref": "#/components/schemas/Limit"}], "discriminator": {"propertyName": "operation", "mapping": {"edit_columns": "#/components/schemas/EditColumns-Input", "limit": "#/components/schemas/Limit", "reselect_columns": "#/components/schemas/ReselectColumns", "table_filter": "#/components/schemas/TableFilter-Input"}}}, "type": "array"}, {"type": "null"}], "title": "Transforms"}}, "type": "object", "required": ["name", "table_creation"], "title": "VirtualViewCreation"}, "VirtualViewCreation-Output": {"properties": {"name": {"type": "string", "title": "Name"}, "schema": {"type": "string", "title": "Schema", "default": "virtual"}, "table_creation": {"oneOf": [{"$ref": "#/components/schemas/SimpleJoin-Output"}, {"$ref": "#/components/schemas/ExistingTable-Output"}, {"$ref": "#/components/schemas/RawCompiled-Output"}], "title": "Table Creation", "discriminator": {"propertyName": "operation", "mapping": {"compiled": "#/components/schemas/RawCompiled-Output", "existing": "#/components/schemas/ExistingTable-Output", "join": "#/components/schemas/SimpleJoin-Output"}}}, "transforms": {"anyOf": [{"items": {"oneOf": [{"$ref": "#/components/schemas/EditColumns-Output"}, {"$ref": "#/components/schemas/ReselectColumns"}, {"$ref": "#/components/schemas/TableFilter-Output"}, {"$ref": "#/components/schemas/Limit"}], "discriminator": {"propertyName": "operation", "mapping": {"edit_columns": "#/components/schemas/EditColumns-Output", "limit": "#/components/schemas/Limit", "reselect_columns": "#/components/schemas/ReselectColumns", "table_filter": "#/components/schemas/TableFilter-Output"}}}, "type": "array"}, {"type": "null"}], "title": "Transforms"}}, "type": "object", "required": ["name", "table_creation"], "title": "VirtualViewCreation"}, "VisualizationsIdentifierBundle": {"properties": {"ch_id_map": {"additionalProperties": {"$ref": "#/components/schemas/ChartIdentifier"}, "type": "object", "title": "Ch Id Map"}, "viz_id_map": {"additionalProperties": {"additionalProperties": {"$ref": "#/components/schemas/DashboardIdentifier"}, "type": "object"}, "type": "object", "title": "Viz Id Map"}}, "type": "object", "title": "VisualizationsIdentifierBundle"}, "WrappedMITMDataType": {"properties": {"mitm": {"$ref": "#/components/schemas/MITMDataType"}}, "type": "object", "required": ["mitm"], "title": "WrappedMITMDataType"}}}}
\ No newline at end of file
diff --git a/schema/openapi.yaml b/schema/openapi.yaml
index 9b334f347d0cdf5d041913ceeb9e6f4dc663690b..2090ac5e73654059b0641d53d56dec8576df368c 100644
--- a/schema/openapi.yaml
+++ b/schema/openapi.yaml
@@ -1,108 +1,51 @@
 components:
   schemas:
-    AddTrackedMitMDatasetRequest:
+    AddColumn-Input:
       properties:
-        dataset_name:
-          title: Dataset Name
-          type: string
-        mitm_header:
-          $ref: '#/components/schemas/Header-Input'
-        schema_name:
-          title: Schema Name
+        col_name:
+          title: Col Name
           type: string
-        sql_alchemy_uri:
-          format: uri
-          minLength: 1
-          title: Sql Alchemy Uri
+        operation:
+          const: add_column
+          default: add_column
+          title: Operation
           type: string
-        uuid:
+        target_type:
           anyOf:
-          - format: uuid
-            type: string
-          - type: 'null'
-          title: Uuid
+          - $ref: '#/components/schemas/WrappedMITMDataType'
+          - type: string
+          title: Target Type
+        value:
+          title: Value
       required:
-      - dataset_name
-      - schema_name
-      - sql_alchemy_uri
-      - mitm_header
-      title: AddTrackedMitMDatasetRequest
+      - col_name
+      - value
+      - target_type
+      title: AddColumn
       type: object
-    AnnotationLayer:
+    AddColumn-Output:
       properties:
-        annotationType:
-          $ref: '#/components/schemas/AnnotationType'
-        hideLine:
-          default: false
-          title: Hideline
-          type: boolean
-        name:
-          title: Name
+        col_name:
+          title: Col Name
           type: string
-        opacity:
-          default: ''
-          title: Opacity
-          type: string
-        overrides:
-          $ref: '#/components/schemas/AnnotationOverrides'
-        show:
-          default: false
-          title: Show
-          type: boolean
-        showLabel:
-          default: false
-          title: Showlabel
-          type: boolean
-        showMarkers:
-          default: false
-          title: Showmarkers
-          type: boolean
-        sourceType:
-          $ref: '#/components/schemas/AnnotationSource'
-          default: table
-        style:
-          default: solid
-          title: Style
+        operation:
+          const: add_column
+          default: add_column
+          title: Operation
           type: string
+        target_type:
+          anyOf:
+          - $ref: '#/components/schemas/WrappedMITMDataType'
+          - type: string
+          title: Target Type
         value:
           title: Value
-          type: integer
-        width:
-          default: 1
-          title: Width
-          type: integer
       required:
-      - name
+      - col_name
       - value
-      - annotationType
-      - overrides
-      title: AnnotationLayer
-      type: object
-    AnnotationOverrides:
-      properties:
-        time_range:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Time Range
-      title: AnnotationOverrides
+      - target_type
+      title: AddColumn
       type: object
-    AnnotationSource:
-      enum:
-      - line
-      - NATIVE
-      - table
-      - ''
-      title: AnnotationSource
-      type: string
-    AnnotationType:
-      enum:
-      - EVENT
-      - FORMULA
-      - INTERVAL
-      - TIME_SERIES
-      title: AnnotationType
-      type: string
     Body_upload_mitm_dataset_mitm_dataset_upload_post:
       properties:
         mitm_zip:
@@ -113,6 +56,38 @@ components:
       - mitm_zip
       title: Body_upload_mitm_dataset_mitm_dataset_upload_post
       type: object
+    CastColumn-Input:
+      properties:
+        operation:
+          const: cast_column
+          default: cast_column
+          title: Operation
+          type: string
+        target_type:
+          anyOf:
+          - $ref: '#/components/schemas/WrappedMITMDataType'
+          - type: string
+          title: Target Type
+      required:
+      - target_type
+      title: CastColumn
+      type: object
+    CastColumn-Output:
+      properties:
+        operation:
+          const: cast_column
+          default: cast_column
+          title: Operation
+          type: string
+        target_type:
+          anyOf:
+          - $ref: '#/components/schemas/WrappedMITMDataType'
+          - type: string
+          title: Target Type
+      required:
+      - target_type
+      title: CastColumn
+      type: object
     CategoricalSummaryStatistics:
       properties:
         count:
@@ -137,52 +112,6 @@ components:
       - freq
       title: CategoricalSummaryStatistics
       type: object
-    ChartDataResultFormat:
-      enum:
-      - csv
-      - json
-      - xlsx
-      title: ChartDataResultFormat
-      type: string
-    ChartDataResultType:
-      enum:
-      - columns
-      - full
-      - query
-      - results
-      - samples
-      - timegrains
-      - post_processed
-      - drill_detail
-      title: ChartDataResultType
-      type: string
-    ChartDatasource:
-      properties:
-        id:
-          anyOf:
-          - type: integer
-          - type: 'null'
-          title: Id
-        table_name:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Table Name
-        type:
-          default: table
-          enum:
-          - table
-          - annotation
-          title: Type
-          type: string
-        uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Uuid
-          type: string
-      title: ChartDatasource
-      type: object
     ChartIdentifier:
       properties:
         id:
@@ -268,25 +197,6 @@ components:
       - viz_type
       title: ChartParams
       type: object
-    ClearDBResponse:
-      description: Response model for clearing the database.
-      properties:
-        dropped_mitm_datasets:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/ListTrackedMitMDataset'
-            type: array
-          - type: 'null'
-          title: Dropped Mitm Datasets
-        dropped_schemas:
-          anyOf:
-          - items:
-              type: string
-            type: array
-          - type: 'null'
-          title: Dropped Schemas
-      title: ClearDBResponse
-      type: object
     ColName:
       properties:
         name:
@@ -339,46 +249,96 @@ components:
       - mitm_data_type
       title: ColumnProperties
       type: object
-    CompiledVirtualView:
+    ComponentMeta:
+      properties: {}
+      title: ComponentMeta
+      type: object
+    ConceptKind:
+      enum:
+      - concrete
+      - abstract
+      title: ConceptKind
+      type: string
+    ConceptLevel:
+      enum:
+      - main
+      - sub
+      - weak
+      title: ConceptLevel
+      type: string
+    ConceptMapping-Input:
       properties:
-        column_dtypes:
+        attribute_dtypes:
           items:
-            anyOf:
-            - $ref: '#/components/schemas/WrappedMITMDataType'
-            - type: string
-          title: Column Dtypes
+            $ref: '#/components/schemas/MITMDataType'
+          title: Attribute Dtypes
           type: array
-        columns:
+        attributes:
           items:
             type: string
-          title: Columns
+          title: Attributes
           type: array
-        compiled_sql:
-          title: Compiled Sql
-          type: string
-        dialect:
-          title: Dialect
-          type: string
-        name:
-          title: Name
+        base_table:
+          anyOf:
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Base Table
+        concept:
+          title: Concept
           type: string
-        schema_name:
-          title: Schema Name
+        foreign_relations:
+          additionalProperties:
+            $ref: '#/components/schemas/ForeignRelation-Input'
+          title: Foreign Relations
+          type: object
+        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
+        kind_col:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Kind Col
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        type_col:
+          title: Type Col
           type: string
       required:
-      - dialect
-      - compiled_sql
-      - columns
-      - column_dtypes
-      - name
-      - schema_name
-      title: CompiledVirtualView
-      type: object
-    ComponentMeta:
-      properties: {}
-      title: ComponentMeta
+      - mitm
+      - concept
+      - base_table
+      - type_col
+      title: ConceptMapping
       type: object
-    ConceptMapping:
+    ConceptMapping-Output:
       properties:
         attribute_dtypes:
           items:
@@ -412,7 +372,7 @@ components:
           type: string
         foreign_relations:
           additionalProperties:
-            $ref: '#/components/schemas/ForeignRelation'
+            $ref: '#/components/schemas/ForeignRelation-Output'
           title: Foreign Relations
           type: object
         identity_columns:
@@ -450,13 +410,61 @@ components:
       - type_col
       title: ConceptMapping
       type: object
+    ConceptProperties:
+      properties:
+        column_group_ordering:
+          default:
+          - kind
+          - type
+          - identity-relations
+          - inline-relations
+          - foreign-relations
+          - attributes
+          items:
+            enum:
+            - kind
+            - type
+            - identity-relations
+            - inline-relations
+            - foreign-relations
+            - attributes
+            type: string
+          title: Column Group Ordering
+          type: array
+        key:
+          title: Key
+          type: string
+        nature:
+          maxItems: 2
+          minItems: 2
+          prefixItems:
+          - $ref: '#/components/schemas/ConceptLevel'
+          - $ref: '#/components/schemas/ConceptKind'
+          title: Nature
+          type: array
+        permit_attributes:
+          default: true
+          title: Permit Attributes
+          type: boolean
+        plural:
+          title: Plural
+          type: string
+        typing_concept:
+          default: type
+          title: Typing Concept
+          type: string
+      required:
+      - nature
+      - key
+      - plural
+      title: ConceptProperties
+      type: object
     ControlValues:
       properties:
         defaultToFirstItem:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: false
           title: Defaulttofirstitem
         enableEmptyFilter:
           default: false
@@ -466,19 +474,16 @@ components:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: false
           title: Inverseselection
         multiSelect:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: true
           title: Multiselect
         searchAllOptions:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: false
           title: Searchalloptions
       title: ControlValues
       type: object
@@ -518,15 +523,8 @@ components:
             type: object
           title: Db Structure
           type: object
-        tables:
-          additionalProperties:
-            $ref: '#/components/schemas/TableMetaInfoBase'
-          readOnly: true
-          title: Tables
-          type: object
       required:
       - db_structure
-      - tables
       title: DBMetaInfoBase
       type: object
     DBMetaResponse:
@@ -539,10 +537,12 @@ components:
       type: object
     DBProbeMinimal:
       properties:
-        table_probes:
+        db_table_probes:
           additionalProperties:
-            $ref: '#/components/schemas/TableProbeMinimal'
-          title: Table Probes
+            additionalProperties:
+              $ref: '#/components/schemas/TableProbeMinimal'
+            type: object
+          title: Db Table Probes
           type: object
       title: DBProbeMinimal
       type: object
@@ -580,8 +580,13 @@ components:
       - CHART
       - HEADER
       - GRID
-      - ROW
       - ROOT
+      - ROW
+      - COLUMN
+      - TAB
+      - TABS
+      - MARKDOWN
+      - DIVIDER
       title: DashboardComponentType
       type: string
     DashboardIdentifier:
@@ -606,6 +611,10 @@ components:
       type: object
     DashboardMetadata:
       properties:
+        chart_configuration:
+          additionalProperties: true
+          title: Chart Configuration
+          type: object
         color_scheme:
           default: blueToGreen
           title: Color Scheme
@@ -614,6 +623,23 @@ components:
           default: true
           title: Cross Filters Enabled
           type: boolean
+        default_filters:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Default Filters
+        expanded_slices:
+          additionalProperties: true
+          title: Expanded Slices
+          type: object
+        filter_scopes:
+          additionalProperties: true
+          title: Filter Scopes
+          type: object
+        global_chart_configuration:
+          additionalProperties: true
+          title: Global Chart Configuration
+          type: object
         native_filter_configuration:
           items:
             $ref: '#/components/schemas/NativeFilterConfig'
@@ -718,16 +744,222 @@ components:
       - count
       title: DatetimeSummaryStatistics
       type: object
-    ExpressionType:
-      enum:
-      - SIMPLE
-      - SQL
-      title: ExpressionType
-      type: string
-    FilterOperator:
-      enum:
-      - ==
-      - '!='
+    DropMitMDatasetsResponse:
+      properties:
+        dropped_mitm_datasets:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/ListTrackedMitMDataset'
+            type: array
+          - type: 'null'
+          title: Dropped Mitm Datasets
+        dropped_schemas:
+          anyOf:
+          - items:
+              type: string
+            type: array
+          - type: 'null'
+          title: Dropped Schemas
+      title: DropMitMDatasetsResponse
+      type: object
+    DropSchemasResponse:
+      properties:
+        dropped_schemas:
+          anyOf:
+          - items:
+              type: string
+            type: array
+          - type: 'null'
+          title: Dropped Schemas
+      title: DropSchemasResponse
+      type: object
+    DropVisualizationsRequest:
+      properties:
+        visualization_types:
+          items:
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
+          type: array
+      required:
+      - visualization_types
+      title: DropVisualizationsRequest
+      type: object
+    EditColumns-Input:
+      properties:
+        additions:
+          additionalProperties:
+            items:
+              discriminator:
+                mapping:
+                  add_column: '#/components/schemas/AddColumn-Input'
+                  extract_json: '#/components/schemas/ExtractJson'
+                propertyName: operation
+              oneOf:
+              - $ref: '#/components/schemas/AddColumn-Input'
+              - $ref: '#/components/schemas/ExtractJson'
+            type: array
+          title: Additions
+          type: object
+        drops:
+          items:
+            type: string
+          title: Drops
+          type: array
+          uniqueItems: true
+        operation:
+          const: edit_columns
+          default: edit_columns
+          title: Operation
+          type: string
+        renames:
+          additionalProperties:
+            type: string
+          title: Renames
+          type: object
+        transforms:
+          additionalProperties:
+            discriminator:
+              mapping:
+                cast_column: '#/components/schemas/CastColumn-Input'
+              propertyName: operation
+            oneOf:
+            - $ref: '#/components/schemas/CastColumn-Input'
+          title: Transforms
+          type: object
+      title: EditColumns
+      type: object
+    EditColumns-Output:
+      properties:
+        additions:
+          additionalProperties:
+            items:
+              discriminator:
+                mapping:
+                  add_column: '#/components/schemas/AddColumn-Output'
+                  extract_json: '#/components/schemas/ExtractJson'
+                propertyName: operation
+              oneOf:
+              - $ref: '#/components/schemas/AddColumn-Output'
+              - $ref: '#/components/schemas/ExtractJson'
+            type: array
+          title: Additions
+          type: object
+        drops:
+          items:
+            type: string
+          title: Drops
+          type: array
+          uniqueItems: true
+        operation:
+          const: edit_columns
+          default: edit_columns
+          title: Operation
+          type: string
+        renames:
+          additionalProperties:
+            type: string
+          title: Renames
+          type: object
+        transforms:
+          additionalProperties:
+            discriminator:
+              mapping:
+                cast_column: '#/components/schemas/CastColumn-Output'
+              propertyName: operation
+            oneOf:
+            - $ref: '#/components/schemas/CastColumn-Output'
+          title: Transforms
+          type: object
+      title: EditColumns
+      type: object
+    ExistingTable-Input:
+      properties:
+        base_table:
+          anyOf:
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Base Table
+        operation:
+          const: existing
+          default: existing
+          title: Operation
+          type: string
+      required:
+      - base_table
+      title: ExistingTable
+      type: object
+    ExistingTable-Output:
+      properties:
+        base_table:
+          anyOf:
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Base Table
+        operation:
+          const: existing
+          default: existing
+          title: Operation
+          type: string
+      required:
+      - base_table
+      title: ExistingTable
+      type: object
+    ExpressionType:
+      enum:
+      - SIMPLE
+      - SQL
+      title: ExpressionType
+      type: string
+    ExtractJson:
+      properties:
+        attributes:
+          additionalProperties:
+            items:
+              type: string
+            type: array
+          title: Attributes
+          type: object
+        json_col:
+          title: Json Col
+          type: string
+        operation:
+          const: extract_json
+          default: extract_json
+          title: Operation
+          type: string
+      required:
+      - json_col
+      - attributes
+      title: ExtractJson
+      type: object
+    FilterOperator:
+      enum:
+      - ==
+      - '!='
       - '>'
       - <
       - '>='
@@ -767,6 +999,7 @@ components:
       enum:
       - filter_select
       - filter_timegrain
+      - filter_time
       title: FilterType
       type: string
     ForeignKeyConstraintBase:
@@ -813,7 +1046,7 @@ components:
       - target_columns
       title: ForeignKeyConstraintBase
       type: object
-    ForeignRelation:
+    ForeignRelation-Input:
       properties:
         fk_columns:
           anyOf:
@@ -846,11 +1079,55 @@ components:
       - referred_table
       title: ForeignRelation
       type: object
-    FormData:
-      properties: {}
-      title: FormData
+    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'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Referred Table
+      required:
+      - fk_columns
+      - referred_table
+      title: ForeignRelation
+      type: object
+    ForeignRelationInfo:
+      properties:
+        fk_relations:
+          additionalProperties:
+            type: string
+          title: Fk Relations
+          type: object
+        target_concept:
+          title: Target Concept
+          type: string
+      required:
+      - target_concept
+      - fk_relations
+      title: ForeignRelationInfo
       type: object
-    GenerateIndependentMitMDatasetDefinitionRequest:
+    GenerateDefinitionsForIndependentMitMDatasetRequest:
       properties:
         dataset_name:
           title: Dataset Name
@@ -861,1572 +1138,1938 @@ components:
           anyOf:
           - $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
           - type: 'null'
+        include_default_visualizations:
+          default: false
+          title: Include Default Visualizations
+          type: boolean
         mitm_header:
           $ref: '#/components/schemas/Header-Input'
+        visualization_types:
+          items:
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
+          type: array
       required:
       - dataset_name
       - mitm_header
       - db_conn_info
-      title: GenerateIndependentMitMDatasetDefinitionRequest
+      title: GenerateDefinitionsForIndependentMitMDatasetRequest
       type: object
-    GenerateVisualizationsRequest:
+    GenerateDefinitionsRequest:
       properties:
-        reuse_existing_identifiers:
-          default: true
-          title: Reuse Existing Identifiers
-          type: boolean
-        track_identifiers:
+        include_default_visualizations:
           default: false
-          title: Track Identifiers
+          title: Include Default Visualizations
+          type: boolean
+        use_existing_identifiers:
+          default: true
+          title: Use Existing Identifiers
           type: boolean
         visualization_types:
-          default:
-          - baseline
           items:
             $ref: '#/components/schemas/MAEDVisualizationType'
           title: Visualization Types
           type: array
-      title: GenerateVisualizationsRequest
-      type: object
-    HTTPValidationError:
-      properties:
-        detail:
-          items:
-            $ref: '#/components/schemas/ValidationError'
-          title: Detail
-          type: array
-      title: HTTPValidationError
+      title: GenerateDefinitionsRequest
       type: object
-    Header-Input:
+    GenerateImportableDefinitionsForIndependentMitMDatasetRequest:
       properties:
-        header_entries:
+        dataset_name:
+          title: Dataset Name
+          type: string
+        db_conn_info:
+          $ref: '#/components/schemas/DBConnectionInfo'
+        identifiers:
+          anyOf:
+          - $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+          - type: 'null'
+        include_default_visualizations:
+          default: false
+          title: Include Default Visualizations
+          type: boolean
+        included_asset_types:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/SupersetAssetType'
+            type: array
+          - type: 'null'
+          title: Included Asset Types
+        mitm_header:
+          $ref: '#/components/schemas/Header-Input'
+        override_metadata_type:
+          anyOf:
+          - $ref: '#/components/schemas/MetadataType'
+          - type: 'null'
+        visualization_types:
           items:
-            $ref: '#/components/schemas/HeaderEntry'
-          title: Header Entries
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
           type: array
-        mitm:
-          $ref: '#/components/schemas/MITM'
       required:
-      - mitm
-      title: Header
+      - dataset_name
+      - mitm_header
+      - db_conn_info
+      title: GenerateImportableDefinitionsForIndependentMitMDatasetRequest
       type: object
-    Header-Output:
+    GenerateImportableDefinitionsRequest:
       properties:
-        header_entries:
+        include_default_visualizations:
+          default: false
+          title: Include Default Visualizations
+          type: boolean
+        included_asset_types:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/SupersetAssetType'
+            type: array
+          - type: 'null'
+          title: Included Asset Types
+        override_metadata_type:
+          anyOf:
+          - $ref: '#/components/schemas/MetadataType'
+          - type: 'null'
+        use_existing_identifiers:
+          default: true
+          title: Use Existing Identifiers
+          type: boolean
+        visualization_types:
           items:
-            $ref: '#/components/schemas/HeaderEntry'
-          title: Header Entries
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
           type: array
-        mitm:
-          $ref: '#/components/schemas/MITM'
-      required:
-      - mitm
-      title: Header
+      title: GenerateImportableDefinitionsRequest
       type: object
-    HeaderEntry:
+    GetExternalMitMDataset:
       properties:
-        attribute_dtypes:
-          items:
-            $ref: '#/components/schemas/MITMDataType'
-          title: Attribute Dtypes
-          type: array
-        attributes:
-          items:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
+          anyOf:
+          - format: date-time
             type: string
-          title: Attributes
-          type: array
-        concept:
-          title: Concept
+          - type: 'null'
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
           type: string
-        kind:
-          title: Kind
+        header_changed:
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
+          title: Header Changed
+        header_desynced:
+          title: Header Desynced
+          type: boolean
+        id:
+          title: Id
+          type: integer
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
+          type: boolean
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        schema_name:
+          title: Schema Name
           type: string
-        type_name:
-          title: Type Name
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        superset_identifier_bundle:
+          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+        tracked_visualizations:
+          items:
+            $ref: '#/components/schemas/ListTrackedVisualization'
+          title: Tracked Visualizations
+          type: array
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
+          type: string
+        uuid:
+          format: uuid
+          title: Uuid
           type: string
       required:
-      - concept
-      - kind
-      - type_name
-      - attributes
-      - attribute_dtypes
-      title: HeaderEntry
+      - id
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      - header_desynced
+      - superset_identifier_bundle
+      - tracked_visualizations
+      title: GetExternalMitMDataset
       type: object
-    ListTrackedMitMDataset:
+    GetLocalMitMDataset:
       properties:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
+          title: Data Changed
         dataset_name:
           title: Dataset Name
           type: string
+        header_changed:
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
+          title: Header Changed
+        header_desynced:
+          title: Header Desynced
+          type: boolean
+        id:
+          title: Id
+          type: integer
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
+          type: boolean
         mitm:
           $ref: '#/components/schemas/MITM'
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        schema_name:
+          title: Schema Name
+          type: string
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        superset_identifier_bundle:
+          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+        tracked_visualizations:
+          items:
+            $ref: '#/components/schemas/ListTrackedVisualization'
+          title: Tracked Visualizations
+          type: array
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
+          type: string
         uuid:
           format: uuid
           title: Uuid
           type: string
       required:
+      - id
       - uuid
       - dataset_name
       - mitm
-      title: ListTrackedMitMDataset
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      - header_desynced
+      - superset_identifier_bundle
+      - tracked_visualizations
+      title: GetLocalMitMDataset
       type: object
-    LocalTableIdentifier:
+    GetMappedDBPull:
       properties:
-        name:
-          title: Name
+        id:
+          title: Id
+          type: integer
+        insertion_result:
+          $ref: '#/components/schemas/SQLRepInsertionResult'
+        mapped_db_source:
+          $ref: '#/components/schemas/ListMappedDBSource'
+        mapped_mitm_dataset:
+          $ref: '#/components/schemas/ListTrackedMitMDataset'
+        time_complete:
+          format: date-time
+          title: Time Complete
           type: string
-        schema:
-          default: main
-          title: Schema
+        time_start:
+          format: date-time
+          title: Time Start
           type: string
       required:
-      - name
-      title: LocalTableIdentifier
-      type: object
-    MAEDVisualizationType:
-      enum:
-      - baseline
-      - experimental
-      title: MAEDVisualizationType
-      type: string
-    MITM:
-      enum:
-      - MAED
-      - OCEL2
-      title: MITM
-      type: string
-    MITMDataType:
-      enum:
-      - text
-      - json
-      - integer
-      - numeric
-      - boolean
-      - datetime
-      - unknown
-      - infer
-      title: MITMDataType
-      type: string
-    MetadataType:
-      enum:
-      - Database
-      - SqlaTable
-      - Slice
-      - Chart
-      - Dashboard
-      - Asset
-      - MitMDataset
-      title: MetadataType
-      type: string
-    MitMDatasetBundleResponse:
-      properties:
-        datasource_bundle:
-          $ref: '#/components/schemas/SupersetDatasourceBundle'
-        mitm_dataset:
-          $ref: '#/components/schemas/SupersetMitMDatasetDef'
-        visualization_bundle:
-          $ref: '#/components/schemas/SupersetVisualizationBundle'
-      required:
-      - mitm_dataset
-      - datasource_bundle
-      title: MitMDatasetBundleResponse
+      - id
+      - mapped_mitm_dataset
+      - mapped_db_source
+      - time_start
+      - time_complete
+      - insertion_result
+      title: GetMappedDBPull
       type: object
-    MitMDatasetIdentifier:
+    GetMappedDBSource:
       properties:
-        dataset_name:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Dataset Name
+        db_mapping:
+          $ref: '#/components/schemas/StandaloneDBMapping-Output'
         id:
+          title: Id
+          type: integer
+        last_pulled:
           anyOf:
-          - type: integer
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Id
+          title: Last Pulled
+        mapped_mitm_datasets:
+          items:
+            $ref: '#/components/schemas/ListTrackedMitMDataset'
+          title: Mapped Mitm Datasets
+          type: array
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        pulls:
+          items:
+            $ref: '#/components/schemas/ListMappedDBPull'
+          title: Pulls
+          type: array
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
         uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
           format: uuid
           title: Uuid
           type: string
-      title: MitMDatasetIdentifier
+      required:
+      - id
+      - uuid
+      - sql_alchemy_uri
+      - db_mapping
+      - mitm_header
+      - mapped_mitm_datasets
+      - pulls
+      - last_pulled
+      title: GetMappedDBSource
       type: object
-    MitMDatasetIdentifierBundle:
+    GetMappedMitMDataset:
       properties:
-        database:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
           anyOf:
-          - $ref: '#/components/schemas/DatabaseIdentifier'
+          - format: date-time
+            type: string
           - type: 'null'
-        ds_id_map:
-          additionalProperties:
-            $ref: '#/components/schemas/DatasetIdentifier'
-          title: Ds Id Map
-          type: object
-        mitm_dataset:
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
+          type: string
+        header_changed:
           anyOf:
-          - $ref: '#/components/schemas/MitMDatasetIdentifier'
+          - format: date-time
+            type: string
           - type: 'null'
-        viz_id_map:
-          additionalProperties:
-            additionalProperties:
-              $ref: '#/components/schemas/DashboardIdentifier'
-            type: object
-          title: Viz Id Map
-          type: object
-      title: MitMDatasetIdentifierBundle
-      type: object
-    MitMDatasetImportResponse:
-      properties:
-        base_assets:
+          title: Header Changed
+        header_desynced:
+          title: Header Desynced
+          type: boolean
+        id:
+          title: Id
+          type: integer
+        last_pulled:
           anyOf:
-          - $ref: '#/components/schemas/SupersetAssetsImport'
+          - format: date-time
+            type: string
           - type: 'null'
-        metadata:
-          $ref: '#/components/schemas/SupersetMetadataDef'
-        mitm_datasets:
+          title: Last Pulled
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
+          type: boolean
+        mapped_db_source:
           anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetMitMDatasetDef'
-            type: array
+          - $ref: '#/components/schemas/ListMappedDBSource'
           - type: 'null'
-          title: Mitm Datasets
-      required:
-      - mitm_datasets
-      - base_assets
-      title: MitMDatasetImportResponse
-      type: object
-    NativeFilterConfig:
-      properties:
-        controlValues:
-          $ref: '#/components/schemas/ControlValues'
-        filterType:
-          $ref: '#/components/schemas/FilterType'
-          default: filter_select
-        id:
-          title: Id
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        pulls:
+          items:
+            $ref: '#/components/schemas/ListMappedDBPull'
+          title: Pulls
+          type: array
+        schema_name:
+          title: Schema Name
           type: string
-        name:
-          title: Name
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
           type: string
-        targets:
+        superset_identifier_bundle:
+          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+        tracked_visualizations:
           items:
-            anyOf:
-            - $ref: '#/components/schemas/DatasetReference'
-            - $ref: '#/components/schemas/ColumnOfDataset'
-          title: Targets
+            $ref: '#/components/schemas/ListTrackedVisualization'
+          title: Tracked Visualizations
           type: array
         type:
-          default: NATIVE_FILTER
+          enum:
+          - local
+          - external
+          - mapped
           title: Type
           type: string
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
       required:
       - id
-      - name
-      title: NativeFilterConfig
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      - header_desynced
+      - superset_identifier_bundle
+      - tracked_visualizations
+      - mapped_db_source
+      - pulls
+      - last_pulled
+      title: GetMappedMitMDataset
       type: object
-    NumericSummaryStatistics:
+    GetTrackedMitMDataset:
       properties:
-        count:
-          title: Count
-          type: integer
-        max:
-          title: Max
-          type: number
-        mean:
-          title: Mean
-          type: number
-        min:
-          title: Min
-          type: number
-        percentile_25:
-          title: Percentile 25
-          type: number
-        percentile_50:
-          title: Percentile 50
-          type: number
-        percentile_75:
-          title: Percentile 75
-          type: number
-        std:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
           anyOf:
-          - type: number
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Std
-      required:
-      - count
-      - mean
-      - min
-      - max
-      - percentile_25
-      - percentile_50
-      - percentile_75
-      title: NumericSummaryStatistics
-      type: object
-    QueryContext:
-      properties:
-        custom_cache_timeout:
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
+          type: string
+        header_changed:
           anyOf:
-          - type: integer
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Custom Cache Timeout
-        datasource:
-          $ref: '#/components/schemas/ChartDatasource'
-        force:
-          default: false
-          title: Force
+          title: Header Changed
+        header_desynced:
+          title: Header Desynced
           type: boolean
-        form_data:
-          anyOf:
-          - $ref: '#/components/schemas/FormData'
-          - type: 'null'
-        queries:
+        id:
+          title: Id
+          type: integer
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
+          type: boolean
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        schema_name:
+          title: Schema Name
+          type: string
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        superset_identifier_bundle:
+          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+        tracked_visualizations:
           items:
-            $ref: '#/components/schemas/QueryObject'
-          title: Queries
+            $ref: '#/components/schemas/ListTrackedVisualization'
+          title: Tracked Visualizations
           type: array
-        result_format:
-          $ref: '#/components/schemas/ChartDataResultFormat'
-          default: json
-        result_type:
-          $ref: '#/components/schemas/ChartDataResultType'
-          default: full
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
+          type: string
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
       required:
-      - datasource
-      title: QueryContext
+      - id
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      - header_desynced
+      - superset_identifier_bundle
+      - tracked_visualizations
+      title: GetTrackedMitMDataset
+      type: object
+    GetTrackedVisualization:
+      properties:
+        id:
+          title: Id
+          type: integer
+        identifier_bundle:
+          $ref: '#/components/schemas/VisualizationsIdentifierBundle'
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        tracked_mitm_dataset_id:
+          title: Tracked Mitm Dataset Id
+          type: integer
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
+        viz_changed:
+          format: date-time
+          title: Viz Changed
+          type: string
+        viz_type:
+          $ref: '#/components/schemas/MAEDVisualizationType'
+      required:
+      - id
+      - uuid
+      - tracked_mitm_dataset_id
+      - mitm
+      - viz_type
+      - viz_changed
+      - identifier_bundle
+      title: GetTrackedVisualization
       type: object
-    QueryObject:
+    HTTPValidationError:
       properties:
-        annotation_layers:
+        detail:
           items:
-            $ref: '#/components/schemas/AnnotationLayer'
-          title: Annotation Layers
+            $ref: '#/components/schemas/ValidationError'
+          title: Detail
           type: array
-        applied_time_extras:
-          additionalProperties:
-            type: string
-          title: Applied Time Extras
-          type: object
-        columns:
+      title: HTTPValidationError
+      type: object
+    Header-Input:
+      properties:
+        header_entries:
           items:
-            anyOf:
-            - type: string
-            - $ref: '#/components/schemas/SupersetAdhocColumn'
-          title: Columns
+            $ref: '#/components/schemas/HeaderEntry'
+          title: Header Entries
           type: array
-        datasource:
-          anyOf:
-          - $ref: '#/components/schemas/ChartDatasource'
-          - type: 'null'
-        extras:
-          $ref: '#/components/schemas/QueryObjectExtras'
-        filters:
+          uniqueItems: true
+        mitm:
+          $ref: '#/components/schemas/MITM'
+      required:
+      - mitm
+      title: Header
+      type: object
+    Header-Output:
+      properties:
+        header_entries:
           items:
-            $ref: '#/components/schemas/QueryObjectFilterClause'
-          title: Filters
+            $ref: '#/components/schemas/HeaderEntry'
+          title: Header Entries
           type: array
-        from_dttm:
-          anyOf:
-          - description: Better annotation for datetime. Parses from string format,
-              serializes to string format.
-            format: date-time
+          uniqueItems: true
+        mitm:
+          $ref: '#/components/schemas/MITM'
+      required:
+      - mitm
+      title: Header
+      type: object
+    HeaderEntry:
+      properties:
+        attribute_dtypes:
+          items:
+            $ref: '#/components/schemas/MITMDataType'
+          title: Attribute Dtypes
+          type: array
+        attributes:
+          items:
             type: string
-          - type: 'null'
-          title: From Dttm
-        granularity:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Granularity
-        inner_from_dttm:
+          title: Attributes
+          type: array
+        concept:
+          title: Concept
+          type: string
+        kind:
+          title: Kind
+          type: string
+        type_name:
+          title: Type Name
+          type: string
+      required:
+      - concept
+      - kind
+      - type_name
+      - attributes
+      - attribute_dtypes
+      title: HeaderEntry
+      type: object
+    Limit:
+      properties:
+        limit:
+          title: Limit
+          type: integer
+        operation:
+          const: limit
+          default: limit
+          title: Operation
+          type: string
+      required:
+      - limit
+      title: Limit
+      type: object
+    ListLocalMitMDataset:
+      properties:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
           anyOf:
-          - description: Better annotation for datetime. Parses from string format,
-              serializes to string format.
-            format: date-time
+          - format: date-time
             type: string
           - type: 'null'
-          title: Inner From Dttm
-        inner_to_dttm:
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
+          type: string
+        header_changed:
           anyOf:
-          - description: Better annotation for datetime. Parses from string format,
-              serializes to string format.
-            format: date-time
+          - format: date-time
             type: string
           - type: 'null'
-          title: Inner To Dttm
-        is_rowcount:
-          default: false
-          title: Is Rowcount
-          type: boolean
-        is_timeseries:
-          anyOf:
-          - type: boolean
-          - type: 'null'
-          title: Is Timeseries
-        metrics:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetAdhocMetric'
-            type: array
-          - type: 'null'
-          title: Metrics
-        order_desc:
-          default: true
-          title: Order Desc
+          title: Header Changed
+        id:
+          title: Id
+          type: integer
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
           type: boolean
-        orderby:
-          items:
-            maxItems: 2
-            minItems: 2
-            prefixItems:
-            - anyOf:
-              - $ref: '#/components/schemas/SupersetAdhocMetric'
-              - type: string
-            - type: boolean
-            type: array
-          title: Orderby
-          type: array
-        post_processing:
-          items:
-            anyOf:
-            - $ref: '#/components/schemas/SupersetPostProcessing'
-            - additionalProperties: true
-              type: object
-          title: Post Processing
-          type: array
-        result_type:
-          anyOf:
-          - $ref: '#/components/schemas/ChartDataResultType'
-          - type: 'null'
-        row_limit:
-          anyOf:
-          - type: integer
-          - type: 'null'
-          title: Row Limit
-        row_offset:
-          anyOf:
-          - type: integer
-          - type: 'null'
-          title: Row Offset
-        series_columns:
-          items:
-            type: string
-          title: Series Columns
-          type: array
-        series_limit:
-          default: 0
-          title: Series Limit
-          type: integer
-        series_limit_metric:
-          anyOf:
-          - $ref: '#/components/schemas/SupersetAdhocMetric'
-          - type: 'null'
-        time_offsets:
-          items:
-            type: string
-          title: Time Offsets
-          type: array
-        time_range:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Time Range
-        time_shift:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Time Shift
-        to_dttm:
-          anyOf:
-          - description: Better annotation for datetime. Parses from string format,
-              serializes to string format.
-            format: date-time
-            type: string
-          - type: 'null'
-          title: To Dttm
-        url_params:
-          anyOf:
-          - additionalProperties:
-              type: string
-            type: object
-          - type: 'null'
-          title: Url Params
-      title: QueryObject
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
+          type: string
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
+      required:
+      - id
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      title: ListLocalMitMDataset
       type: object
-    QueryObjectExtras:
+    ListMappedDBPull:
       properties:
-        having:
-          default: ''
-          title: Having
+        id:
+          title: Id
+          type: integer
+        insertion_result:
+          $ref: '#/components/schemas/SQLRepInsertionResult'
+        mapped_db_source_id:
+          title: Mapped Db Source Id
+          type: integer
+        mapped_mitm_dataset_id:
+          title: Mapped Mitm Dataset Id
+          type: integer
+        time_complete:
+          format: date-time
+          title: Time Complete
           type: string
-        time_grain_sqla:
-          anyOf:
-          - $ref: '#/components/schemas/TimeGrain'
-          - type: 'null'
-        where:
-          default: ''
-          title: Where
+        time_start:
+          format: date-time
+          title: Time Start
           type: string
-      title: QueryObjectExtras
+      required:
+      - id
+      - mapped_mitm_dataset_id
+      - mapped_db_source_id
+      - time_start
+      - time_complete
+      - insertion_result
+      title: ListMappedDBPull
       type: object
-    QueryObjectFilterClause:
+    ListMappedDBSource:
       properties:
-        col:
-          title: Col
-          type: string
-        grain:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Grain
-        isExtra:
-          anyOf:
-          - type: boolean
-          - type: 'null'
-          title: Isextra
-        op:
-          $ref: '#/components/schemas/FilterOperator'
-        val:
+        db_mapping:
+          $ref: '#/components/schemas/StandaloneDBMapping-Output'
+        id:
+          title: Id
+          type: integer
+        last_pulled:
           anyOf:
-          - type: boolean
-          - description: Better annotation for datetime. Parses from string format,
-              serializes to string format.
-            format: date-time
+          - format: date-time
             type: string
-          - type: number
-          - type: integer
-          - type: string
-          - items:
-              anyOf:
-              - type: boolean
-              - description: Better annotation for datetime. Parses from string format,
-                  serializes to string format.
-                format: date-time
-                type: string
-              - type: number
-              - type: integer
-              - type: string
-            type: array
-          - maxItems: 1
-            minItems: 1
-            prefixItems:
-            - anyOf:
-              - type: boolean
-              - description: Better annotation for datetime. Parses from string format,
-                  serializes to string format.
-                format: date-time
-                type: string
-              - type: number
-              - type: integer
-              - type: string
-            type: array
           - type: 'null'
-          title: Val
-      required:
-      - col
-      - op
-      title: QueryObjectFilterClause
-      type: object
-    RegisterExternalMitMDatasetRequest:
-      properties:
-        cvvs:
-          items:
-            $ref: '#/components/schemas/CompiledVirtualView'
-          title: Cvvs
-          type: array
-        dataset_name:
-          title: Dataset Name
-          type: string
-        mappings:
-          items:
-            $ref: '#/components/schemas/ConceptMapping'
-          title: Mappings
-          type: array
-        mitm:
-          $ref: '#/components/schemas/MITM'
+          title: Last Pulled
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
         sql_alchemy_uri:
           format: uri
           minLength: 1
           title: Sql Alchemy Uri
           type: string
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
       required:
-      - dataset_name
+      - id
+      - uuid
       - sql_alchemy_uri
-      - mitm
-      - cvvs
-      - mappings
-      title: RegisterExternalMitMDatasetRequest
+      - db_mapping
+      - mitm_header
+      - last_pulled
+      title: ListMappedDBSource
       type: object
-    RegisterMitMResponse:
+    ListMappedMitMDataset:
       properties:
-        msg:
+        can_control_data:
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          title: Can Control Header
+          type: boolean
+        data_changed:
           anyOf:
-          - type: string
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Msg
-        status:
-          enum:
-          - success
-          - failure
-          title: Status
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
           type: string
-        tracked_mitm_dataset:
-          anyOf:
-          - $ref: '#/components/schemas/TrackedMitMDataset'
-          - type: 'null'
-      required:
-      - status
-      title: RegisterMitMResponse
-      type: object
-    SampleSummary:
-      properties:
-        json_schema:
-          anyOf:
-          - additionalProperties: true
-            type: object
-          - type: 'null'
-          title: Json Schema
-        na_fraction:
-          anyOf:
-          - maximum: 1.0
-            minimum: 0.0
-            type: number
-          - type: 'null'
-          title: Na Fraction
-        sample_size:
+        header_changed:
           anyOf:
-          - minimum: 0.0
-            type: integer
-          - type: 'null'
-          title: Sample Size
-        summary_statistics:
-          anyOf:
-          - $ref: '#/components/schemas/NumericSummaryStatistics'
-          - $ref: '#/components/schemas/CategoricalSummaryStatistics'
-          - $ref: '#/components/schemas/DatetimeSummaryStatistics'
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Summary Statistics
-        unique_fraction:
+          title: Header Changed
+        id:
+          title: Id
+          type: integer
+        last_pulled:
           anyOf:
-          - maximum: 1.0
-            minimum: 0.0
-            type: number
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Unique Fraction
-        value_counts:
+          title: Last Pulled
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
+          type: boolean
+        mapped_db_source_id:
           anyOf:
-          - additionalProperties:
-              type: integer
-            type: object
+          - type: integer
           - type: 'null'
-          title: Value Counts
-      title: SampleSummary
-      type: object
-    SourceDBType:
-      enum:
-      - original
-      - working
-      - virtual
-      title: SourceDBType
-      type: string
-    SupersetAdhocColumn:
-      properties:
-        columnType:
-          default: BASE_AXIS
-          title: Columntype
-          type: string
-        expressionType:
-          default: SQL
-          title: Expressiontype
-          type: string
-        label:
-          title: Label
+          title: Mapped Db Source Id
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
           type: string
-        sqlExpression:
-          title: Sqlexpression
+        uuid:
+          format: uuid
+          title: Uuid
           type: string
-        timeGrain:
-          anyOf:
-          - $ref: '#/components/schemas/TimeGrain'
-          - type: 'null'
       required:
-      - label
-      - sqlExpression
-      title: SupersetAdhocColumn
+      - id
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      - mapped_db_source_id
+      - last_pulled
+      title: ListMappedMitMDataset
       type: object
-    SupersetAdhocFilter:
+    ListTrackedMitMDataset:
       properties:
-        clause:
-          default: WHERE
-          title: Clause
-          type: string
-        comparator:
-          anyOf:
-          - type: string
-          - type: 'null'
-          default: No filter
-          title: Comparator
-        expressionType:
-          $ref: '#/components/schemas/ExpressionType'
-          default: SIMPLE
-        isExtra:
-          default: false
-          title: Isextra
+        can_control_data:
+          title: Can Control Data
           type: boolean
-        isNew:
-          default: false
-          title: Isnew
+        can_control_header:
+          title: Can Control Header
           type: boolean
-        operator:
-          $ref: '#/components/schemas/FilterOperator'
-        operatorId:
+        data_changed:
           anyOf:
-          - $ref: '#/components/schemas/FilterStringOperators'
+          - format: date-time
+            type: string
           - type: 'null'
-        sqlExpression:
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
+          type: string
+        header_changed:
           anyOf:
-          - type: string
+          - format: date-time
+            type: string
           - type: 'null'
-          title: Sqlexpression
-        subject:
-          title: Subject
-          type: string
-      required:
-      - subject
-      - operator
-      title: SupersetAdhocFilter
-      type: object
-    SupersetAdhocMetric:
-      properties:
-        aggregate:
-          $ref: '#/components/schemas/SupersetAggregate'
-          default: COUNT
-        column:
-          $ref: '#/components/schemas/SupersetColumn'
-        datasourceWarning:
-          default: false
-          title: Datasourcewarning
-          type: boolean
-        expressionType:
-          $ref: '#/components/schemas/ExpressionType'
-          default: SIMPLE
-        hasCustomLabel:
-          default: false
-          title: Hascustomlabel
+          title: Header Changed
+        id:
+          title: Id
+          type: integer
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
           type: boolean
-        label:
-          title: Label
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
+          type: string
+        uuid:
+          format: uuid
+          title: Uuid
           type: string
-        optionName:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Optionname
-        sqlExpression:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Sqlexpression
       required:
-      - label
-      - column
-      title: SupersetAdhocMetric
+      - id
+      - uuid
+      - dataset_name
+      - mitm
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - header_changed
+      - data_changed
+      title: ListTrackedMitMDataset
+      type: object
+    ListTrackedVisualization:
+      properties:
+        id:
+          title: Id
+          type: integer
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        tracked_mitm_dataset_id:
+          title: Tracked Mitm Dataset Id
+          type: integer
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
+        viz_changed:
+          format: date-time
+          title: Viz Changed
+          type: string
+        viz_type:
+          $ref: '#/components/schemas/MAEDVisualizationType'
+      required:
+      - id
+      - uuid
+      - tracked_mitm_dataset_id
+      - mitm
+      - viz_type
+      - viz_changed
+      title: ListTrackedVisualization
+      type: object
+    LocalTableIdentifier:
+      properties:
+        name:
+          title: Name
+          type: string
+        schema:
+          default: main
+          title: Schema
+          type: string
+      required:
+      - name
+      title: LocalTableIdentifier
       type: object
-    SupersetAggregate:
+    MAEDVisualizationType:
       enum:
-      - COUNT
-      - SUM
-      - MIN
-      - MAX
-      - AVG
-      title: SupersetAggregate
+      - baseline
+      - experimental
+      - custom-chart
+      title: MAEDVisualizationType
       type: string
-    SupersetAssetsImport:
+    MITM:
+      enum:
+      - MAED
+      - OCEL2
+      title: MITM
+      type: string
+    MITMDataType:
+      enum:
+      - text
+      - json
+      - integer
+      - numeric
+      - boolean
+      - datetime
+      - unknown
+      - infer
+      title: MITMDataType
+      type: string
+    MITMDefinition:
       properties:
-        charts:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetChartDef'
-            type: array
-          - type: 'null'
-          title: Charts
-        dashboards:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetDashboardDef'
-            type: array
-          - type: 'null'
-          title: Dashboards
-        databases:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetDatabaseDef'
-            type: array
-          - type: 'null'
-          title: Databases
-        datasets:
-          anyOf:
-          - items:
-              $ref: '#/components/schemas/SupersetDatasetDef'
+        abstract_concepts:
+          items:
+            type: string
+          readOnly: true
+          title: Abstract Concepts
+          type: array
+          uniqueItems: true
+        concept_properties:
+          additionalProperties:
+            $ref: '#/components/schemas/ConceptProperties'
+          title: Concept Properties
+          type: object
+        concept_relations:
+          additionalProperties:
+            $ref: '#/components/schemas/OwnedRelations'
+          title: Concept Relations
+          type: object
+        leaf_concepts:
+          items:
+            type: string
+          readOnly: true
+          title: Leaf Concepts
+          type: array
+          uniqueItems: true
+        main_concepts:
+          items:
+            type: string
+          title: Main Concepts
+          type: array
+          uniqueItems: true
+        parent_concept_map:
+          additionalProperties:
+            type: string
+          readOnly: true
+          title: Parent Concept Map
+          type: object
+        sub_concept_map:
+          additionalProperties:
+            items:
+              type: string
             type: array
-          - type: 'null'
-          title: Datasets
-        metadata:
-          $ref: '#/components/schemas/SupersetMetadataDef'
-      title: SupersetAssetsImport
+            uniqueItems: true
+          title: Sub Concept Map
+          type: object
+        weak_concepts:
+          additionalProperties:
+            $ref: '#/components/schemas/MITMDataType'
+          title: Weak Concepts
+          type: object
+      required:
+      - main_concepts
+      - weak_concepts
+      - sub_concept_map
+      - concept_relations
+      - concept_properties
+      - leaf_concepts
+      - abstract_concepts
+      - parent_concept_map
+      title: MITMDefinition
       type: object
-    SupersetChartDef:
+    MappedDBSource:
       properties:
-        cache_timeout:
+        db_mapping:
+          $ref: '#/components/schemas/StandaloneDBMapping-Output'
+        id:
           anyOf:
           - type: integer
           - type: 'null'
-          title: Cache Timeout
-        certification_details:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Certification Details
-        certified_by:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Certified By
-        dataset_uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
+          title: Id
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        uuid:
           format: uuid
-          title: Dataset Uuid
+          title: Uuid
           type: string
-        description:
+      required:
+      - sql_alchemy_uri
+      - db_mapping
+      - mitm_header
+      title: MappedDBSource
+      type: object
+    MetadataType:
+      enum:
+      - Database
+      - SqlaTable
+      - Slice
+      - Chart
+      - Dashboard
+      - Asset
+      - MitMDataset
+      title: MetadataType
+      type: string
+    MitMDatasetBundleResponse:
+      properties:
+        datasource_bundle:
+          $ref: '#/components/schemas/SupersetDatasourceBundle'
+        mitm_dataset:
+          $ref: '#/components/schemas/SupersetMitMDatasetDef'
+        visualization_bundle:
+          $ref: '#/components/schemas/SupersetVisualizationBundle'
+      required:
+      - mitm_dataset
+      - datasource_bundle
+      - visualization_bundle
+      title: MitMDatasetBundleResponse
+      type: object
+    MitMDatasetIdentifier:
+      properties:
+        dataset_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Description
-        external_url:
-          anyOf:
-          - description: Better annotation for AnyUrl. Parses from string format,
-              serializes to string format.
-            format: uri
-            minLength: 1
-            type: string
-          - type: 'null'
-          title: External Url
-        is_managed_externally:
-          default: false
-          title: Is Managed Externally
-          type: boolean
-        params:
-          anyOf:
-          - $ref: '#/components/schemas/ChartParams'
-          - type: 'null'
-        query_context:
+          title: Dataset Name
+        id:
           anyOf:
-          - {}
+          - type: integer
           - type: 'null'
-        slice_name:
-          title: Slice Name
-          type: string
+          title: Id
         uuid:
           description: Better annotation for UUID. Parses from string format, serializes
             to string format.
           format: uuid
           title: Uuid
           type: string
-        version:
-          default: 1.0.0
-          title: Version
-          type: string
-        viz_type:
-          $ref: '#/components/schemas/SupersetVizType'
-      required:
-      - uuid
-      - slice_name
-      - viz_type
-      - dataset_uuid
-      title: SupersetChartDef
+      title: MitMDatasetIdentifier
       type: object
-    SupersetColumn:
+    MitMDatasetIdentifierBundle:
       properties:
-        advanced_data_type:
+        ch_id_map:
+          additionalProperties:
+            $ref: '#/components/schemas/ChartIdentifier'
+          title: Ch Id Map
+          type: object
+        database:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/DatabaseIdentifier'
           - type: 'null'
-          title: Advanced Data Type
-        column_name:
-          title: Column Name
-          type: string
-        description:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Description
-        expression:
+        ds_id_map:
+          additionalProperties:
+            $ref: '#/components/schemas/DatasetIdentifier'
+          title: Ds Id Map
+          type: object
+        mitm_dataset:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/MitMDatasetIdentifier'
           - type: 'null'
-          title: Expression
-        extra:
-          additionalProperties: true
-          title: Extra
+        viz_id_map:
+          additionalProperties:
+            additionalProperties:
+              $ref: '#/components/schemas/DashboardIdentifier'
+            type: object
+          title: Viz Id Map
           type: object
-        filterable:
-          default: true
-          title: Filterable
-          type: boolean
-        groupby:
-          default: true
-          title: Groupby
-          type: boolean
-        id:
+      title: MitMDatasetIdentifierBundle
+      type: object
+    MitMDatasetImportResponse:
+      properties:
+        base_assets:
           anyOf:
-          - type: integer
+          - $ref: '#/components/schemas/SupersetAssetsImport'
           - type: 'null'
-          title: Id
-        is_active:
-          default: true
-          title: Is Active
-          type: boolean
-        is_dttm:
-          default: false
-          title: Is Dttm
-          type: boolean
-        python_date_format:
+        metadata:
+          $ref: '#/components/schemas/SupersetMetadataDef'
+        mitm_datasets:
           anyOf:
-          - type: string
+          - items:
+              $ref: '#/components/schemas/SupersetMitMDatasetDef'
+            type: array
           - type: 'null'
-          title: Python Date Format
+          title: Mitm Datasets
+      required:
+      - mitm_datasets
+      - base_assets
+      title: MitMDatasetImportResponse
+      type: object
+    NativeFilterConfig:
+      properties:
+        controlValues:
+          $ref: '#/components/schemas/ControlValues'
+        filterType:
+          $ref: '#/components/schemas/FilterType'
+          default: filter_select
+        id:
+          title: Id
+          type: string
+        name:
+          title: Name
+          type: string
+        scope:
+          $ref: '#/components/schemas/NativeFilterScope'
+        targets:
+          items:
+            anyOf:
+            - $ref: '#/components/schemas/DatasetReference'
+            - $ref: '#/components/schemas/ColumnOfDataset'
+          title: Targets
+          type: array
         type:
-          default: VARCHAR
+          default: NATIVE_FILTER
           title: Type
           type: string
-        verbose_name:
+      required:
+      - id
+      - name
+      title: NativeFilterConfig
+      type: object
+    NativeFilterScope:
+      properties:
+        excluded:
+          items:
+            type: string
+          title: Excluded
+          type: array
+        rootPath:
+          items:
+            type: string
+          title: Rootpath
+          type: array
+      title: NativeFilterScope
+      type: object
+    NumericSummaryStatistics:
+      properties:
+        count:
+          title: Count
+          type: integer
+        max:
+          title: Max
+          type: number
+        mean:
+          title: Mean
+          type: number
+        min:
+          title: Min
+          type: number
+        percentile_25:
+          title: Percentile 25
+          type: number
+        percentile_50:
+          title: Percentile 50
+          type: number
+        percentile_75:
+          title: Percentile 75
+          type: number
+        std:
           anyOf:
-          - type: string
+          - type: number
           - type: 'null'
-          title: Verbose Name
+          title: Std
       required:
-      - column_name
-      title: SupersetColumn
+      - count
+      - mean
+      - min
+      - max
+      - percentile_25
+      - percentile_50
+      - percentile_75
+      title: NumericSummaryStatistics
       type: object
-    SupersetDashboardDef:
+    OwnedRelations:
       properties:
-        certification_details:
+        foreign:
+          additionalProperties:
+            $ref: '#/components/schemas/ForeignRelationInfo'
+          title: Foreign
+          type: object
+        identity:
+          additionalProperties:
+            type: string
+          title: Identity
+          type: object
+        inline:
+          additionalProperties:
+            type: string
+          title: Inline
+          type: object
+      required:
+      - identity
+      - inline
+      - foreign
+      title: OwnedRelations
+      type: object
+    PatchExternalMitMDatasetRequest:
+      properties:
+        dataset_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Certification Details
-        certified_by:
+          title: Dataset Name
+        schema_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Certified By
-        css:
+          title: Schema Name
+        sql_alchemy_uri:
+          anyOf:
+          - format: uri
+            minLength: 1
+            type: string
+          - type: 'null'
+          title: Sql Alchemy Uri
+      title: PatchExternalMitMDatasetRequest
+      type: object
+    PatchLocalMitMDatasetRequest:
+      properties:
+        dataset_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Css
-        dashboard_title:
-          title: Dashboard Title
-          type: string
-        description:
+          title: Dataset Name
+      title: PatchLocalMitMDatasetRequest
+      type: object
+    PatchMappedMitMDatasetRequest:
+      properties:
+        dataset_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Description
-        external_url:
+          title: Dataset Name
+        mapped_db_source_id:
           anyOf:
-          - description: Better annotation for AnyUrl. Parses from string format,
-              serializes to string format.
-            format: uri
-            minLength: 1
-            type: string
+          - type: integer
           - type: 'null'
-          title: External Url
-        is_managed_externally:
+          title: Mapped Db Source Id
+      title: PatchMappedMitMDatasetRequest
+      type: object
+    PatchTrackedMitMDatasetRequest:
+      properties:
+        can_control_data:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: false
-          title: Is Managed Externally
-        metadata:
-          $ref: '#/components/schemas/DashboardMetadata'
-        position:
-          additionalProperties:
-            anyOf:
-            - type: string
-            - $ref: '#/components/schemas/DashboardComponent'
-          title: Position
-          type: object
-        published:
+          title: Can Control Data
+        can_control_header:
           anyOf:
           - type: boolean
           - type: 'null'
-          default: false
-          title: Published
-        slug:
+          title: Can Control Header
+        dataset_name:
           anyOf:
           - type: string
           - type: 'null'
-          title: Slug
-        uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Uuid
-          type: string
-        version:
-          default: 1.0.0
-          title: Version
-          type: string
-      required:
-      - uuid
-      - dashboard_title
-      - position
-      - metadata
-      title: SupersetDashboardDef
+          title: Dataset Name
+        lives_on_mitm_db:
+          anyOf:
+          - type: boolean
+          - type: 'null'
+          title: Lives On Mitm Db
+        mitm_header:
+          anyOf:
+          - $ref: '#/components/schemas/Header-Input'
+          - type: 'null'
+        schema_name:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Schema Name
+        sql_alchemy_uri:
+          anyOf:
+          - format: uri
+            minLength: 1
+            type: string
+          - type: 'null'
+          title: Sql Alchemy Uri
+        type:
+          anyOf:
+          - enum:
+            - local
+            - external
+            - mapped
+            type: string
+          - type: 'null'
+          title: Type
+      title: PatchTrackedMitMDatasetRequest
       type: object
-    SupersetDatabaseDef:
+    PostTrackedMitMDatasetRequest:
       properties:
-        allow_ctas:
-          default: false
-          title: Allow Ctas
+        can_control_data:
+          title: Can Control Data
           type: boolean
-        allow_cvas:
-          default: false
-          title: Allow Cvas
+        can_control_header:
+          title: Can Control Header
           type: boolean
-        allow_dml:
-          default: false
-          title: Allow Dml
-          type: boolean
-        allow_file_upload:
-          default: false
-          title: Allow File Upload
-          type: boolean
-        allow_run_async:
-          default: true
-          title: Allow Run Async
+        dataset_name:
+          title: Dataset Name
+          type: string
+        lives_on_mitm_db:
+          title: Lives On Mitm Db
           type: boolean
-        cache_timeout:
+        mapped_db_source_id:
           anyOf:
-          - type: string
+          - type: integer
           - type: 'null'
-          title: Cache Timeout
-        database_name:
-          title: Database Name
+          title: Mapped Db Source Id
+        mitm_header:
+          $ref: '#/components/schemas/Header-Input'
+        schema_name:
+          title: Schema Name
           type: string
-        expose_in_sqllab:
-          default: true
-          title: Expose In Sqllab
-          type: boolean
-        extra:
-          additionalProperties: true
-          title: Extra
-          type: object
-        impersonate_user:
-          default: false
-          title: Impersonate User
-          type: boolean
-        sqlalchemy_uri:
-          description: Better annotation for AnyUrl. Parses from string format, serializes
-            to string format.
+        sql_alchemy_uri:
           format: uri
           minLength: 1
-          title: Sqlalchemy Uri
+          title: Sql Alchemy Uri
+          type: string
+        type:
+          enum:
+          - local
+          - external
+          - mapped
+          title: Type
           type: string
-        ssh_tunnel:
-          title: Ssh Tunnel
-          type: 'null'
         uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
+          anyOf:
+          - format: uuid
+            type: string
+          - type: 'null'
           title: Uuid
+      required:
+      - type
+      - lives_on_mitm_db
+      - can_control_data
+      - can_control_header
+      - dataset_name
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      title: PostTrackedMitMDatasetRequest
+      type: object
+    RawCompiled-Input:
+      properties:
+        operation:
+          const: compiled
+          default: compiled
+          title: Operation
           type: string
-        version:
-          default: 1.0.0
-          title: Version
+        typed_query:
+          $ref: '#/components/schemas/TypedRawQuery-Input'
+      required:
+      - typed_query
+      title: RawCompiled
+      type: object
+    RawCompiled-Output:
+      properties:
+        operation:
+          const: compiled
+          default: compiled
+          title: Operation
           type: string
+        typed_query:
+          $ref: '#/components/schemas/TypedRawQuery-Output'
       required:
-      - database_name
-      - sqlalchemy_uri
-      - uuid
-      title: SupersetDatabaseDef
+      - typed_query
+      title: RawCompiled
       type: object
-    SupersetDatasetDef:
+    RefreshTrackVisualizationsRequest:
       properties:
-        always_filter_main_dttm:
+        drop_chart_identifiers:
+          default: true
+          title: Drop Chart Identifiers
+          type: boolean
+        drop_dashboard_identifiers:
           default: false
-          title: Always Filter Main Dttm
+          title: Drop Dashboard Identifiers
           type: boolean
-        cache_timeout:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Cache Timeout
-        catalog:
-          anyOf:
-          - type: string
-          - type: 'null'
-          title: Catalog
-        columns:
+        visualization_types:
           items:
-            $ref: '#/components/schemas/SupersetColumn'
-          title: Columns
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
           type: array
-        database_uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Database Uuid
+      required:
+      - visualization_types
+      title: RefreshTrackVisualizationsRequest
+      type: object
+    RegisterExternalMitMDatasetRequest:
+      properties:
+        dataset_name:
+          title: Dataset Name
           type: string
-        default_endpoint:
+        schema_name:
+          title: Schema Name
+          type: string
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        uuid:
           anyOf:
-          - type: string
+          - format: uuid
+            type: string
           - type: 'null'
-          title: Default Endpoint
-        description:
+          title: Uuid
+      required:
+      - dataset_name
+      - schema_name
+      - sql_alchemy_uri
+      title: RegisterExternalMitMDatasetRequest
+      type: object
+    RegisterExternalMitMResponse:
+      properties:
+        msg:
           anyOf:
           - type: string
           - type: 'null'
-          title: Description
-        external_url:
+          title: Msg
+        status:
+          default: failure
+          enum:
+          - success
+          - failure
+          title: Status
+          type: string
+        tracked_mitm_dataset:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/GetTrackedMitMDataset'
           - type: 'null'
-          title: External Url
-        extra:
-          additionalProperties: true
-          title: Extra
-          type: object
-        fetch_values_predicate:
+      title: RegisterExternalMitMResponse
+      type: object
+    RegisterMappedMitMDatasetRequest:
+      properties:
+        dataset_name:
+          title: Dataset Name
+          type: string
+        db_mapping:
+          $ref: '#/components/schemas/StandaloneDBMapping-Input'
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        uuid:
           anyOf:
-          - type: string
+          - format: uuid
+            type: string
           - type: 'null'
-          title: Fetch Values Predicate
-        filter_select_enabled:
-          default: true
-          title: Filter Select Enabled
-          type: boolean
-        is_managed_externally:
-          default: true
-          title: Is Managed Externally
-          type: boolean
-        main_dttm_col:
+          title: Uuid
+      required:
+      - dataset_name
+      - sql_alchemy_uri
+      - db_mapping
+      title: RegisterMappedMitMDatasetRequest
+      type: object
+    RegisterMappedMitMResult:
+      properties:
+        mapped_db_source:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/MappedDBSource'
           - type: 'null'
-          title: Main Dttm Col
-        metrics:
-          items:
-            $ref: '#/components/schemas/SupersetMetric'
-          title: Metrics
-          type: array
-        normalize_columns:
-          default: false
-          title: Normalize Columns
-          type: boolean
-        offset:
-          default: 0
-          title: Offset
-          type: integer
-        params:
-          title: Params
-        schema:
-          title: Schema
-          type: string
-        sql:
+        msg:
           anyOf:
           - type: string
           - type: 'null'
-          title: Sql
-        table_name:
-          title: Table Name
-          type: string
-        template_params:
-          title: Template Params
-        uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Uuid
+          title: Msg
+        status:
+          default: failure
+          enum:
+          - success
+          - failure
+          title: Status
           type: string
-        version:
-          default: 1.0.0
-          title: Version
+        tracked_mitm_dataset:
+          anyOf:
+          - $ref: '#/components/schemas/TrackedMitMDataset'
+          - type: 'null'
+      title: RegisterMappedMitMResult
+      type: object
+    ReselectColumns:
+      properties:
+        operation:
+          const: reselect_columns
+          default: reselect_columns
+          title: Operation
           type: string
+        selection:
+          items:
+            type: string
+          title: Selection
+          type: array
       required:
-      - table_name
-      - schema
-      - uuid
-      - database_uuid
-      title: SupersetDatasetDef
+      - selection
+      title: ReselectColumns
       type: object
-    SupersetDatasourceBundle:
+    SQLRepInsertionResult:
       properties:
-        database:
-          $ref: '#/components/schemas/SupersetDatabaseDef'
-        datasets:
+        inserted_instances:
+          title: Inserted Instances
+          type: integer
+        inserted_rows:
+          title: Inserted Rows
+          type: integer
+        inserted_types:
           items:
-            $ref: '#/components/schemas/SupersetDatasetDef'
-          title: Datasets
+            $ref: '#/components/schemas/HeaderEntry'
+          title: Inserted Types
           type: array
       required:
-      - database
-      title: SupersetDatasourceBundle
+      - inserted_types
+      - inserted_instances
+      - inserted_rows
+      title: SQLRepInsertionResult
       type: object
-    SupersetMetadataDef:
+    SampleSummary:
       properties:
-        timestamp:
-          description: Better annotation for datetime. Parses from string format,
-            serializes to string format.
-          format: date-time
-          title: Timestamp
-          type: string
-        type:
-          $ref: '#/components/schemas/MetadataType'
-        version:
-          default: 1.0.0
-          title: Version
-          type: string
-      required:
-      - type
-      title: SupersetMetadataDef
+        json_schema:
+          anyOf:
+          - additionalProperties: true
+            type: object
+          - type: 'null'
+          title: Json Schema
+        na_fraction:
+          anyOf:
+          - maximum: 1.0
+            minimum: 0.0
+            type: number
+          - type: 'null'
+          title: Na Fraction
+        sample_size:
+          anyOf:
+          - minimum: 0.0
+            type: integer
+          - type: 'null'
+          title: Sample Size
+        summary_statistics:
+          anyOf:
+          - $ref: '#/components/schemas/NumericSummaryStatistics'
+          - $ref: '#/components/schemas/CategoricalSummaryStatistics'
+          - $ref: '#/components/schemas/DatetimeSummaryStatistics'
+          - type: 'null'
+          title: Summary Statistics
+        unique_fraction:
+          anyOf:
+          - maximum: 1.0
+            minimum: 0.0
+            type: number
+          - type: 'null'
+          title: Unique Fraction
+        value_counts:
+          anyOf:
+          - additionalProperties:
+              type: integer
+            type: object
+          - type: 'null'
+          title: Value Counts
+      title: SampleSummary
       type: object
-    SupersetMetric:
+    SimpleJoin-Input:
       properties:
-        currency:
+        full:
+          default: false
+          title: Full
+          type: boolean
+        is_outer:
+          default: false
+          title: Is Outer
+          type: boolean
+        left_alias:
           anyOf:
           - type: string
           - type: 'null'
-          title: Currency
-        d3format:
+          title: Left Alias
+        left_table:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Left Table
+        on_cols_left:
+          anyOf:
+          - items:
+              type: string
+            type: array
           - type: 'null'
-          title: D3Format
-        description:
+          title: On Cols Left
+        on_cols_right:
           anyOf:
-          - type: string
+          - items:
+              type: string
+            type: array
           - type: 'null'
-          title: Description
-        expression:
-          title: Expression
-          type: string
-        extra:
-          additionalProperties: true
-          title: Extra
-          type: object
-        metric_name:
-          title: Metric Name
+          title: On Cols Right
+        operation:
+          const: join
+          default: join
+          title: Operation
           type: string
-        metric_type:
+        right_alias:
           anyOf:
           - type: string
           - type: 'null'
-          title: Metric Type
-        verbose_name:
-          title: Verbose Name
-          type: string
-        warning_text:
+          title: Right Alias
+        right_table:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Right Table
+        selected_cols_left:
+          anyOf:
+          - items:
+              type: string
+            type: array
           - type: 'null'
-          title: Warning Text
+          title: Selected Cols Left
+        selected_cols_right:
+          anyOf:
+          - items:
+              type: string
+            type: array
+          - type: 'null'
+          title: Selected Cols Right
       required:
-      - metric_name
-      - verbose_name
-      - expression
-      title: SupersetMetric
+      - left_table
+      - right_table
+      title: SimpleJoin
       type: object
-    SupersetMitMDatasetDef:
+    SimpleJoin-Output:
       properties:
-        dashboards:
+        full:
+          default: false
+          title: Full
+          type: boolean
+        is_outer:
+          default: false
+          title: Is Outer
+          type: boolean
+        left_alias:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Left Alias
+        left_table:
+          anyOf:
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Left Table
+        on_cols_left:
           anyOf:
           - items:
-              $ref: '#/components/schemas/DashboardIdentifier'
+              type: string
             type: array
           - type: 'null'
-          title: Dashboards
-        database_uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Database Uuid
-          type: string
-        dataset_name:
-          title: Dataset Name
+          title: On Cols Left
+        on_cols_right:
+          anyOf:
+          - items:
+              type: string
+            type: array
+          - type: 'null'
+          title: On Cols Right
+        operation:
+          const: join
+          default: join
+          title: Operation
           type: string
-        mitm:
-          $ref: '#/components/schemas/MITM'
-        mitm_header:
+        right_alias:
           anyOf:
-          - $ref: '#/components/schemas/Header-Output'
+          - type: string
           - type: 'null'
-        slices:
+          title: Right Alias
+        right_table:
+          anyOf:
+          - $ref: '#/components/schemas/TableIdentifier'
+          - maxItems: 3
+            minItems: 3
+            prefixItems:
+            - $ref: '#/components/schemas/SourceDBType'
+            - type: string
+            - type: string
+            type: array
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - type: string
+            - type: string
+            type: array
+          title: Right Table
+        selected_cols_left:
           anyOf:
           - items:
-              $ref: '#/components/schemas/ChartIdentifier'
+              type: string
             type: array
           - type: 'null'
-          title: Slices
-        tables:
+          title: Selected Cols Left
+        selected_cols_right:
           anyOf:
           - items:
-              $ref: '#/components/schemas/DatasetIdentifier'
+              type: string
             type: array
           - type: 'null'
-          title: Tables
-        uuid:
-          description: Better annotation for UUID. Parses from string format, serializes
-            to string format.
-          format: uuid
-          title: Uuid
-          type: string
-        version:
-          default: 1.0.0
-          title: Version
+          title: Selected Cols Right
+      required:
+      - left_table
+      - right_table
+      title: SimpleJoin
+      type: object
+    SimpleSQLOperator:
+      enum:
+      - ilike
+      - like
+      - eq
+      - ge
+      - gt
+      - le
+      - lt
+      - in
+      - notin
+      title: SimpleSQLOperator
+      type: string
+    SimpleWhere-Input:
+      properties:
+        lhs:
+          title: Lhs
           type: string
+        operator:
+          $ref: '#/components/schemas/SimpleSQLOperator'
+        rhs:
+          anyOf:
+          - type: string
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - {}
+            - anyOf:
+              - $ref: '#/components/schemas/WrappedMITMDataType'
+              - type: string
+            type: array
+          title: Rhs
       required:
-      - uuid
-      - dataset_name
-      - mitm
-      - database_uuid
-      title: SupersetMitMDatasetDef
+      - lhs
+      - operator
+      - rhs
+      title: SimpleWhere
       type: object
-    SupersetPostProcessing:
+    SimpleWhere-Output:
       properties:
-        operation:
-          title: Operation
+        lhs:
+          title: Lhs
           type: string
+        operator:
+          $ref: '#/components/schemas/SimpleSQLOperator'
+        rhs:
+          anyOf:
+          - type: string
+          - maxItems: 2
+            minItems: 2
+            prefixItems:
+            - {}
+            - anyOf:
+              - $ref: '#/components/schemas/WrappedMITMDataType'
+              - type: string
+            type: array
+          title: Rhs
+        rhs_is_literal:
+          readOnly: true
+          title: Rhs Is Literal
+          type: boolean
       required:
-      - operation
-      title: SupersetPostProcessing
+      - lhs
+      - operator
+      - rhs
+      - rhs_is_literal
+      title: SimpleWhere
       type: object
-    SupersetVisualizationBundle:
+    SourceDBType:
+      enum:
+      - original
+      - working
+      - virtual
+      title: SourceDBType
+      type: string
+    StandaloneDBMapping-Input:
       properties:
-        charts:
+        concept_mappings:
           items:
-            $ref: '#/components/schemas/SupersetChartDef'
-          title: Charts
+            $ref: '#/components/schemas/ConceptMapping-Input'
+          title: Concept Mappings
           type: array
-        dashboards:
-          items:
-            $ref: '#/components/schemas/SupersetDashboardDef'
-          title: Dashboards
-          type: array
-        viz_collections:
-          anyOf:
-          - additionalProperties:
-              additionalProperties:
-                $ref: '#/components/schemas/DashboardIdentifier'
-              type: object
-            type: object
-          - type: 'null'
-          title: Viz Collections
-      title: SupersetVisualizationBundle
-      type: object
-    SupersetVizType:
-      enum:
-      - pie
-      - echarts_timeseries_bar
-      - echarts_timeseries_line
-      - maed_custom
-      title: SupersetVizType
-      type: string
-    TableIdentifier:
-      properties:
-        name:
-          title: Name
-          type: string
-        schema:
-          default: main
-          title: Schema
-          type: string
-        source:
-          $ref: '#/components/schemas/SourceDBType'
-          default: original
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        virtual_db_creation:
+          $ref: '#/components/schemas/VirtualDBCreation-Input'
       required:
-      - name
-      title: TableIdentifier
+      - mitm
+      - concept_mappings
+      - virtual_db_creation
+      title: StandaloneDBMapping
       type: object
-    TableMetaInfoBase:
+    StandaloneDBMapping-Output:
       properties:
-        column_properties:
-          additionalProperties:
-            $ref: '#/components/schemas/ColumnProperties'
-          title: Column Properties
-          type: object
-        columns:
-          items:
-            type: string
-          title: Columns
-          type: array
-        foreign_key_constraints:
-          items:
-            $ref: '#/components/schemas/ForeignKeyConstraintBase'
-          title: Foreign Key Constraints
-          type: array
-        indexes:
-          anyOf:
-          - items:
-              items:
-                type: string
-              type: array
-            type: array
-          - type: 'null'
-          title: Indexes
-        name:
-          title: Name
-          type: string
-        primary_key:
-          anyOf:
-          - items:
-              type: string
-            type: array
-          - type: 'null'
-          title: Primary Key
-        schema_name:
-          default: main
-          title: Schema Name
-          type: string
-        sql_column_types:
+        concept_mappings:
           items:
-            type: string
-          title: Sql Column Types
+            $ref: '#/components/schemas/ConceptMapping-Output'
+          title: Concept Mappings
           type: array
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        virtual_db_creation:
+          $ref: '#/components/schemas/VirtualDBCreation-Output'
       required:
-      - name
-      - columns
-      - sql_column_types
-      title: TableMetaInfoBase
-      type: object
-    TableProbeMinimal:
-      properties:
-        inferred_types:
-          additionalProperties:
-            $ref: '#/components/schemas/MITMDataType'
-          title: Inferred Types
-          type: object
-        row_count:
-          minimum: 0.0
-          title: Row Count
-          type: integer
-        sample_summaries:
-          additionalProperties:
-            $ref: '#/components/schemas/SampleSummary'
-          title: Sample Summaries
-          type: object
-      required:
-      - row_count
-      - inferred_types
-      - sample_summaries
-      title: TableProbeMinimal
+      - mitm
+      - concept_mappings
+      - virtual_db_creation
+      title: StandaloneDBMapping
       type: object
-    TimeGrain:
-      enum:
-      - PT1S
-      - PT5S
-      - PT30S
-      - PT1M
-      - PT5M
-      - PT10M
-      - PT15M
-      - PT30M
-      - PT0.5H
-      - PT1H
-      - PT6H
-      - P1D
-      - P1W
-      - 1969-12-28T00:00:00Z/P1W
-      - 1969-12-29T00:00:00Z/P1W
-      - P1W/1970-01-03T00:00:00Z
-      - P1W/1970-01-04T00:00:00Z
-      - P1M
-      - P3M
-      - P0.25Y
-      - P1Y
-      title: TimeGrain
-      type: string
-    TrackedMitMDataset:
+    SupersetAdhocFilter:
       properties:
-        dataset_name:
-          title: Dataset Name
+        clause:
+          default: WHERE
+          title: Clause
           type: string
-        identifier_bundle:
-          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
-        is_managed_locally:
+        comparator:
+          anyOf:
+          - type: string
+          - type: 'null'
+          default: No filter
+          title: Comparator
+        expressionType:
+          $ref: '#/components/schemas/ExpressionType'
+          default: SIMPLE
+        isExtra:
+          default: false
+          title: Isextra
+          type: boolean
+        isNew:
           default: true
-          title: Is Managed Locally
+          title: Isnew
           type: boolean
-        last_edited:
-          format: date-time
-          title: Last Edited
-          type: string
-        mitm_header:
-          $ref: '#/components/schemas/Header-Output'
-        schema_name:
-          title: Schema Name
-          type: string
-        sql_alchemy_uri:
-          format: uri
-          minLength: 1
-          title: Sql Alchemy Uri
-          type: string
-        uuid:
-          format: uuid
-          title: Uuid
-          type: string
-      required:
-      - dataset_name
-      - schema_name
-      - sql_alchemy_uri
-      - mitm_header
-      - identifier_bundle
-      title: TrackedMitMDataset
-      type: object
-    UploadMitMResponse:
-      properties:
-        msg:
+        operator:
+          $ref: '#/components/schemas/FilterOperator'
+        operatorId:
           anyOf:
-          - type: string
+          - $ref: '#/components/schemas/FilterStringOperators'
           - type: 'null'
-          title: Msg
-        status:
-          enum:
-          - success
-          - failure
-          title: Status
-          type: string
-        tracked_mitm_dataset:
+        sqlExpression:
           anyOf:
-          - $ref: '#/components/schemas/TrackedMitMDataset'
+          - type: string
           - type: 'null'
-      required:
-      - status
-      title: UploadMitMResponse
-      type: object
-    ValidationError:
-      properties:
-        loc:
-          items:
-            anyOf:
-            - type: string
-            - type: integer
-          title: Location
-          type: array
-        msg:
-          title: Message
-          type: string
-        type:
-          title: Error Type
+          title: Sqlexpression
+        subject:
+          title: Subject
           type: string
       required:
-      - loc
-      - msg
-      - type
-      title: ValidationError
+      - subject
+      - operator
+      title: SupersetAdhocFilter
       type: object
-    VisualizationImportResponse:
+    SupersetAssetType:
+      enum:
+      - database
+      - dataset
+      - chart
+      - dashboard
+      - mitm_dataset
+      title: SupersetAssetType
+      type: string
+    SupersetAssetsImport:
       properties:
         charts:
           anyOf:
@@ -2458,48 +3101,1486 @@ components:
           title: Datasets
         metadata:
           $ref: '#/components/schemas/SupersetMetadataDef'
-      title: VisualizationImportResponse
+      title: SupersetAssetsImport
       type: object
-    WrappedMITMDataType:
+    SupersetChartDef:
       properties:
-        mitm:
-          $ref: '#/components/schemas/MITMDataType'
-      required:
-      - mitm
-      title: WrappedMITMDataType
-      type: object
-info:
-  title: SupersetMitMService
-  version: 0.1.0
-openapi: 3.1.0
-paths:
-  /:
-    get:
-      operationId: root__get
+        cache_timeout:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Cache Timeout
+        certification_details:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Certification Details
+        certified_by:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Certified By
+        dataset_uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Dataset Uuid
+          type: string
+        description:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Description
+        external_url:
+          anyOf:
+          - description: Better annotation for AnyUrl. Parses from string format,
+              serializes to string format.
+            format: uri
+            minLength: 1
+            type: string
+          - type: 'null'
+          title: External Url
+        is_managed_externally:
+          default: false
+          title: Is Managed Externally
+          type: boolean
+        params:
+          anyOf:
+          - $ref: '#/components/schemas/ChartParams'
+          - type: 'null'
+        query_context:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Query Context
+        slice_name:
+          title: Slice Name
+          type: string
+        uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Uuid
+          type: string
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+        viz_type:
+          $ref: '#/components/schemas/SupersetVizType'
+      required:
+      - uuid
+      - slice_name
+      - viz_type
+      - dataset_uuid
+      title: SupersetChartDef
+      type: object
+    SupersetColumn:
+      properties:
+        advanced_data_type:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Advanced Data Type
+        column_name:
+          title: Column Name
+          type: string
+        description:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Description
+        expression:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Expression
+        extra:
+          additionalProperties: true
+          title: Extra
+          type: object
+        filterable:
+          default: true
+          title: Filterable
+          type: boolean
+        groupby:
+          default: true
+          title: Groupby
+          type: boolean
+        id:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Id
+        is_active:
+          default: true
+          title: Is Active
+          type: boolean
+        is_dttm:
+          default: false
+          title: Is Dttm
+          type: boolean
+        python_date_format:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Python Date Format
+        type:
+          default: VARCHAR
+          title: Type
+          type: string
+        verbose_name:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Verbose Name
+      required:
+      - column_name
+      title: SupersetColumn
+      type: object
+    SupersetDashboardDef:
+      properties:
+        certification_details:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Certification Details
+        certified_by:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Certified By
+        css:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Css
+        dashboard_title:
+          title: Dashboard Title
+          type: string
+        description:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Description
+        external_url:
+          anyOf:
+          - description: Better annotation for AnyUrl. Parses from string format,
+              serializes to string format.
+            format: uri
+            minLength: 1
+            type: string
+          - type: 'null'
+          title: External Url
+        is_managed_externally:
+          anyOf:
+          - type: boolean
+          - type: 'null'
+          default: false
+          title: Is Managed Externally
+        metadata:
+          $ref: '#/components/schemas/DashboardMetadata'
+        position:
+          additionalProperties:
+            anyOf:
+            - type: string
+            - $ref: '#/components/schemas/DashboardComponent'
+          title: Position
+          type: object
+        published:
+          anyOf:
+          - type: boolean
+          - type: 'null'
+          default: false
+          title: Published
+        slug:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Slug
+        uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Uuid
+          type: string
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+      required:
+      - uuid
+      - dashboard_title
+      - position
+      - metadata
+      title: SupersetDashboardDef
+      type: object
+    SupersetDatabaseDef:
+      properties:
+        allow_ctas:
+          default: false
+          title: Allow Ctas
+          type: boolean
+        allow_cvas:
+          default: false
+          title: Allow Cvas
+          type: boolean
+        allow_dml:
+          default: false
+          title: Allow Dml
+          type: boolean
+        allow_file_upload:
+          default: false
+          title: Allow File Upload
+          type: boolean
+        allow_run_async:
+          default: true
+          title: Allow Run Async
+          type: boolean
+        cache_timeout:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Cache Timeout
+        database_name:
+          title: Database Name
+          type: string
+        expose_in_sqllab:
+          default: true
+          title: Expose In Sqllab
+          type: boolean
+        extra:
+          additionalProperties: true
+          title: Extra
+          type: object
+        impersonate_user:
+          default: false
+          title: Impersonate User
+          type: boolean
+        sqlalchemy_uri:
+          description: Better annotation for AnyUrl. Parses from string format, serializes
+            to string format.
+          format: uri
+          minLength: 1
+          title: Sqlalchemy Uri
+          type: string
+        ssh_tunnel:
+          title: Ssh Tunnel
+          type: 'null'
+        uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Uuid
+          type: string
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+      required:
+      - database_name
+      - sqlalchemy_uri
+      - uuid
+      title: SupersetDatabaseDef
+      type: object
+    SupersetDatasetDef:
+      properties:
+        always_filter_main_dttm:
+          default: false
+          title: Always Filter Main Dttm
+          type: boolean
+        cache_timeout:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Cache Timeout
+        catalog:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Catalog
+        columns:
+          items:
+            $ref: '#/components/schemas/SupersetColumn'
+          title: Columns
+          type: array
+        database_uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Database Uuid
+          type: string
+        default_endpoint:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Default Endpoint
+        description:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Description
+        external_url:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: External Url
+        extra:
+          additionalProperties: true
+          title: Extra
+          type: object
+        fetch_values_predicate:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Fetch Values Predicate
+        filter_select_enabled:
+          default: true
+          title: Filter Select Enabled
+          type: boolean
+        is_managed_externally:
+          default: true
+          title: Is Managed Externally
+          type: boolean
+        main_dttm_col:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Main Dttm Col
+        metrics:
+          items:
+            $ref: '#/components/schemas/SupersetMetric'
+          title: Metrics
+          type: array
+        normalize_columns:
+          default: false
+          title: Normalize Columns
+          type: boolean
+        offset:
+          default: 0
+          title: Offset
+          type: integer
+        params:
+          title: Params
+        schema:
+          title: Schema
+          type: string
+        sql:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Sql
+        table_name:
+          title: Table Name
+          type: string
+        template_params:
+          title: Template Params
+        uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Uuid
+          type: string
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+      required:
+      - table_name
+      - schema
+      - uuid
+      - database_uuid
+      title: SupersetDatasetDef
+      type: object
+    SupersetDatasourceBundle:
+      properties:
+        database:
+          $ref: '#/components/schemas/SupersetDatabaseDef'
+        datasets:
+          items:
+            $ref: '#/components/schemas/SupersetDatasetDef'
+          title: Datasets
+          type: array
+      required:
+      - database
+      title: SupersetDatasourceBundle
+      type: object
+    SupersetMetadataDef:
+      properties:
+        timestamp:
+          description: Better annotation for datetime. Parses from string format,
+            serializes to string format.
+          format: date-time
+          title: Timestamp
+          type: string
+        type:
+          $ref: '#/components/schemas/MetadataType'
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+      required:
+      - type
+      title: SupersetMetadataDef
+      type: object
+    SupersetMetric:
+      properties:
+        currency:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Currency
+        d3format:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: D3Format
+        description:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Description
+        expression:
+          title: Expression
+          type: string
+        extra:
+          additionalProperties: true
+          title: Extra
+          type: object
+        metric_name:
+          title: Metric Name
+          type: string
+        metric_type:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Metric Type
+        verbose_name:
+          title: Verbose Name
+          type: string
+        warning_text:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Warning Text
+      required:
+      - metric_name
+      - verbose_name
+      - expression
+      title: SupersetMetric
+      type: object
+    SupersetMitMDatasetDef:
+      properties:
+        dashboards:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/DashboardIdentifier'
+            type: array
+          - type: 'null'
+          title: Dashboards
+        database_uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Database Uuid
+          type: string
+        dataset_name:
+          title: Dataset Name
+          type: string
+        mitm:
+          $ref: '#/components/schemas/MITM'
+        mitm_header:
+          anyOf:
+          - $ref: '#/components/schemas/Header-Output'
+          - type: 'null'
+        slices:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/ChartIdentifier'
+            type: array
+          - type: 'null'
+          title: Slices
+        tables:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/DatasetIdentifier'
+            type: array
+          - type: 'null'
+          title: Tables
+        uuid:
+          description: Better annotation for UUID. Parses from string format, serializes
+            to string format.
+          format: uuid
+          title: Uuid
+          type: string
+        version:
+          default: 1.0.0
+          title: Version
+          type: string
+      required:
+      - uuid
+      - dataset_name
+      - mitm
+      - database_uuid
+      title: SupersetMitMDatasetDef
+      type: object
+    SupersetMitMDatasetImport:
+      properties:
+        base_assets:
+          anyOf:
+          - $ref: '#/components/schemas/SupersetAssetsImport'
+          - type: 'null'
+        metadata:
+          $ref: '#/components/schemas/SupersetMetadataDef'
+        mitm_datasets:
+          anyOf:
+          - items:
+              $ref: '#/components/schemas/SupersetMitMDatasetDef'
+            type: array
+          - type: 'null'
+          title: Mitm Datasets
+      required:
+      - mitm_datasets
+      - base_assets
+      title: SupersetMitMDatasetImport
+      type: object
+    SupersetVisualizationBundle:
+      properties:
+        charts:
+          items:
+            $ref: '#/components/schemas/SupersetChartDef'
+          title: Charts
+          type: array
+        dashboards:
+          items:
+            $ref: '#/components/schemas/SupersetDashboardDef'
+          title: Dashboards
+          type: array
+        named_charts:
+          anyOf:
+          - additionalProperties:
+              $ref: '#/components/schemas/ChartIdentifier'
+            type: object
+          - type: 'null'
+          title: Named Charts
+        viz_collections:
+          anyOf:
+          - additionalProperties:
+              additionalProperties:
+                $ref: '#/components/schemas/DashboardIdentifier'
+              type: object
+            type: object
+          - type: 'null'
+          title: Viz Collections
+      title: SupersetVisualizationBundle
+      type: object
+    SupersetVizType:
+      enum:
+      - pie
+      - big_number
+      - big_number_total
+      - echarts_timeseries_bar
+      - echarts_timeseries_line
+      - maed_custom
+      title: SupersetVizType
+      type: string
+    TableFilter-Input:
+      properties:
+        limit:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Limit
+        operation:
+          const: table_filter
+          default: table_filter
+          title: Operation
+          type: string
+        wheres:
+          items:
+            $ref: '#/components/schemas/SimpleWhere-Input'
+          title: Wheres
+          type: array
+      required:
+      - wheres
+      title: TableFilter
+      type: object
+    TableFilter-Output:
+      properties:
+        limit:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Limit
+        operation:
+          const: table_filter
+          default: table_filter
+          title: Operation
+          type: string
+        wheres:
+          items:
+            $ref: '#/components/schemas/SimpleWhere-Output'
+          title: Wheres
+          type: array
+      required:
+      - wheres
+      title: TableFilter
+      type: object
+    TableIdentifier:
+      properties:
+        name:
+          title: Name
+          type: string
+        schema:
+          default: main
+          title: Schema
+          type: string
+        source:
+          $ref: '#/components/schemas/SourceDBType'
+          default: original
+      required:
+      - name
+      title: TableIdentifier
+      type: object
+    TableMetaInfoBase:
+      properties:
+        column_properties:
+          additionalProperties:
+            $ref: '#/components/schemas/ColumnProperties'
+          title: Column Properties
+          type: object
+        columns:
+          items:
+            type: string
+          title: Columns
+          type: array
+        foreign_key_constraints:
+          items:
+            $ref: '#/components/schemas/ForeignKeyConstraintBase'
+          title: Foreign Key Constraints
+          type: array
+        indexes:
+          anyOf:
+          - items:
+              items:
+                type: string
+              type: array
+            type: array
+          - type: 'null'
+          title: Indexes
+        name:
+          title: Name
+          type: string
+        primary_key:
+          anyOf:
+          - items:
+              type: string
+            type: array
+          - type: 'null'
+          title: Primary Key
+        schema_name:
+          default: main
+          title: Schema Name
+          type: string
+        sql_column_types:
+          items:
+            type: string
+          title: Sql Column Types
+          type: array
+      required:
+      - name
+      - columns
+      - sql_column_types
+      title: TableMetaInfoBase
+      type: object
+    TableProbeMinimal:
+      properties:
+        inferred_types:
+          additionalProperties:
+            $ref: '#/components/schemas/MITMDataType'
+          title: Inferred Types
+          type: object
+        row_count:
+          minimum: 0.0
+          title: Row Count
+          type: integer
+        sample_summaries:
+          additionalProperties:
+            $ref: '#/components/schemas/SampleSummary'
+          title: Sample Summaries
+          type: object
+      required:
+      - row_count
+      - inferred_types
+      - sample_summaries
+      title: TableProbeMinimal
+      type: object
+    TrackVisualizationsRequest:
+      properties:
+        visualization_types:
+          items:
+            $ref: '#/components/schemas/MAEDVisualizationType'
+          title: Visualization Types
+          type: array
+      required:
+      - visualization_types
+      title: TrackVisualizationsRequest
+      type: object
+    TrackVisualizationsResponse:
+      properties:
+        tracked_mitm_dataset:
+          $ref: '#/components/schemas/GetTrackedMitMDataset'
+        tracked_visualizations:
+          items:
+            $ref: '#/components/schemas/ListTrackedVisualization'
+          title: Tracked Visualizations
+          type: array
+      required:
+      - tracked_mitm_dataset
+      - tracked_visualizations
+      title: TrackVisualizationsResponse
+      type: object
+    TrackedMitMDataset:
+      properties:
+        base_superset_identifier_bundle:
+          $ref: '#/components/schemas/MitMDatasetIdentifierBundle'
+        can_control_data:
+          default: true
+          title: Can Control Data
+          type: boolean
+        can_control_header:
+          default: true
+          title: Can Control Header
+          type: boolean
+        data_changed:
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
+          title: Data Changed
+        dataset_name:
+          title: Dataset Name
+          type: string
+        header_changed:
+          anyOf:
+          - format: date-time
+            type: string
+          - type: 'null'
+          title: Header Changed
+        id:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Id
+        lives_on_mitm_db:
+          default: true
+          title: Lives On Mitm Db
+          type: boolean
+        mapped_db_source_id:
+          anyOf:
+          - type: integer
+          - type: 'null'
+          title: Mapped Db Source Id
+        mitm_header:
+          $ref: '#/components/schemas/Header-Output'
+        schema_name:
+          title: Schema Name
+          type: string
+        sql_alchemy_uri:
+          format: uri
+          minLength: 1
+          title: Sql Alchemy Uri
+          type: string
+        type:
+          default: local
+          title: Type
+          type: string
+        uuid:
+          format: uuid
+          title: Uuid
+          type: string
+      required:
+      - dataset_name
+      - schema_name
+      - sql_alchemy_uri
+      - mitm_header
+      - base_superset_identifier_bundle
+      title: TrackedMitMDataset
+      type: object
+    TypedRawQuery-Input:
+      properties:
+        column_dtypes:
+          items:
+            anyOf:
+            - $ref: '#/components/schemas/WrappedMITMDataType'
+            - type: string
+          title: Column Dtypes
+          type: array
+        columns:
+          items:
+            type: string
+          title: Columns
+          type: array
+        compiled_sql:
+          title: Compiled Sql
+          type: string
+        dialect:
+          title: Dialect
+          type: string
+      required:
+      - dialect
+      - compiled_sql
+      - columns
+      - column_dtypes
+      title: TypedRawQuery
+      type: object
+    TypedRawQuery-Output:
+      properties:
+        column_dtypes:
+          items:
+            anyOf:
+            - $ref: '#/components/schemas/WrappedMITMDataType'
+            - type: string
+          title: Column Dtypes
+          type: array
+        columns:
+          items:
+            type: string
+          title: Columns
+          type: array
+        compiled_sql:
+          title: Compiled Sql
+          type: string
+        dialect:
+          title: Dialect
+          type: string
+      required:
+      - dialect
+      - compiled_sql
+      - columns
+      - column_dtypes
+      title: TypedRawQuery
+      type: object
+    UploadMitMResponse:
+      properties:
+        msg:
+          anyOf:
+          - type: string
+          - type: 'null'
+          title: Msg
+        status:
+          default: failure
+          enum:
+          - success
+          - failure
+          title: Status
+          type: string
+        tracked_mitm_dataset:
+          anyOf:
+          - $ref: '#/components/schemas/GetTrackedMitMDataset'
+          - type: 'null'
+      title: UploadMitMResponse
+      type: object
+    ValidationError:
+      properties:
+        loc:
+          items:
+            anyOf:
+            - type: string
+            - type: integer
+          title: Location
+          type: array
+        msg:
+          title: Message
+          type: string
+        type:
+          title: Error Type
+          type: string
+      required:
+      - loc
+      - msg
+      - type
+      title: ValidationError
+      type: object
+    VirtualDBCreation-Input:
+      properties:
+        virtual_view_creations:
+          items:
+            $ref: '#/components/schemas/VirtualViewCreation-Input'
+          title: Virtual View Creations
+          type: array
+      title: VirtualDBCreation
+      type: object
+    VirtualDBCreation-Output:
+      properties:
+        virtual_view_creations:
+          items:
+            $ref: '#/components/schemas/VirtualViewCreation-Output'
+          title: Virtual View Creations
+          type: array
+      title: VirtualDBCreation
+      type: object
+    VirtualViewCreation-Input:
+      properties:
+        name:
+          title: Name
+          type: string
+        schema:
+          default: virtual
+          title: Schema
+          type: string
+        table_creation:
+          discriminator:
+            mapping:
+              compiled: '#/components/schemas/RawCompiled-Input'
+              existing: '#/components/schemas/ExistingTable-Input'
+              join: '#/components/schemas/SimpleJoin-Input'
+            propertyName: operation
+          oneOf:
+          - $ref: '#/components/schemas/SimpleJoin-Input'
+          - $ref: '#/components/schemas/ExistingTable-Input'
+          - $ref: '#/components/schemas/RawCompiled-Input'
+          title: Table Creation
+        transforms:
+          anyOf:
+          - items:
+              discriminator:
+                mapping:
+                  edit_columns: '#/components/schemas/EditColumns-Input'
+                  limit: '#/components/schemas/Limit'
+                  reselect_columns: '#/components/schemas/ReselectColumns'
+                  table_filter: '#/components/schemas/TableFilter-Input'
+                propertyName: operation
+              oneOf:
+              - $ref: '#/components/schemas/EditColumns-Input'
+              - $ref: '#/components/schemas/ReselectColumns'
+              - $ref: '#/components/schemas/TableFilter-Input'
+              - $ref: '#/components/schemas/Limit'
+            type: array
+          - type: 'null'
+          title: Transforms
+      required:
+      - name
+      - table_creation
+      title: VirtualViewCreation
+      type: object
+    VirtualViewCreation-Output:
+      properties:
+        name:
+          title: Name
+          type: string
+        schema:
+          default: virtual
+          title: Schema
+          type: string
+        table_creation:
+          discriminator:
+            mapping:
+              compiled: '#/components/schemas/RawCompiled-Output'
+              existing: '#/components/schemas/ExistingTable-Output'
+              join: '#/components/schemas/SimpleJoin-Output'
+            propertyName: operation
+          oneOf:
+          - $ref: '#/components/schemas/SimpleJoin-Output'
+          - $ref: '#/components/schemas/ExistingTable-Output'
+          - $ref: '#/components/schemas/RawCompiled-Output'
+          title: Table Creation
+        transforms:
+          anyOf:
+          - items:
+              discriminator:
+                mapping:
+                  edit_columns: '#/components/schemas/EditColumns-Output'
+                  limit: '#/components/schemas/Limit'
+                  reselect_columns: '#/components/schemas/ReselectColumns'
+                  table_filter: '#/components/schemas/TableFilter-Output'
+                propertyName: operation
+              oneOf:
+              - $ref: '#/components/schemas/EditColumns-Output'
+              - $ref: '#/components/schemas/ReselectColumns'
+              - $ref: '#/components/schemas/TableFilter-Output'
+              - $ref: '#/components/schemas/Limit'
+            type: array
+          - type: 'null'
+          title: Transforms
+      required:
+      - name
+      - table_creation
+      title: VirtualViewCreation
+      type: object
+    VisualizationsIdentifierBundle:
+      properties:
+        ch_id_map:
+          additionalProperties:
+            $ref: '#/components/schemas/ChartIdentifier'
+          title: Ch Id Map
+          type: object
+        viz_id_map:
+          additionalProperties:
+            additionalProperties:
+              $ref: '#/components/schemas/DashboardIdentifier'
+            type: object
+          title: Viz Id Map
+          type: object
+      title: VisualizationsIdentifierBundle
+      type: object
+    WrappedMITMDataType:
+      properties:
+        mitm:
+          $ref: '#/components/schemas/MITMDataType'
+      required:
+      - mitm
+      title: WrappedMITMDataType
+      type: object
+info:
+  title: SupersetMitMService
+  version: 0.1.0
+openapi: 3.1.0
+paths:
+  /:
+    get:
+      operationId: root
+      responses:
+        '200':
+          content:
+            application/json:
+              schema: {}
+          description: Successful Response
+      summary: Root
+  /admin/drop-db:
+    post:
+      operationId: drop_db
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DropSchemasResponse'
+          description: Successful Response
+      summary: Drop Db
+      tags:
+      - admin
+  /admin/drop-mitm-datasets:
+    post:
+      operationId: drop_mitm_datasets
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DropMitMDatasetsResponse'
+          description: Successful Response
+      summary: Drop Mitm Datasets
+      tags:
+      - admin
+  /data/db-meta/{uuid}:
+    get:
+      operationId: get_db_meta
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DBMetaResponse'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Get Db Meta
+      tags:
+      - data
+  /data/db-probe/{uuid}:
+    get:
+      operationId: get_db_probe
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/DBProbeResponse'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Get Db Probe
+      tags:
+      - data
+  /definitions/mitm_dataset:
+    post:
+      operationId: generate_mitm_dataset_bundle
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateDefinitionsForIndependentMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/MitMDatasetBundleResponse'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Mitm Dataset Bundle
+      tags:
+      - definitions
+  /definitions/mitm_dataset/import:
+    post:
+      operationId: generate_mitm_dataset_import
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateImportableDefinitionsForIndependentMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/MitMDatasetImportResponse'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Mitm Dataset Import
+      tags:
+      - definitions
+  /definitions/mitm_dataset/import/zip:
+    post:
+      operationId: generate_mitm_dataset_import_zip
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateImportableDefinitionsForIndependentMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/zip: {}
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Mitm Dataset Import Zip
+      tags:
+      - definitions
+  /definitions/mitm_dataset/{uuid}:
+    post:
+      operationId: generate_tracked_mitm_dataset_bundle
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateDefinitionsRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/MitMDatasetBundleResponse'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Tracked Mitm Dataset Bundle
+      tags:
+      - definitions
+  /definitions/mitm_dataset/{uuid}/import:
+    post:
+      operationId: generate_tracked_mitm_dataset_import
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateImportableDefinitionsRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/SupersetMitMDatasetImport'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Tracked Mitm Dataset Import
+      tags:
+      - definitions
+  /definitions/mitm_dataset/{uuid}/import/zip:
+    post:
+      operationId: generate_tracked_mitm_dataset_import_zip
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/GenerateImportableDefinitionsRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/zip: {}
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Generate Tracked Mitm Dataset Import Zip
+      tags:
+      - definitions
+  /health:
+    get:
+      operationId: health
+      responses:
+        '200':
+          content:
+            application/json:
+              schema: {}
+          description: Successful Response
+      summary: Health
+  /meta/mitm-defs:
+    get:
+      operationId: get_mitm_defs
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                additionalProperties:
+                  $ref: '#/components/schemas/MITMDefinition'
+                propertyNames:
+                  $ref: '#/components/schemas/MITM'
+                title: Response Get Mitm Defs Meta Mitm Defs Get
+                type: object
+          description: Successful Response
+      summary: Get Mitm Defs
+      tags:
+      - meta
+  /meta/schema/standalone-db-mapping:
+    get:
+      operationId: get_standalone_db_mapping_schema
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                additionalProperties: true
+                title: Response Get Standalone Db Mapping Schema Meta Schema Standalone
+                  Db Mapping Get
+                type: object
+          description: Successful Response
+      summary: Get Standalone Db Mapping Schema
+      tags:
+      - meta
+  /mitm_dataset/:
+    get:
+      operationId: get_mitm_datasets
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/ListTrackedMitMDataset'
+                title: Response Get Mitm Datasets Mitm Dataset  Get
+                type: array
+          description: Successful Response
+      summary: Get Mitm Datasets
+      tags:
+      - mitm_dataset
+    post:
+      operationId: post_mitm_dataset
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/PostTrackedMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetTrackedMitMDataset'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Post Mitm Dataset
+      tags:
+      - mitm_dataset
+  /mitm_dataset/export/stream/{uuid}:
+    post:
+      operationId: export_mitm_dataset_streaming
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema: {}
+            application/zip: {}
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Export Mitm Dataset Streaming
+      tags:
+      - mitm_dataset
+  /mitm_dataset/export/{uuid}:
+    post:
+      operationId: export_mitm_dataset
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
       responses:
         '200':
           content:
             application/json:
               schema: {}
+            application/zip: {}
           description: Successful Response
-      summary: Root
-  /admin/clear-db:
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Export Mitm Dataset
+      tags:
+      - mitm_dataset
+  /mitm_dataset/external/:
+    get:
+      operationId: get_external_mitm_datasets
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/ListTrackedMitMDataset'
+                title: Response Get External Mitm Datasets Mitm Dataset External  Get
+                type: array
+          description: Successful Response
+      summary: Get External Mitm Datasets
+      tags:
+      - mitm_dataset
+      - external
+  /mitm_dataset/external/register:
     post:
-      description: Clear the database.
-      operationId: clear_db
+      operationId: register_external_mitm_dataset
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/RegisterExternalMitMDatasetRequest'
+        required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ClearDBResponse'
+                $ref: '#/components/schemas/RegisterExternalMitMResponse'
           description: Successful Response
-      summary: Clear Db
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Register External Mitm Dataset
       tags:
-      - admin
-  /data/db-meta/{uuid}:
+      - mitm_dataset
+      - external
+  /mitm_dataset/external/{uuid}:
     get:
-      operationId: get_db_meta
+      operationId: get_external_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2513,7 +4594,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/DBMetaResponse'
+                $ref: '#/components/schemas/GetExternalMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2521,12 +4602,63 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Get Db Meta
+      summary: Get External Mitm Dataset
       tags:
-      - data
-  /data/db-probe/{uuid}:
+      - mitm_dataset
+      - external
+    patch:
+      operationId: patch_external_mitm_dataset
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/PatchExternalMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetExternalMitMDataset'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Patch External Mitm Dataset
+      tags:
+      - mitm_dataset
+      - external
+  /mitm_dataset/local/:
     get:
-      operationId: get_db_probe
+      operationId: get_local_mitm_datasets
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/ListLocalMitMDataset'
+                title: Response Get Local Mitm Datasets Mitm Dataset Local  Get
+                type: array
+          description: Successful Response
+      summary: Get Local Mitm Datasets
+      tags:
+      - mitm_dataset
+      - local
+  /mitm_dataset/local/{uuid}:
+    get:
+      operationId: get_local_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2540,7 +4672,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/DBProbeResponse'
+                $ref: '#/components/schemas/GetLocalMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2548,32 +4680,201 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Get Db Probe
+      summary: Get Local Mitm Dataset
       tags:
-      - data
-  /definitions/mitm_dataset:
-    post:
-      operationId: generate_mitm_dataset_bundle
+      - mitm_dataset
+      - local
+    patch:
+      operationId: patch_local_mitm_dataset
       parameters:
-      - in: query
-        name: include_visualizations
-        required: false
+      - in: path
+        name: uuid
+        required: true
         schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
+          format: uuid
+          title: Uuid
+          type: string
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest'
+              $ref: '#/components/schemas/PatchLocalMitMDatasetRequest'
+        required: true
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetLocalMitMDataset'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Patch Local Mitm Dataset
+      tags:
+      - mitm_dataset
+      - local
+  /mitm_dataset/mapped/:
+    get:
+      operationId: get_mapped_mitm_datasets
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/ListMappedMitMDataset'
+                title: Response Get Mapped Mitm Datasets Mitm Dataset Mapped  Get
+                type: array
+          description: Successful Response
+      summary: Get Mapped Mitm Datasets
+      tags:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/db_source/:
+    get:
+      operationId: get_mapped_db_sources
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/ListMappedDBSource'
+                title: Response Get Mapped Db Sources Mitm Dataset Mapped Db Source  Get
+                type: array
+          description: Successful Response
+      summary: Get Mapped Db Sources
+      tags:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/db_source/{id}:
+    delete:
+      operationId: delete_mapped_db_source
+      parameters:
+      - in: path
+        name: id
+        required: true
+        schema:
+          title: Id
+          type: integer
+      responses:
+        '200':
+          content:
+            application/json:
+              schema: {}
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Delete Mapped Db Source
+      tags:
+      - mitm_dataset
+      - mapped
+    get:
+      operationId: get_mapped_db_source
+      parameters:
+      - in: path
+        name: id
+        required: true
+        schema:
+          title: Id
+          type: integer
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetMappedDBSource'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Get Mapped Db Source
+      tags:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/decouple/{uuid}:
+    post:
+      operationId: decouple_mapped_mitm_dataset
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetTrackedMitMDataset'
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Decouple Mapped Mitm Dataset
+      tags:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/pull/async/{uuid}:
+    post:
+      operationId: pull_mapped_mitm_dataset_async
+      parameters:
+      - in: path
+        name: uuid
+        required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
+      responses:
+        '200':
+          content:
+            application/json:
+              schema: {}
+          description: Successful Response
+        '422':
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/HTTPValidationError'
+          description: Validation Error
+      summary: Pull Mapped Mitm Dataset Async
+      tags:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/pull/{uuid}:
+    post:
+      operationId: pull_mapped_mitm_dataset
+      parameters:
+      - in: path
+        name: uuid
         required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/MitMDatasetBundleResponse'
+                $ref: '#/components/schemas/GetMappedDBPull'
           description: Successful Response
         '422':
           content:
@@ -2581,40 +4882,25 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Mitm Dataset Bundle
+      summary: Pull Mapped Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/import:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/register:
     post:
-      operationId: generate_mitm_dataset_import
-      parameters:
-      - in: query
-        name: include_visualizations
-        required: false
-        schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
-      - in: query
-        name: override_metadata_type
-        required: false
-        schema:
-          anyOf:
-          - $ref: '#/components/schemas/MetadataType'
-          - type: 'null'
-          title: Override Metadata Type
+      operationId: register_mapped_mitm_dataset
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest'
+              $ref: '#/components/schemas/RegisterMappedMitMDatasetRequest'
         required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/MitMDatasetImportResponse'
+                $ref: '#/components/schemas/RegisterMappedMitMResult'
           description: Successful Response
         '422':
           content:
@@ -2622,38 +4908,27 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Mitm Dataset Import
+      summary: Register Mapped Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/import/zip:
-    post:
-      operationId: generate_mitm_dataset_import_zip
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/mapped/{uuid}:
+    get:
+      operationId: get_mapped_mitm_dataset
       parameters:
-      - in: query
-        name: include_visualizations
-        required: false
-        schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
-      - in: query
-        name: override_metadata_type
-        required: false
-        schema:
-          anyOf:
-          - $ref: '#/components/schemas/MetadataType'
-          - type: 'null'
-          title: Override Metadata Type
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/GenerateIndependentMitMDatasetDefinitionRequest'
+      - in: path
+        name: uuid
         required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
       responses:
         '200':
           content:
-            application/zip: {}
+            application/json:
+              schema:
+                $ref: '#/components/schemas/GetMappedMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2661,12 +4936,12 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Mitm Dataset Import Zip
+      summary: Get Mapped Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/viz/{uuid}:
-    post:
-      operationId: generate_visualizations_for_tracked_dataset
+      - mitm_dataset
+      - mapped
+    patch:
+      operationId: patch_mapped_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2679,14 +4954,14 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/GenerateVisualizationsRequest'
+              $ref: '#/components/schemas/PatchMappedMitMDatasetRequest'
         required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/MitMDatasetBundleResponse'
+                $ref: '#/components/schemas/GetMappedMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2694,12 +4969,13 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Visualizations For Tracked Dataset
+      summary: Patch Mapped Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/viz/{uuid}/import:
+      - mitm_dataset
+      - mapped
+  /mitm_dataset/refresh/{uuid}:
     post:
-      operationId: generate_visualizations_import_for_tracked_dataset
+      operationId: refresh_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2709,24 +4985,18 @@ paths:
           title: Uuid
           type: string
       - in: query
-        name: as_assets
+        name: drop_datasource_identifiers
         required: false
         schema:
-          default: false
-          title: As Assets
+          default: true
+          title: Drop Datasource Identifiers
           type: boolean
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/GenerateVisualizationsRequest'
-        required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/VisualizationImportResponse'
+                $ref: '#/components/schemas/GetTrackedMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2734,37 +5004,37 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Visualizations Import For Tracked Dataset
+      summary: Refresh Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/viz/{uuid}/import/zip:
+      - mitm_dataset
+  /mitm_dataset/upload:
     post:
-      operationId: generate_visualizations_import_zip_for_tracked_dataset
+      operationId: upload_mitm_dataset
       parameters:
-      - in: path
-        name: uuid
+      - in: query
+        name: dataset_name
         required: true
         schema:
-          format: uuid
-          title: Uuid
+          title: Dataset Name
           type: string
       - in: query
-        name: as_assets
+        name: mitm
         required: false
         schema:
-          default: false
-          title: As Assets
-          type: boolean
+          $ref: '#/components/schemas/MITM'
+          default: MAED
       requestBody:
         content:
-          application/json:
+          multipart/form-data:
             schema:
-              $ref: '#/components/schemas/GenerateVisualizationsRequest'
+              $ref: '#/components/schemas/Body_upload_mitm_dataset_mitm_dataset_upload_post'
         required: true
       responses:
         '200':
           content:
-            application/zip: {}
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UploadMitMResponse'
           description: Successful Response
         '422':
           content:
@@ -2772,12 +5042,12 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Visualizations Import Zip For Tracked Dataset
+      summary: Upload Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/{uuid}:
-    get:
-      operationId: generate_tracked_mitm_dataset_bundle
+      - mitm_dataset
+  /mitm_dataset/{uuid}:
+    delete:
+      operationId: delete_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2786,19 +5056,11 @@ paths:
           format: uuid
           title: Uuid
           type: string
-      - in: query
-        name: include_visualizations
-        required: false
-        schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
       responses:
         '200':
           content:
             application/json:
-              schema:
-                $ref: '#/components/schemas/MitMDatasetBundleResponse'
+              schema: {}
           description: Successful Response
         '422':
           content:
@@ -2806,12 +5068,11 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Tracked Mitm Dataset Bundle
+      summary: Delete Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/{uuid}/import:
+      - mitm_dataset
     get:
-      operationId: generate_tracked_mitm_dataset_import
+      operationId: get_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2820,27 +5081,12 @@ paths:
           format: uuid
           title: Uuid
           type: string
-      - in: query
-        name: include_visualizations
-        required: false
-        schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
-      - in: query
-        name: override_metadata_type
-        required: false
-        schema:
-          anyOf:
-          - $ref: '#/components/schemas/MetadataType'
-          - type: 'null'
-          title: Override Metadata Type
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/MitMDatasetImportResponse'
+                $ref: '#/components/schemas/GetTrackedMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2848,12 +5094,11 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Generate Tracked Mitm Dataset Import
+      summary: Get Mitm Dataset
       tags:
-      - definitions
-  /definitions/mitm_dataset/{uuid}/import/zip:
-    get:
-      operationId: generate_tracked_mitm_dataset_import_zip
+      - mitm_dataset
+    patch:
+      operationId: patch_mitm_dataset
       parameters:
       - in: path
         name: uuid
@@ -2862,75 +5107,18 @@ paths:
           format: uuid
           title: Uuid
           type: string
-      - in: query
-        name: include_visualizations
-        required: false
-        schema:
-          default: false
-          title: Include Visualizations
-          type: boolean
-      - in: query
-        name: override_metadata_type
-        required: false
-        schema:
-          anyOf:
-          - $ref: '#/components/schemas/MetadataType'
-          - type: 'null'
-          title: Override Metadata Type
-      responses:
-        '200':
-          content:
-            application/zip: {}
-          description: Successful Response
-        '422':
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/HTTPValidationError'
-          description: Validation Error
-      summary: Generate Tracked Mitm Dataset Import Zip
-      tags:
-      - definitions
-  /health:
-    get:
-      operationId: health_health_get
-      responses:
-        '200':
-          content:
-            application/json:
-              schema: {}
-          description: Successful Response
-      summary: Health
-  /mitm_dataset/:
-    get:
-      operationId: get_mitm_datasets
-      responses:
-        '200':
-          content:
-            application/json:
-              schema:
-                items:
-                  $ref: '#/components/schemas/ListTrackedMitMDataset'
-                title: Response Get Mitm Datasets Mitm Dataset  Get
-                type: array
-          description: Successful Response
-      summary: Get Mitm Datasets
-      tags:
-      - mitm_dataset
-    post:
-      operationId: post_mitm_dataset
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/AddTrackedMitMDatasetRequest'
+              $ref: '#/components/schemas/PatchTrackedMitMDatasetRequest'
         required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TrackedMitMDataset'
+                $ref: '#/components/schemas/GetTrackedMitMDataset'
           description: Successful Response
         '422':
           content:
@@ -2938,12 +5126,12 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Post Mitm Dataset
+      summary: Patch Mitm Dataset
       tags:
       - mitm_dataset
-  /mitm_dataset/export/{uuid}:
-    post:
-      operationId: export_mitm_dataset
+  /viz/{uuid}:
+    delete:
+      operationId: drop_tracked_visualizations
       parameters:
       - in: path
         name: uuid
@@ -2952,10 +5140,17 @@ paths:
           format: uuid
           title: Uuid
           type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/DropVisualizationsRequest'
+        required: true
       responses:
         '200':
           content:
-            application/zip: {}
+            application/json:
+              schema: {}
           description: Successful Response
         '422':
           content:
@@ -2963,24 +5158,28 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Export Mitm Dataset
+      summary: Drop Tracked Visualizations
       tags:
-      - mitm_dataset
-  /mitm_dataset/register:
-    post:
-      operationId: register_mitm_dataset
-      requestBody:
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/RegisterExternalMitMDatasetRequest'
+      - viz
+    get:
+      operationId: get_tracked_visualizations
+      parameters:
+      - in: path
+        name: uuid
         required: true
+        schema:
+          format: uuid
+          title: Uuid
+          type: string
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/RegisterMitMResponse'
+                items:
+                  $ref: '#/components/schemas/GetTrackedVisualization'
+                title: Response Get Tracked Visualizations Viz  Uuid  Get
+                type: array
           description: Successful Response
         '422':
           content:
@@ -2988,37 +5187,31 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Register Mitm Dataset
+      summary: Get Tracked Visualizations
       tags:
-      - mitm_dataset
-  /mitm_dataset/upload:
+      - viz
     post:
-      operationId: upload_mitm_dataset
+      operationId: track_visualizations
       parameters:
-      - in: query
-        name: dataset_name
+      - in: path
+        name: uuid
         required: true
         schema:
-          title: Dataset Name
+          format: uuid
+          title: Uuid
           type: string
-      - in: query
-        name: mitm
-        required: false
-        schema:
-          $ref: '#/components/schemas/MITM'
-          default: MAED
       requestBody:
         content:
-          multipart/form-data:
+          application/json:
             schema:
-              $ref: '#/components/schemas/Body_upload_mitm_dataset_mitm_dataset_upload_post'
+              $ref: '#/components/schemas/TrackVisualizationsRequest'
         required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UploadMitMResponse'
+                $ref: '#/components/schemas/TrackVisualizationsResponse'
           description: Successful Response
         '422':
           content:
@@ -3026,12 +5219,12 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Upload Mitm Dataset
+      summary: Track Visualizations
       tags:
-      - mitm_dataset
-  /mitm_dataset/{uuid}:
-    delete:
-      operationId: delete_mitm_dataset
+      - viz
+  /viz/{uuid}/invalidated:
+    get:
+      operationId: get_invalidated_visualizations
       parameters:
       - in: path
         name: uuid
@@ -3044,7 +5237,12 @@ paths:
         '200':
           content:
             application/json:
-              schema: {}
+              schema:
+                items:
+                  $ref: '#/components/schemas/GetTrackedVisualization'
+                title: Response Get Invalidated Visualizations Viz  Uuid  Invalidated
+                  Get
+                type: array
           description: Successful Response
         '422':
           content:
@@ -3052,11 +5250,12 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Delete Mitm Dataset
+      summary: Get Invalidated Visualizations
       tags:
-      - mitm_dataset
-    get:
-      operationId: get_mitm_dataset
+      - viz
+  /viz/{uuid}/refresh:
+    post:
+      operationId: refresh_tracked_visualizations
       parameters:
       - in: path
         name: uuid
@@ -3065,12 +5264,18 @@ paths:
           format: uuid
           title: Uuid
           type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/RefreshTrackVisualizationsRequest'
+        required: true
       responses:
         '200':
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TrackedMitMDataset'
+                $ref: '#/components/schemas/TrackVisualizationsResponse'
           description: Successful Response
         '422':
           content:
@@ -3078,6 +5283,6 @@ paths:
               schema:
                 $ref: '#/components/schemas/HTTPValidationError'
           description: Validation Error
-      summary: Get Mitm Dataset
+      summary: Refresh Tracked Visualizations
       tags:
-      - mitm_dataset
+      - viz
diff --git a/test/export.http b/test/export.http
index ba58cffe160660c9be719c0d35b8afbce3e362c6..bee912eda3d7d3593a27642c11596d0668d5f00c 100644
--- a/test/export.http
+++ b/test/export.http
@@ -6,7 +6,7 @@ POST http://localhost:{{port}}/mitm_dataset/export/{{uuid}}
 ###
 
 // @name Export Streaming
-POST http://localhost:{{port}}/mitm_dataset/export/{{uuid}}?use_streaming=true
+POST http://localhost:{{port}}/mitm_dataset/export/stream/{{uuid}}
 
 ######
 
diff --git a/test/http-client.env.json b/test/http-client.env.json
index 38e888b7eef431352966961dd9731f0a8235a3ca..471bbebbc21de5fe5c418a39b007abd95aa301b6 100644
--- a/test/http-client.env.json
+++ b/test/http-client.env.json
@@ -1,11 +1,12 @@
 {
   "dev": {
     "port": "8181",
-    "uuid": "470bf5e1-9b83-4620-a54a-df961a354445"
+    "uuid": "0548a618-1401-4bb4-a137-7c3265445761"
   },
   "docker": {
     "port": "8180",
-    "uuid": "b99e79e2-d2ed-412b-ba99-ed02e9fabe3b"
+    "uuid": "3aa0f426-0b5d-43e1-ba3c-d04cffff544b",
+    "mapped_uuid": "50a596b7-cce8-4507-a9c2-d5e9ad31a5e2"
   },
   "superset": {
     "port": "8180",
diff --git a/test/mapped-dataset-request.json b/test/mapped-dataset-request.json
new file mode 100644
index 0000000000000000000000000000000000000000..fab69f2ec73dadbd370e3b5815c7449949785440
--- /dev/null
+++ b/test/mapped-dataset-request.json
@@ -0,0 +1,235 @@
+{
+  "dataset_name": "mapped_a",
+  "sql_alchemy_uri": "sqlite:///static/synthetic-original-db.sqlite",
+  "db_mapping": {
+    "mitm": "MAED",
+    "concept_mappings": [
+      {
+        "mitm": "MAED",
+        "concept": "measurement",
+        "base_table": {
+          "source": "virtual",
+          "schema": "main",
+          "name": "measurements"
+        },
+        "kind_col": null,
+        "type_col": "type",
+        "identity_columns": {},
+        "inline_relations": [
+          "time",
+          "object"
+        ],
+        "foreign_relations": {},
+        "attributes": [
+          "x",
+          "y",
+          "z"
+        ],
+        "attribute_dtypes": [
+          "numeric",
+          "numeric",
+          "numeric"
+        ]
+      },
+      {
+        "mitm": "MAED",
+        "concept": "event",
+        "base_table": {
+          "source": "virtual",
+          "schema": "main",
+          "name": "events"
+        },
+        "kind_col": null,
+        "type_col": "status",
+        "identity_columns": {},
+        "inline_relations": [
+          "time",
+          "object"
+        ],
+        "foreign_relations": {},
+        "attributes": [
+          "info"
+        ],
+        "attribute_dtypes": [
+          "text"
+        ]
+      }
+    ],
+    "virtual_db_creation": {
+      "virtual_view_creations": [
+        {
+          "name": "events",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT 'E' AS kind, anon_1.timestamp AS time, anon_1.status, anon_1.info, anon_1.name AS object \nFROM (SELECT main.\"PrinterEvents\".id AS id, main.\"PrinterEvents\".\"printerId\" AS \"printerId\", main.\"PrinterEvents\".timestamp AS timestamp, main.\"PrinterEvents\".status AS status, main.\"PrinterEvents\".info AS info, main.\"PrintersTable\".name AS name \nFROM main.\"PrinterEvents\" JOIN main.\"PrintersTable\" ON main.\"PrinterEvents\".\"printerId\" = main.\"PrintersTable\".id) AS anon_1",
+              "columns": [
+                "kind",
+                "time",
+                "status",
+                "info",
+                "object"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "DATETIME",
+                "VARCHAR",
+                "VARCHAR",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        },
+        {
+          "name": "measurements",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT 'position' AS type, anon_1.timestamp AS time, anon_1.\"positionX\" AS x, anon_1.\"positionY\" AS y, anon_1.\"positionZ\" AS z, anon_1.\"printer.name\" AS object \nFROM (SELECT main.\"SensorTable\".id AS id, main.\"SensorTable\".\"printerId\" AS \"printerId\", main.\"SensorTable\".timestamp AS timestamp, main.\"SensorTable\".\"positionX\" AS \"positionX\", main.\"SensorTable\".\"positionY\" AS \"positionY\", main.\"SensorTable\".\"positionZ\" AS \"positionZ\", printer.name AS \"printer.name\" \nFROM main.\"SensorTable\" JOIN main.\"PrintersTable\" AS printer ON main.\"SensorTable\".\"printerId\" = printer.id) AS anon_1",
+              "columns": [
+                "type",
+                "time",
+                "x",
+                "y",
+                "z",
+                "object"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "DATETIME",
+                "FLOAT",
+                "FLOAT",
+                "FLOAT",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        },
+        {
+          "name": "intermediate",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT 'job' AS concept, anon_1.id AS segment_index, anon_1.\"startTime\" AS start, anon_1.\"endTime\" AS \"end\", anon_1.geometry, anon_1.settings, anon_1.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_1",
+              "columns": [
+                "concept",
+                "segment_index",
+                "start",
+                "end",
+                "geometry",
+                "settings",
+                "object"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "INTEGER",
+                "DATETIME",
+                "DATETIME",
+                "INTEGER",
+                "JSON",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        },
+        {
+          "name": "segments",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT anon_1.concept, anon_1.segment_index, anon_1.start, anon_1.\"end\", anon_1.object \nFROM (SELECT 'job' AS concept, anon_2.id AS segment_index, anon_2.\"startTime\" AS start, anon_2.\"endTime\" AS \"end\", anon_2.geometry AS geometry, anon_2.settings AS settings, anon_2.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_2) AS anon_1",
+              "columns": [
+                "concept",
+                "segment_index",
+                "start",
+                "end",
+                "object"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "INTEGER",
+                "DATETIME",
+                "DATETIME",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        },
+        {
+          "name": "segment_data",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT 'job_config' AS type, anon_1.settings -> '$.\"extrusion_temp\"' AS extrusion_temp, anon_1.settings -> '$.\"extrusion_rate\"' AS extrusion_rate, anon_1.settings -> '$.\"mode\"' AS mode, anon_1.settings -> '$.\"material\"' AS material, anon_1.concept, anon_1.segment_index, anon_1.object, anon_1.settings, anon_1.\"geom.name\" AS target_geometry \nFROM (SELECT anon_2.concept AS concept, anon_2.segment_index AS segment_index, anon_2.object AS object, anon_2.settings AS settings, geom.name AS \"geom.name\" \nFROM (SELECT 'job' AS concept, anon_3.id AS segment_index, anon_3.\"startTime\" AS start, anon_3.\"endTime\" AS \"end\", anon_3.geometry AS geometry, anon_3.settings AS settings, anon_3.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_3) AS anon_2 JOIN main.\"PrintingGeometries\" AS geom ON anon_2.geometry = geom.id) AS anon_1",
+              "columns": [
+                "type",
+                "extrusion_temp",
+                "extrusion_rate",
+                "mode",
+                "material",
+                "concept",
+                "segment_index",
+                "object",
+                "settings",
+                "target_geometry"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "JSON",
+                "JSON",
+                "JSON",
+                "JSON",
+                "VARCHAR",
+                "INTEGER",
+                "VARCHAR",
+                "JSON",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        },
+        {
+          "name": "experiment_segment_data",
+          "schema": "main",
+          "table_creation": {
+            "operation": "compiled",
+            "typed_query": {
+              "dialect": "sqlite",
+              "compiled_sql": "SELECT 'workpiece_qc' AS type, anon_1.\"workpieceQuality\" AS workpiece_quality, anon_1.concept, anon_1.segment_index, anon_1.object \nFROM (SELECT main.\"WorkpieceQCTable\".\"jobId\" AS \"jobId\", main.\"WorkpieceQCTable\".\"workpieceQuality\" AS \"workpieceQuality\", anon_2.concept AS concept, anon_2.segment_index AS segment_index, anon_2.object AS object \nFROM main.\"WorkpieceQCTable\" JOIN (SELECT anon_3.concept AS concept, anon_3.segment_index AS segment_index, anon_3.start AS start, anon_3.\"end\" AS \"end\", anon_3.object AS object \nFROM (SELECT 'job' AS concept, anon_4.id AS segment_index, anon_4.\"startTime\" AS start, anon_4.\"endTime\" AS \"end\", anon_4.geometry AS geometry, anon_4.settings AS settings, anon_4.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_4) AS anon_3) AS anon_2 ON main.\"WorkpieceQCTable\".\"jobId\" = anon_2.segment_index) AS anon_1",
+              "columns": [
+                "type",
+                "workpiece_quality",
+                "concept",
+                "segment_index",
+                "object"
+              ],
+              "column_dtypes": [
+                "VARCHAR",
+                "VARCHAR",
+                "VARCHAR",
+                "INTEGER",
+                "VARCHAR"
+              ]
+            }
+          },
+          "transforms": null
+        }
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/refresh_viz.http b/test/refresh_viz.http
new file mode 100644
index 0000000000000000000000000000000000000000..5e75551ad436b9d594a9fe66c79e32da38cb5749
--- /dev/null
+++ b/test/refresh_viz.http
@@ -0,0 +1,81 @@
+
+GET http://localhost:{{port}}/mitm_dataset/{{uuid}}
+
+###
+
+GET http://localhost:{{port}}/viz/{{uuid}}
+
+###
+
+POST http://localhost:{{port}}/viz/{{uuid}}
+
+{
+    "visualization_types": ["baseline", "custom-chart"]
+}
+
+###
+
+GET http://localhost:{{port}}/viz/{{uuid}}
+
+###
+
+POST http://localhost:{{port}}/definitions/mitm_dataset/{{uuid}}
+Accept: application/json
+
+{
+    "visualization_types": ["experimental"],
+    "use_existing_identifiers": true
+}
+
+> {%
+    console.log('mdi')
+    console.log(response.body.mitm_dataset.uuid)
+    console.log('tables')
+    console.log(response.body.mitm_dataset.tables[0])
+    console.log('dashboards')
+    console.log(response.body.mitm_dataset.dashboards)
+ %}
+
+###
+
+GET http://localhost:{{port}}/viz/{{uuid}}/invalidated
+
+###
+
+POST http://localhost:{{port}}/mitm_dataset/refresh/{{uuid}}
+
+###
+
+GET http://localhost:{{port}}/viz/{{uuid}}/invalidated
+
+###
+
+GET http://localhost:{{port}}/viz/{{uuid}}/refresh
+Content-Type: application/json
+
+{
+  "drop_chart_identifiers": true,
+  "drop_dashboard_identifiers": false,
+  "visualization_types": ["baseline", "custom-chart"]
+}
+
+###
+
+POST http://localhost:{{port}}/definitions/mitm_dataset/{{uuid}}
+Accept: application/json
+
+{
+    "visualization_types": ["baseline"],
+    "use_existing_identifiers": true
+}
+
+> {%
+    console.log('mdi')
+    console.log(response.body.mitm_dataset.uuid)
+    console.log('tables')
+    console.log(response.body.mitm_dataset.tables[0])
+    console.log('dashboards')
+    console.log(response.body.mitm_dataset.dashboards)
+ %}
+
+###
\ No newline at end of file
diff --git a/test/refresh_viz_mapped.http b/test/refresh_viz_mapped.http
new file mode 100644
index 0000000000000000000000000000000000000000..d61a2f74ceee5fbb97a47cac96ac8fb52cbaafd7
--- /dev/null
+++ b/test/refresh_viz_mapped.http
@@ -0,0 +1,89 @@
+
+GET http://localhost:{{port}}/mitm_dataset/{{mapped_uuid}}
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}
+
+###
+
+POST http://localhost:{{port}}/viz/{{mapped_uuid}}
+
+{
+    "visualization_types": ["baseline", "custom-chart", "experimental"]
+}
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}
+
+###
+
+POST http://localhost:{{port}}/definitions/mitm_dataset/{{mapped_uuid}}
+Accept: application/json
+
+{
+    "visualization_types": ["baseline"],
+    "use_existing_identifiers": true
+}
+
+> {%
+    console.log('mdi')
+    console.log(response.body.mitm_dataset.uuid)
+    console.log('tables')
+    console.log(response.body.mitm_dataset.tables[0])
+    console.log('dashboards')
+    console.log(response.body.mitm_dataset.dashboards)
+ %}
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}/invalidated
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}
+
+###
+
+POST http://localhost:{{port}}/mitm_dataset/mapped/pull/{{mapped_uuid}}
+
+###
+
+POST http://localhost:{{port}}/mitm_dataset/refresh/{{mapped_uuid}}
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}/invalidated
+
+###
+
+GET http://localhost:{{port}}/viz/{{mapped_uuid}}/refresh
+Content-Type: application/json
+
+{
+  "drop_chart_identifiers": true,
+  "drop_dashboard_identifiers": true,
+  "visualization_types": ["baseline", "custom-chart"]
+}
+
+###
+
+POST http://localhost:{{port}}/definitions/mitm_dataset/{{mapped_uuid}}
+Accept: application/json
+
+{
+    "visualization_types": ["baseline"],
+    "use_existing_identifiers": true
+}
+
+> {%
+    console.log('mdi')
+    console.log(response.body.mitm_dataset.uuid)
+    console.log('tables')
+    console.log(response.body.mitm_dataset.tables[0])
+    console.log('dashboards')
+    console.log(response.body.mitm_dataset.dashboards)
+ %}
+
+###
\ No newline at end of file
diff --git a/test/register_mapped.http b/test/register_mapped.http
new file mode 100644
index 0000000000000000000000000000000000000000..f92b3a38e822a5aea8bcc487ce2a96535947f0af
--- /dev/null
+++ b/test/register_mapped.http
@@ -0,0 +1,57 @@
+###
+
+# @name Register MAED dataset
+POST http://localhost:{{port}}/mitm_dataset/mapped/register
+#POST httpbin.org/post
+Accept: application/json
+
+# {
+#     "dataset_name": "mapped_a",
+#     "sql_alchemy_uri": "sqlite:///static/synthetic-original-db.sqlite",
+#     "db_mapping": <./standalone-mapping-synthetic.json
+# }
+< ./mapped-dataset-request.json
+
+###
+
+# @name List (mapped) MitM datasets
+GET http://localhost:{{port}}/mitm_dataset/mapped/
+
+> {%
+
+    const json = response.body
+    if (json.length > 0) {
+        let last = json[json.length - 1];
+        client.global.set('mapped_uuid', last.uuid)
+        client.global.set('source_id', last.mapped_db_source_id)
+        console.log('Mapped UUID:', last.uuid);
+    }
+
+%}
+
+###
+
+GET http://localhost:{{port}}/mitm_dataset/{{mapped_uuid}}
+
+###
+
+GET http://localhost:{{port}}/mitm_dataset/mapped/db_source/{{source_id}}
+
+###
+
+GET http://localhost:{{port}}/data/db-probe/{{mapped_uuid}}
+
+###
+
+# @name Pull mapped dataset
+POST http://localhost:{{port}}/mitm_dataset/mapped/pull/{{mapped_uuid}}
+
+###
+
+GET http://localhost:{{port}}/data/db-probe/{{mapped_uuid}}
+
+###
+
+GET http://localhost:{{port}}/mitm_dataset/mapped/{{mapped_uuid}}
+
+###
\ No newline at end of file
diff --git a/test/standalone-mapping-synthetic.json b/test/standalone-mapping-synthetic.json
new file mode 100644
index 0000000000000000000000000000000000000000..498f4dd5a2ac211a7eb9d203da5f34171fff1b6d
--- /dev/null
+++ b/test/standalone-mapping-synthetic.json
@@ -0,0 +1,231 @@
+{
+  "mitm": "MAED",
+  "concept_mappings": [
+    {
+      "mitm": "MAED",
+      "concept": "measurement",
+      "base_table": {
+        "source": "virtual",
+        "schema": "main",
+        "name": "measurements"
+      },
+      "kind_col": null,
+      "type_col": "type",
+      "identity_columns": {},
+      "inline_relations": [
+        "time",
+        "object"
+      ],
+      "foreign_relations": {},
+      "attributes": [
+        "x",
+        "y",
+        "z"
+      ],
+      "attribute_dtypes": [
+        "numeric",
+        "numeric",
+        "numeric"
+      ]
+    },
+    {
+      "mitm": "MAED",
+      "concept": "event",
+      "base_table": {
+        "source": "virtual",
+        "schema": "main",
+        "name": "events"
+      },
+      "kind_col": null,
+      "type_col": "status",
+      "identity_columns": {},
+      "inline_relations": [
+        "time",
+        "object"
+      ],
+      "foreign_relations": {},
+      "attributes": [
+        "info"
+      ],
+      "attribute_dtypes": [
+        "text"
+      ]
+    }
+  ],
+  "virtual_db_creation": {
+    "virtual_view_creations": [
+      {
+        "name": "events",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT 'E' AS kind, anon_1.timestamp AS time, anon_1.status, anon_1.info, anon_1.name AS object \nFROM (SELECT main.\"PrinterEvents\".id AS id, main.\"PrinterEvents\".\"printerId\" AS \"printerId\", main.\"PrinterEvents\".timestamp AS timestamp, main.\"PrinterEvents\".status AS status, main.\"PrinterEvents\".info AS info, main.\"PrintersTable\".name AS name \nFROM main.\"PrinterEvents\" JOIN main.\"PrintersTable\" ON main.\"PrinterEvents\".\"printerId\" = main.\"PrintersTable\".id) AS anon_1",
+            "columns": [
+              "kind",
+              "time",
+              "status",
+              "info",
+              "object"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "DATETIME",
+              "VARCHAR",
+              "VARCHAR",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      },
+      {
+        "name": "measurements",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT 'position' AS type, anon_1.timestamp AS time, anon_1.\"positionX\" AS x, anon_1.\"positionY\" AS y, anon_1.\"positionZ\" AS z, anon_1.\"printer.name\" AS object \nFROM (SELECT main.\"SensorTable\".id AS id, main.\"SensorTable\".\"printerId\" AS \"printerId\", main.\"SensorTable\".timestamp AS timestamp, main.\"SensorTable\".\"positionX\" AS \"positionX\", main.\"SensorTable\".\"positionY\" AS \"positionY\", main.\"SensorTable\".\"positionZ\" AS \"positionZ\", printer.name AS \"printer.name\" \nFROM main.\"SensorTable\" JOIN main.\"PrintersTable\" AS printer ON main.\"SensorTable\".\"printerId\" = printer.id) AS anon_1",
+            "columns": [
+              "type",
+              "time",
+              "x",
+              "y",
+              "z",
+              "object"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "DATETIME",
+              "FLOAT",
+              "FLOAT",
+              "FLOAT",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      },
+      {
+        "name": "intermediate",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT 'job' AS concept, anon_1.id AS segment_index, anon_1.\"startTime\" AS start, anon_1.\"endTime\" AS \"end\", anon_1.geometry, anon_1.settings, anon_1.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_1",
+            "columns": [
+              "concept",
+              "segment_index",
+              "start",
+              "end",
+              "geometry",
+              "settings",
+              "object"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "INTEGER",
+              "DATETIME",
+              "DATETIME",
+              "INTEGER",
+              "JSON",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      },
+      {
+        "name": "segments",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT anon_1.concept, anon_1.segment_index, anon_1.start, anon_1.\"end\", anon_1.object \nFROM (SELECT 'job' AS concept, anon_2.id AS segment_index, anon_2.\"startTime\" AS start, anon_2.\"endTime\" AS \"end\", anon_2.geometry AS geometry, anon_2.settings AS settings, anon_2.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_2) AS anon_1",
+            "columns": [
+              "concept",
+              "segment_index",
+              "start",
+              "end",
+              "object"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "INTEGER",
+              "DATETIME",
+              "DATETIME",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      },
+      {
+        "name": "segment_data",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT 'job_config' AS type, anon_1.settings -> '$.\"extrusion_temp\"' AS extrusion_temp, anon_1.settings -> '$.\"extrusion_rate\"' AS extrusion_rate, anon_1.settings -> '$.\"mode\"' AS mode, anon_1.settings -> '$.\"material\"' AS material, anon_1.concept, anon_1.segment_index, anon_1.object, anon_1.settings, anon_1.\"geom.name\" AS target_geometry \nFROM (SELECT anon_2.concept AS concept, anon_2.segment_index AS segment_index, anon_2.object AS object, anon_2.settings AS settings, geom.name AS \"geom.name\" \nFROM (SELECT 'job' AS concept, anon_3.id AS segment_index, anon_3.\"startTime\" AS start, anon_3.\"endTime\" AS \"end\", anon_3.geometry AS geometry, anon_3.settings AS settings, anon_3.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_3) AS anon_2 JOIN main.\"PrintingGeometries\" AS geom ON anon_2.geometry = geom.id) AS anon_1",
+            "columns": [
+              "type",
+              "extrusion_temp",
+              "extrusion_rate",
+              "mode",
+              "material",
+              "concept",
+              "segment_index",
+              "object",
+              "settings",
+              "target_geometry"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "JSON",
+              "JSON",
+              "JSON",
+              "JSON",
+              "VARCHAR",
+              "INTEGER",
+              "VARCHAR",
+              "JSON",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      },
+      {
+        "name": "experiment_segment_data",
+        "schema": "main",
+        "table_creation": {
+          "operation": "compiled",
+          "typed_query": {
+            "dialect": "sqlite",
+            "compiled_sql": "SELECT 'workpiece_qc' AS type, anon_1.\"workpieceQuality\" AS workpiece_quality, anon_1.concept, anon_1.segment_index, anon_1.object \nFROM (SELECT main.\"WorkpieceQCTable\".\"jobId\" AS \"jobId\", main.\"WorkpieceQCTable\".\"workpieceQuality\" AS \"workpieceQuality\", anon_2.concept AS concept, anon_2.segment_index AS segment_index, anon_2.object AS object \nFROM main.\"WorkpieceQCTable\" JOIN (SELECT anon_3.concept AS concept, anon_3.segment_index AS segment_index, anon_3.start AS start, anon_3.\"end\" AS \"end\", anon_3.object AS object \nFROM (SELECT 'job' AS concept, anon_4.id AS segment_index, anon_4.\"startTime\" AS start, anon_4.\"endTime\" AS \"end\", anon_4.geometry AS geometry, anon_4.settings AS settings, anon_4.\"printer.name\" AS object \nFROM (SELECT main.\"PrintJobs\".id AS id, main.\"PrintJobs\".\"printerId\" AS \"printerId\", main.\"PrintJobs\".\"startTime\" AS \"startTime\", main.\"PrintJobs\".\"endTime\" AS \"endTime\", main.\"PrintJobs\".geometry AS geometry, main.\"PrintJobs\".settings AS settings, printer.name AS \"printer.name\" \nFROM main.\"PrintJobs\" JOIN main.\"PrintersTable\" AS printer ON main.\"PrintJobs\".\"printerId\" = printer.id) AS anon_4) AS anon_3) AS anon_2 ON main.\"WorkpieceQCTable\".\"jobId\" = anon_2.segment_index) AS anon_1",
+            "columns": [
+              "type",
+              "workpiece_quality",
+              "concept",
+              "segment_index",
+              "object"
+            ],
+            "column_dtypes": [
+              "VARCHAR",
+              "VARCHAR",
+              "VARCHAR",
+              "INTEGER",
+              "VARCHAR"
+            ]
+          }
+        },
+        "transforms": null
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/test/tracked_viz.http b/test/tracked_viz.http
index 73497ebcaf8c90d7c64f2ecaef8f0c9d0b7c6250..3bb077707e5fb191d247988060a544c12a171c88 100644
--- a/test/tracked_viz.http
+++ b/test/tracked_viz.http
@@ -1,13 +1,13 @@
 
-GET http://localhost:{{port}}/mitm_dataset/{{uuid}}/
+GET http://localhost:{{port}}/mitm_dataset/{{uuid}}
 
 ###
 
-GET http://localhost:{{port}}/viz/{{uuid}}/
+GET http://localhost:{{port}}/viz/{{uuid}}
 
 ###
 
-POST http://localhost:{{port}}/viz/{{uuid}}/
+POST http://localhost:{{port}}/viz/{{uuid}}
 
 {
     "visualization_types": ["baseline"]
@@ -19,7 +19,7 @@ GET http://localhost:{{port}}/viz/{{uuid}}/
 
 ###
 
-GET http://localhost:{{port}}/mitm_dataset/{{uuid}}/
+GET http://localhost:{{port}}/mitm_dataset/{{uuid}}
 
 > {%
     console.log(response.body.superset_identifier_bundle)
@@ -46,7 +46,7 @@ Accept: application/json
 
 ###
 
-DELETE http://localhost:{{port}}/viz/{{uuid}}/
+DELETE http://localhost:{{port}}/viz/{{uuid}}
 
 {
     "visualization_types": ["baseline"]
@@ -54,6 +54,6 @@ DELETE http://localhost:{{port}}/viz/{{uuid}}/
 
 ###
 
-GET http://localhost:{{port}}/viz/{{uuid}}/
+GET http://localhost:{{port}}/viz/{{uuid}}
 
 ###
diff --git a/test/upload.http b/test/upload.http
index e62824c1f60e47004ecd0b3aca51934754105875..f25fcf0764f244f0f981d7a49fae74a36fe913de 100644
--- a/test/upload.http
+++ b/test/upload.http
@@ -3,7 +3,7 @@
 # @name Upload MAED dataset
 # @timeout 180
 # @connection-timeout 180
-POST http://localhost:{{port}}/mitm_dataset/upload?dataset_name=myname_x&mitm=MAED
+POST http://localhost:{{port}}/mitm_dataset/upload?dataset_name=local_x&mitm=MAED
 Accept: application/json
 Content-Type: multipart/form-data; boundary=WebAppBoundary
 
@@ -15,38 +15,32 @@ Content-Type: application/zip
 --WebAppBoundary--
 
 ###
-
-# @name List MitM datasets
-GET http://localhost:{{port}}/mitm_dataset/
-
 ###
 
+# @name List (mapped) MitM datasets
+GET http://localhost:{{port}}/mitm_dataset/local/
 
-POST http://localhost:{{port}}/mitm_dataset/upload?dataset_name=myname_1&mitm=MAED
-Accept: application/json
-Content-Type: multipart/form-data; boundary=WebAppBoundary
+> {%
 
---WebAppBoundary
-Content-Disposition: form-data; name="mitm_zip"; filename="synthetic-variation.maed"
-Content-Type: application/zip
-
-< ./synthetic-trimmed.maed
---WebAppBoundary--
-
-###
+    const json = response.body
+    if (json.length > 0) {
+        let last = json[json.length - 1];
+        client.global.set('uuid', last.uuid)
+        console.log('Uploaded UUID:', last.uuid);
+    }
 
-GET http://localhost:{{port}}/mitm_dataset/
+%}
 
 ###
 
-GET http://localhost:{{port}}/mitm_dataset/{{uuid}}
+GET http://localhost:{{port}}/data/db-meta/{{uuid}}
 
 ###
 
-GET http://localhost:{{port}}/mitm_dataset/b4004d6a-bcaa-4a48-aa54-271b074109ca
+GET http://localhost:{{port}}/data/db-probe/{{uuid}}
 
 ###
 
-DELETE http://localhost:{{port}}/mitm_dataset/39f207b3-2588-484d-a63c-91d219d7513d
+GET http://localhost:{{port}}/mitm_dataset/local/{{uuid}}
 
 ###
\ No newline at end of file