mainsequence-metatable 0.1.8.dev13__tar.gz → 0.1.8.dev15__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mainsequence_metatable-0.1.8.dev13/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.8.dev15}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +50 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/index.md +1 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/data-sources.md +4 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/openapi.json +0 -52
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/reference.md +0 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/installation-and-connection.md +5 -5
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/releasing.md +7 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/testing.md +1 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/catalog-migrations.md +0 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/hosted-runtime.md +5 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/local-runtime.md +12 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/pyproject.toml +2 -2
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15/src/mainsequence_metatable.egg-info}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/requires.txt +1 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/bootstrap.py +2 -36
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/main.py +0 -3
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/data_sources.py +10 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/runtime_context.py +0 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/runtime.py +1 -13
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime_contract.py +0 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_hosted_environment_target.py +1 -1
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_selection.py +57 -48
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_data_source_registry.py +1 -2
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_runtime_transition.py +13 -17
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/uv.lock +4 -4
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/LICENSE +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/source_registrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_queries.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.8.
|
|
3
|
+
Version: 0.1.8.dev15
|
|
4
4
|
Summary: Main Sequence MetaTables Python client and standalone API
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: mainsequence[server]<10,>=9.0.
|
|
17
|
+
Requires-Dist: mainsequence[server]<10,>=9.0.4
|
|
18
18
|
Requires-Dist: alembic<2,>=1.18
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
@@ -28,6 +28,7 @@ does not cache this API's runtime context or select its runtime mode or DataSour
|
|
|
28
28
|
Updated 2026-09-28: application Environment policy and relationships are removed.
|
|
29
29
|
Amended 2026-09-29: one enforced runtime binding and explicit bootstrap select one
|
|
30
30
|
database for system and user tables.
|
|
31
|
+
Amended 2026-10-02: each runtime mode lists and selects only its own DataSources.
|
|
31
32
|
|
|
32
33
|
Companion decision: [Main Sequence SDK ADR 0035: Independent Git source and platform execution context](https://github.com/mainsequence-sdk/mainsequence-sdk/blob/metatables_removal/docs/adr/0035-independent-git-source-and-platform-context.md).
|
|
33
34
|
The SDK prerequisite is implemented on `metatables_removal`; the current local
|
|
@@ -81,6 +82,55 @@ API requirement. The guides and examples describe the implemented shared path.
|
|
|
81
82
|
|
|
82
83
|
## Decision
|
|
83
84
|
|
|
85
|
+
### Each runtime mode selects only its own DataSources (amended 2026-10-02)
|
|
86
|
+
|
|
87
|
+
Implemented 2026-10-02 in the API and Admin; the PostgreSQL runtime-transition test
|
|
88
|
+
was updated but not run.
|
|
89
|
+
|
|
90
|
+
A DataSource belongs to the runtime mode that registered it. Data Sources and
|
|
91
|
+
Settings show only the current mode's registrations:
|
|
92
|
+
|
|
93
|
+
| Mode | Registrations | Credential references |
|
|
94
|
+
| --- | --- | --- |
|
|
95
|
+
| Local | The workspace SQLite catalog | Local CredentialStore |
|
|
96
|
+
| Hosted | The Hosted registry until activation, then the hosted catalog | SDK Secrets |
|
|
97
|
+
|
|
98
|
+
Neither mode lists, selects or copies the other mode's registrations. This applies
|
|
99
|
+
ADR 0009's rule against automatic credential transfers to selection. A Hosted
|
|
100
|
+
DataSource is registered and selected after switching to Hosted. Local mode offers
|
|
101
|
+
**Switch to Hosted** without choosing a source; Hosted starts with its saved
|
|
102
|
+
selection or uninitialized, as the supervised-selection amendment below requires.
|
|
103
|
+
|
|
104
|
+
Gap observed 2026-10-02: in Local mode, the Settings Hosted picker listed the local
|
|
105
|
+
catalog (`GET /data-sources/`). Selecting a TimescaleDB registered there made
|
|
106
|
+
`POST /runtime-bootstrap/hosted/select/` copy the row, with its local password
|
|
107
|
+
reference, into `.local/runtime-source-candidates.json`. SDK Secrets could not
|
|
108
|
+
resolve that reference ("SDK Secret access failed"). Local mode also offered no
|
|
109
|
+
way to register a Hosted source: **Add DataSource** writes the local catalog, and
|
|
110
|
+
the Admin disables **Switch to Hosted** until a Hosted source is selected. The
|
|
111
|
+
operations guide documents this cross-mode flow.
|
|
112
|
+
|
|
113
|
+
Fix:
|
|
114
|
+
|
|
115
|
+
1. API: remove Local-mode Hosted preselection: `POST /runtime-bootstrap/hosted/select/`,
|
|
116
|
+
the Local `hosted_bootstrap` and its runtime-context field. Remove the
|
|
117
|
+
local-catalog lookup and `remember()` from `registered_hosted_source`. Hosted
|
|
118
|
+
`POST /runtime-bootstrap/select/` resolves only the Hosted registry or the
|
|
119
|
+
active hosted catalog.
|
|
120
|
+
2. Admin: in Local mode, Settings enables **Switch to Hosted** with no source
|
|
121
|
+
picker. The Hosted picker and its **Add DataSource** render only in Hosted
|
|
122
|
+
mode, where Data Sources is the Hosted registry.
|
|
123
|
+
3. Docs: `docs/operations/local-runtime.md` describes the order Switch to Hosted,
|
|
124
|
+
register in Data Sources, select in Settings, then run MetaTables migrations
|
|
125
|
+
or use the existing catalog.
|
|
126
|
+
4. Tests: the Local-mode selection route no longer exists; Hosted selection
|
|
127
|
+
rejects a local-catalog UID; a fresh Hosted runtime registers a source with an
|
|
128
|
+
SDK Secret reference and selects it; Settings in Local mode switches without a
|
|
129
|
+
selection.
|
|
130
|
+
|
|
131
|
+
Hosted registry entries already copied from a local catalog carry unusable
|
|
132
|
+
references; developers remove them. No data migration is provided.
|
|
133
|
+
|
|
84
134
|
### One local runtime across branches (amended 2026-09-30)
|
|
85
135
|
|
|
86
136
|
MetaTables owns one persistent local SQLite runtime for a checkout. Git branches,
|
|
@@ -23,7 +23,7 @@ decisions belong in the SDK repository and are linked as dependencies.
|
|
|
23
23
|
|
|
24
24
|
| ADR | Status | Scope |
|
|
25
25
|
| --- | --- | --- |
|
|
26
|
-
| [0001: One API execution path with SQLite for local development](api/0001-unified-api-storage-and-local-sqlite.md) | Accepted and implemented | Shared execution, API-owned local storage, SDK context dependency, and DuckDB removal. |
|
|
26
|
+
| [0001: One API execution path with SQLite for local development](api/0001-unified-api-storage-and-local-sqlite.md) | Accepted and implemented | Shared execution, API-owned local storage, SDK context dependency, and DuckDB removal; each runtime mode lists and selects only its own DataSources. |
|
|
27
27
|
| [0002: Application administration and table ownership](api/0002-application-administration-and-table-ownership.md) | Accepted and implemented | Platform admin facts, table Reader/Writer ownership, User/Team grants, live namespace inheritance, and application-owned access management. |
|
|
28
28
|
| [0004: Execute approved application migrations inside the API](api/0004-approved-application-migrations.md) | Superseded by ADR 0013 | Historical API-installed provider execution model. |
|
|
29
29
|
| [0005: Shared run logs with local file capture](api/0005-run-logs-and-local-file-capture.md) | Accepted and implemented; live hosted verification pending | Shared run correlation and log API, runtime-bound local JSONL files, and hosted retrieval through the SDK. |
|
{mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/data-sources.md
RENAMED
|
@@ -30,10 +30,10 @@ These operations do not reconcile runtime table grants. If database permissions
|
|
|
30
30
|
need repair in Security, caller queries remain blocked while external DataSource
|
|
31
31
|
management remains available.
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
Each runtime mode lists only its own registrations: Local the workspace catalog,
|
|
34
|
+
Hosted its registry. In Hosted mode, Settings lists eligible PostgreSQL, TimescaleDB,
|
|
35
|
+
MySQL and MSSQL DataSources and selects one by UID through `/runtime-bootstrap/select/`.
|
|
36
|
+
Local mode cannot select a Hosted DataSource; switch to Hosted first. Registration preserves the UID when its catalog is
|
|
37
37
|
initialized. The API's private pre-initialization storage is an implementation detail.
|
|
38
38
|
|
|
39
39
|
The active runtime DataSource hosts the system catalog and default application
|
{mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/openapi.json
RENAMED
|
@@ -3127,16 +3127,6 @@
|
|
|
3127
3127
|
],
|
|
3128
3128
|
"title": "Git Source"
|
|
3129
3129
|
},
|
|
3130
|
-
"hosted_bootstrap": {
|
|
3131
|
-
"anyOf": [
|
|
3132
|
-
{
|
|
3133
|
-
"$ref": "#/components/schemas/RuntimeBootstrapDescriptor"
|
|
3134
|
-
},
|
|
3135
|
-
{
|
|
3136
|
-
"type": "null"
|
|
3137
|
-
}
|
|
3138
|
-
]
|
|
3139
|
-
},
|
|
3140
3130
|
"hosted_environment": {
|
|
3141
3131
|
"anyOf": [
|
|
3142
3132
|
{
|
|
@@ -6510,48 +6500,6 @@
|
|
|
6510
6500
|
]
|
|
6511
6501
|
}
|
|
6512
6502
|
},
|
|
6513
|
-
"/runtime-bootstrap/hosted/select/": {
|
|
6514
|
-
"post": {
|
|
6515
|
-
"description": "Select a registered hosted DataSource without changing the active local runtime.",
|
|
6516
|
-
"operationId": "select_hosted_before_switch_runtime_bootstrap_hosted_select__post",
|
|
6517
|
-
"requestBody": {
|
|
6518
|
-
"content": {
|
|
6519
|
-
"application/json": {
|
|
6520
|
-
"schema": {
|
|
6521
|
-
"$ref": "#/components/schemas/RuntimeSourceSelection"
|
|
6522
|
-
}
|
|
6523
|
-
}
|
|
6524
|
-
},
|
|
6525
|
-
"required": true
|
|
6526
|
-
},
|
|
6527
|
-
"responses": {
|
|
6528
|
-
"200": {
|
|
6529
|
-
"content": {
|
|
6530
|
-
"application/json": {
|
|
6531
|
-
"schema": {
|
|
6532
|
-
"$ref": "#/components/schemas/RuntimeBootstrapDescriptor"
|
|
6533
|
-
}
|
|
6534
|
-
}
|
|
6535
|
-
},
|
|
6536
|
-
"description": "Successful Response"
|
|
6537
|
-
},
|
|
6538
|
-
"422": {
|
|
6539
|
-
"content": {
|
|
6540
|
-
"application/json": {
|
|
6541
|
-
"schema": {
|
|
6542
|
-
"$ref": "#/components/schemas/HTTPValidationError"
|
|
6543
|
-
}
|
|
6544
|
-
}
|
|
6545
|
-
},
|
|
6546
|
-
"description": "Validation Error"
|
|
6547
|
-
}
|
|
6548
|
-
},
|
|
6549
|
-
"summary": "Select Hosted Before Switch",
|
|
6550
|
-
"tags": [
|
|
6551
|
-
"Runtime bootstrap"
|
|
6552
|
-
]
|
|
6553
|
-
}
|
|
6554
|
-
},
|
|
6555
6503
|
"/runtime-bootstrap/migrate/": {
|
|
6556
6504
|
"post": {
|
|
6557
6505
|
"operationId": "migrate_runtime_bootstrap_migrate__post",
|
{mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/reference.md
RENAMED
|
@@ -51,7 +51,6 @@ These methods and paths are mounted by the current application. See the [OpenAPI
|
|
|
51
51
|
| POST | `/runtime-bootstrap/activate/` | Activate | 200 |
|
|
52
52
|
| POST | `/runtime-bootstrap/configure/` | Configure | 200 |
|
|
53
53
|
| POST | `/runtime-bootstrap/destroy-local/` | Destroy Local | 200 |
|
|
54
|
-
| POST | `/runtime-bootstrap/hosted/select/` | Select Hosted Before Switch | 200 |
|
|
55
54
|
| POST | `/runtime-bootstrap/migrate/` | Migrate | 200 |
|
|
56
55
|
| POST | `/runtime-bootstrap/select/` | Select Hosted Runtime Source | 200 |
|
|
57
56
|
| GET | `/runtime-context/` | Runtime Context | 200 |
|
|
@@ -11,7 +11,7 @@ require running another service locally.
|
|
|
11
11
|
Install in your application's Python environment on macOS or Linux:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
python -m pip install "mainsequence-metatable==0.1.
|
|
14
|
+
python -m pip install "mainsequence-metatable==0.1.8" "mainsequence[server]==9.0.4"
|
|
15
15
|
mainsequence login
|
|
16
16
|
metatables init --local
|
|
17
17
|
metatables serve --local --admin
|
|
@@ -19,11 +19,11 @@ metatables serve --local --admin
|
|
|
19
19
|
|
|
20
20
|
Run from an application Git checkout with a commit and an `origin` remote. Python
|
|
21
21
|
3.13+ is required. Admin also needs Node.js 22.12+ (or 20.19+) and npm. The package
|
|
22
|
-
requires published `mainsequence[server]>=9.0.
|
|
23
|
-
The next stable release is MetaTables 0.1.
|
|
22
|
+
requires published `mainsequence[server]>=9.0.4,<10`; no SDK checkout is needed.
|
|
23
|
+
The next stable release is MetaTables 0.1.8, paired with published SDK 9.0.4.
|
|
24
24
|
The pinned command above applies after that stable release is published; before
|
|
25
|
-
then, install the exact `0.1.
|
|
26
|
-
workflow alongside `mainsequence[server]==9.0.
|
|
25
|
+
then, install the exact `0.1.8.devN` artifact produced by the development publishing
|
|
26
|
+
workflow alongside `mainsequence[server]==9.0.4`. SDK 8 is outside this release's
|
|
27
27
|
dependency range.
|
|
28
28
|
`python -m metatables.sdk_compat` checks the required SDK interfaces without network
|
|
29
29
|
requests. Local SQLite uses the standard library driver.
|
|
@@ -42,10 +42,13 @@ substitute for the published SDK in a release. The selected SDK artifact must
|
|
|
42
42
|
provide ordinary `Secret.get_by_uid`, independent Git source context, and
|
|
43
43
|
`CallerAssertionVerifier.from_environment` through its `server` extra.
|
|
44
44
|
|
|
45
|
-
The next MetaTables stable release is `0.1.
|
|
46
|
-
`mainsequence[server]>=9.0.
|
|
47
|
-
The minimum and lockfile now select published SDK `9.0.
|
|
48
|
-
interfaces
|
|
45
|
+
The next MetaTables stable release is `0.1.8`; its supported SDK range is
|
|
46
|
+
`mainsequence[server]>=9.0.4,<10`. Development builds use `0.1.8.devN`.
|
|
47
|
+
The minimum and lockfile now select published SDK `9.0.4`, which supplies those
|
|
48
|
+
interfaces and is the first SDK whose caller-assertion verifier accepts the
|
|
49
|
+
platform's EdDSA (Ed25519) caller assertions. Earlier SDKs verify only RS256, so a
|
|
50
|
+
hosted API built with them cannot authenticate platform callers.
|
|
51
|
+
Runtime compatibility is verified manually with the published artifact;
|
|
49
52
|
package/static CI does not establish runtime compatibility. When changing the SDK
|
|
50
53
|
minimum, update it in `pyproject.toml`, then run:
|
|
51
54
|
|
|
@@ -104,7 +104,7 @@ The distribution check requires exactly one wheel and one sdist in `dist/` and
|
|
|
104
104
|
compares packaged Python modules with current source. Also test importing the
|
|
105
105
|
wheel in a fresh environment with the compatible published SDK installed, and verify
|
|
106
106
|
both catalog migrations and application revision templates are packaged.
|
|
107
|
-
The package requires published SDK 9.0.
|
|
107
|
+
The package requires published SDK 9.0.4 or newer within its declared major version.
|
|
108
108
|
|
|
109
109
|
Run the installed-wheel smoke tests manually from outside the checkout, using a
|
|
110
110
|
fresh virtual environment with the compatible SDK and built MetaTables wheel:
|
|
@@ -31,7 +31,6 @@ The API owns these endpoints in both modes:
|
|
|
31
31
|
| --- | --- |
|
|
32
32
|
| `GET /runtime-context/` | Read runtime and bootstrap status, including before any catalog exists. |
|
|
33
33
|
| `GET/POST /data-sources/` | List or register DataSources, including before hosted bootstrap. |
|
|
34
|
-
| `POST /runtime-bootstrap/hosted/select/` | Select a registered hosted DataSource while Local remains active. |
|
|
35
34
|
| `POST /runtime-bootstrap/select/` | Select a registered DataSource in Hosted mode. |
|
|
36
35
|
| `POST /runtime-bootstrap/configure/` | Hold and inspect a proposed `{display_name, class_type, configuration}`. |
|
|
37
36
|
| `POST /runtime-bootstrap/migrate/` | Explicitly migrate, register the runtime source, and activate. |
|
|
@@ -42,8 +42,8 @@ The injected SDKCredentialStore saves the password as a managed platform Secret
|
|
|
42
42
|
and stores its UID. Hosted never provisions a local key or applies MetaTables AES
|
|
43
43
|
encryption to that Secret. Then select it
|
|
44
44
|
from the registered DataSources list in **Settings → Runtime → DataSource**. In the
|
|
45
|
-
developer launcher,
|
|
46
|
-
|
|
45
|
+
developer launcher, switch to Hosted first: Local mode lists only its workspace
|
|
46
|
+
DataSources and cannot register or select Hosted ones.
|
|
47
47
|
If MetaTables is absent or outdated, explicitly click **Run MetaTables migrations**.
|
|
48
48
|
If its schema is already compatible, choose **Use this DataSource**. The selected
|
|
49
49
|
database stores both the system catalog and user tables; the source registration is
|
|
@@ -55,9 +55,10 @@ returns HTTP 200 with a null active DataSource; application routes remain unavai
|
|
|
55
55
|
This lets the Vite site show Settings even on the first launch. Once active, the descriptor
|
|
56
56
|
supplies the source UID, dialect, parameter style and schema to both clients.
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Each runtime mode registers through `/data-sources/` into its own registry. Hosted
|
|
59
59
|
pre-initialization persistence retains the legacy `.local/runtime-source-candidates.json`
|
|
60
|
-
filename for compatibility; it is not a second resource
|
|
60
|
+
filename for compatibility; it is not a second resource, and Local mode never reads
|
|
61
|
+
or writes it. Selection saves
|
|
61
62
|
public connection settings and Secret references to `.local/runtime-data-sources.json`.
|
|
62
63
|
Persist that directory across restarts. Startup verifies
|
|
63
64
|
the existing schema and reopens the selected source; it never upgrades. An incompatible
|
|
@@ -67,10 +67,18 @@ Apply application providers through the client with
|
|
|
67
67
|
|
|
68
68
|
## Switch modes in one Admin site
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
Each mode lists and selects only its own DataSources. Local shows the workspace
|
|
71
|
+
catalog and keeps its passwords in the local CredentialStore; Hosted shows the
|
|
72
|
+
Hosted registry and keeps passwords as managed Main Sequence Secrets. A DataSource
|
|
73
|
+
registered in Local never appears in Hosted, and neither mode copies the other's
|
|
74
|
+
registrations or credentials.
|
|
75
|
+
|
|
76
|
+
To use a hosted database, choose Hosted under **Settings → Runtime mode** and click
|
|
77
|
+
**Switch to Hosted**; no DataSource selection is needed first. The worker restarts in
|
|
78
|
+
Hosted with its saved selection, or uninitialized with Settings available. Register
|
|
79
|
+
the database under **MetaTables → Data Sources**, select it in **Settings → Runtime →
|
|
80
|
+
DataSource**, then click **Run MetaTables migrations** or **Use this DataSource**.
|
|
81
|
+
Switching stops the old worker before starting the selected mode; it never copies data.
|
|
74
82
|
Failed worker startup restores the previous worker. Mode selection is recorded in
|
|
75
83
|
`.local/runtime-selection.json`; successful DataSource selection is recorded separately
|
|
76
84
|
in `.local/runtime-data-sources.json` using public settings and Secret references only.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mainsequence-metatable"
|
|
7
|
-
version = "0.1.8.
|
|
7
|
+
version = "0.1.8.dev15"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -18,7 +18,7 @@ classifiers = [
|
|
|
18
18
|
"Operating System :: OS Independent",
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
|
-
"mainsequence[server]>=9.0.
|
|
21
|
+
"mainsequence[server]>=9.0.4,<10",
|
|
22
22
|
"alembic>=1.18,<2",
|
|
23
23
|
"cachetools",
|
|
24
24
|
"cryptography>=46,<51",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.8.
|
|
3
|
+
Version: 0.1.8.dev15
|
|
4
4
|
Summary: Main Sequence MetaTables Python client and standalone API
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: mainsequence[server]<10,>=9.0.
|
|
17
|
+
Requires-Dist: mainsequence[server]<10,>=9.0.4
|
|
18
18
|
Requires-Dist: alembic<2,>=1.18
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
@@ -544,46 +544,12 @@ def persist_registered_selection(candidate):
|
|
|
544
544
|
candidate.persist_selection()
|
|
545
545
|
|
|
546
546
|
|
|
547
|
-
@router.post("/hosted/select/", response_model=RuntimeBootstrapDescriptor)
|
|
548
|
-
def select_hosted_before_switch(body: RuntimeSourceSelection, request: Request,
|
|
549
|
-
caller: AdmittedCaller = Depends(require_admin)):
|
|
550
|
-
"""Select a registered hosted DataSource without changing the active local runtime."""
|
|
551
|
-
state = request.app.state.runtime
|
|
552
|
-
current = state.hosted_bootstrap
|
|
553
|
-
if not state.config.local_mode or current is None:
|
|
554
|
-
raise HTTPException(403, "Hosted DataSource preparation is available only in Local mode.")
|
|
555
|
-
if not current.lock.acquire(blocking=False):
|
|
556
|
-
raise HTTPException(409, "Hosted DataSource configuration is already in progress.")
|
|
557
|
-
try:
|
|
558
|
-
if request.app.state.runtime.hosted_bootstrap is not current:
|
|
559
|
-
raise HTTPException(409, "Hosted DataSource configuration changed. Refresh Settings.")
|
|
560
|
-
source = registered_hosted_source(request, body.source_uid)
|
|
561
|
-
candidate = RuntimeBootstrap(replace(state.config, local_mode=False),
|
|
562
|
-
replace(state.identity, workspace=None))
|
|
563
|
-
try:
|
|
564
|
-
candidate.selected_source_uid = str(body.source_uid)
|
|
565
|
-
candidate.configure(source, caller.user_uid)
|
|
566
|
-
if candidate.status == "unavailable":
|
|
567
|
-
raise BootstrapError(candidate.error or "Cannot verify the hosted DataSource connection.")
|
|
568
|
-
persist_registered_selection(candidate)
|
|
569
|
-
request.app.state.runtime = replace(request.app.state.runtime, hosted_bootstrap=candidate)
|
|
570
|
-
current.close()
|
|
571
|
-
return candidate.descriptor(caller.user_uid, is_admin=caller.is_admin)
|
|
572
|
-
except BootstrapError as exc:
|
|
573
|
-
candidate.close()
|
|
574
|
-
raise HTTPException(409, str(exc)) from None
|
|
575
|
-
except Exception:
|
|
576
|
-
candidate.close()
|
|
577
|
-
raise HTTPException(503, "Unable to save the hosted DataSource configuration.") from None
|
|
578
|
-
finally:
|
|
579
|
-
current.lock.release()
|
|
580
|
-
|
|
581
|
-
|
|
582
547
|
@router.post("/select/", response_model=RuntimeBootstrapDescriptor)
|
|
583
548
|
def select_hosted_runtime_source(body: RuntimeSourceSelection, request: Request,
|
|
584
549
|
caller: AdmittedCaller = Depends(require_admin)):
|
|
550
|
+
# Each mode selects only its own registrations; Local never prepares Hosted.
|
|
585
551
|
if request.app.state.runtime.config.local_mode:
|
|
586
|
-
raise HTTPException(409, "
|
|
552
|
+
raise HTTPException(409, "Switch to Hosted before selecting its DataSource.")
|
|
587
553
|
source = registered_hosted_source(request, body.source_uid)
|
|
588
554
|
with mutation(request, caller) as current:
|
|
589
555
|
state = request.app.state.runtime
|
|
@@ -115,9 +115,6 @@ def create_app(config: RuntimeConfig | None = None) -> FastAPI:
|
|
|
115
115
|
finally:
|
|
116
116
|
if bootstrap:
|
|
117
117
|
bootstrap.close()
|
|
118
|
-
hosted_bootstrap = _app.state.runtime.hosted_bootstrap
|
|
119
|
-
if hosted_bootstrap:
|
|
120
|
-
hosted_bootstrap.close()
|
|
121
118
|
|
|
122
119
|
service = FastAPI(title="MetaTables API", version="0.1.0", lifespan=lifespan)
|
|
123
120
|
from metatables.api.backend.backends.contracts import SQLExecutionError
|
|
@@ -54,8 +54,14 @@ def registrations():
|
|
|
54
54
|
return source_registrations
|
|
55
55
|
|
|
56
56
|
|
|
57
|
+
def hosted_registry(request):
|
|
58
|
+
# The saved registry holds Hosted registrations only; Local lists its catalog.
|
|
59
|
+
runtime = request.app.state.runtime
|
|
60
|
+
return runtime.bootstrap is not None and not runtime.config.local_mode
|
|
61
|
+
|
|
62
|
+
|
|
57
63
|
def saved_rows(request):
|
|
58
|
-
if request
|
|
64
|
+
if not hosted_registry(request):
|
|
59
65
|
return {}
|
|
60
66
|
store = registrations()
|
|
61
67
|
return store.read_registry(store.registry_path(request))
|
|
@@ -67,7 +73,7 @@ def saved_source(uid, request, session):
|
|
|
67
73
|
|
|
68
74
|
|
|
69
75
|
def remember_source(row, request):
|
|
70
|
-
if request
|
|
76
|
+
if hosted_registry(request):
|
|
71
77
|
registrations().remember(row, request)
|
|
72
78
|
|
|
73
79
|
class SourceRoute(APIRoute):
|
|
@@ -179,7 +185,7 @@ def payload(row, actor, binding, request=None):
|
|
|
179
185
|
|
|
180
186
|
|
|
181
187
|
def selected_source(uid, request):
|
|
182
|
-
if request is None or request
|
|
188
|
+
if request is None or not hosted_registry(request):
|
|
183
189
|
return False
|
|
184
190
|
return registrations().selected_uid(request) == str(uid)
|
|
185
191
|
|
|
@@ -372,7 +378,7 @@ def delete_source(uid: UUID, request: Request, actor: TrustedActorFacts = Depend
|
|
|
372
378
|
raise HTTPException(409, "Default or referenced DataSources cannot be removed.")
|
|
373
379
|
session.delete(row)
|
|
374
380
|
session.commit()
|
|
375
|
-
if request
|
|
381
|
+
if hosted_registry(request):
|
|
376
382
|
registrations().forget(uid, request)
|
|
377
383
|
return Response(status_code=204)
|
|
378
384
|
|
|
@@ -87,7 +87,6 @@ def runtime_context(
|
|
|
87
87
|
"git_source": source_descriptor(workspace.source) if workspace else None,
|
|
88
88
|
"data_source_selection": selection,
|
|
89
89
|
"bootstrap": state.bootstrap.descriptor(caller.user_uid, is_admin=caller.is_admin) if state.bootstrap else None,
|
|
90
|
-
"hosted_bootstrap": state.hosted_bootstrap.descriptor(caller.user_uid, is_admin=caller.is_admin) if state.hosted_bootstrap else None,
|
|
91
90
|
"data_source_error": None,
|
|
92
91
|
"data_source": None, "dialect": None, "paramstyle": None,
|
|
93
92
|
"default_schema": None,
|
|
@@ -211,7 +211,6 @@ class RuntimeState:
|
|
|
211
211
|
credential_store: CredentialStore = field(default_factory=UnavailableCredentialStore, repr=False, compare=False)
|
|
212
212
|
binding: RuntimeStorageBinding = field(default_factory=RuntimeStorageBinding)
|
|
213
213
|
bootstrap: object | None = None
|
|
214
|
-
hosted_bootstrap: object | None = None
|
|
215
214
|
actor_facts_cache: PlatformCache[tuple[bool, UUID], tuple[frozenset[UUID], bool]] = field(
|
|
216
215
|
default_factory=PlatformCache, repr=False, compare=False)
|
|
217
216
|
environment_cache: PlatformCache[UUID, HostedEnvironment] = field(
|
|
@@ -247,18 +246,7 @@ def initialize_runtime(config: RuntimeConfig) -> RuntimeState:
|
|
|
247
246
|
except Exception:
|
|
248
247
|
bootstrap.status = "unavailable"
|
|
249
248
|
bootstrap.error = "Saved runtime configuration is invalid. Configure the DataSource again in Settings."
|
|
250
|
-
|
|
251
|
-
if config.local_mode:
|
|
252
|
-
hosted_bootstrap = RuntimeBootstrap(replace(config, local_mode=False), replace(identity, workspace=None))
|
|
253
|
-
hosted_candidate = hosted_bootstrap.initial_candidate()
|
|
254
|
-
if hosted_candidate:
|
|
255
|
-
try:
|
|
256
|
-
hosted_bootstrap.configure(hosted_candidate, None)
|
|
257
|
-
except Exception:
|
|
258
|
-
hosted_bootstrap.status = "unavailable"
|
|
259
|
-
hosted_bootstrap.error = "Saved hosted DataSource is invalid. Configure it again in Settings."
|
|
260
|
-
state = RuntimeState(config=config, identity=identity, bootstrap=bootstrap, hosted_bootstrap=hosted_bootstrap,
|
|
261
|
-
credential_store=credentials)
|
|
249
|
+
state = RuntimeState(config=config, identity=identity, bootstrap=bootstrap, credential_store=credentials)
|
|
262
250
|
if identity is not None and identity.actor_facts is not None:
|
|
263
251
|
state.actor_facts_cache.seed((True, identity.user_uid), identity.actor_facts,
|
|
264
252
|
expires_at=identity.facts_expires_at)
|
|
@@ -61,7 +61,6 @@ class RuntimeContext(BaseModel):
|
|
|
61
61
|
data_source_selection: Literal["local_workspace", "catalog_default", "runtime_override", "runtime_binding"] = "catalog_default"
|
|
62
62
|
data_source_error: str | None = None
|
|
63
63
|
bootstrap: RuntimeBootstrapDescriptor | None = None
|
|
64
|
-
hosted_bootstrap: RuntimeBootstrapDescriptor | None = None
|
|
65
64
|
dialect: Literal["sqlite", "postgresql", "mysql", "mssql"] | None
|
|
66
65
|
paramstyle: Literal["named", "pyformat", "qmark"] | None
|
|
67
66
|
data_source: dict | None
|
|
@@ -53,7 +53,7 @@ def test_runtime_descriptor_distinguishes_switch_target_from_active_environment(
|
|
|
53
53
|
uid = uuid4()
|
|
54
54
|
environment = HostedEnvironment(uid=str(uid), name="Development", status="verified")
|
|
55
55
|
state = SimpleNamespace(config=SimpleNamespace(local_mode=local, developer_mode=True,
|
|
56
|
-
configuration_path=None, expected_host="127.0.0.1:18473"), workspace=None, bootstrap=None,
|
|
56
|
+
configuration_path=None, expected_host="127.0.0.1:18473"), workspace=None, bootstrap=None,
|
|
57
57
|
binding=SimpleNamespace(source_uid=None), environment_cache=PlatformCache(),
|
|
58
58
|
credential_store=SimpleNamespace(descriptor=lambda: dict(provider="unconfigured", status="uninitialized", error=None)))
|
|
59
59
|
control = SimpleNamespace(instance_id="worker", error=None, shutdown=lambda: None) if switch_available else None
|