mainsequence-metatable 0.1.8.dev18__tar.gz → 0.1.9.dev19__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.dev18 → mainsequence_metatable-0.1.9.dev19}/.agents/skills/client/metatables-local-development/SKILL.md +12 -4
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/.agents/skills/client/metatables-migrations/SKILL.md +37 -7
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +3 -0
- {mainsequence_metatable-0.1.8.dev18/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.9.dev19}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/define-and-migrate-tables.md +5 -0
- mainsequence_metatable-0.1.9.dev19/docs/client/deploy-application-migrations.md +103 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/mkdocs.yml +1 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/mainsequence_metatable.egg-info/SOURCES.txt +1 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/uv.lock +1 -1
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/LICENSE +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_runtime_transition.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/tests/permissions/test_table_queries.py +0 -0
|
@@ -72,6 +72,8 @@ Do not retry against automatic hosted discovery when a local connection fails.
|
|
|
72
72
|
Substitute the application's own module. Provider code and revisions are
|
|
73
73
|
installed in the application process; the API requires no provider approval
|
|
74
74
|
or installation. System initialization and application histories remain separate.
|
|
75
|
+
Running the provider yourself is for the local runtime only; hosted runtimes
|
|
76
|
+
receive the same revisions from the deployment workflow's migration Job.
|
|
75
77
|
5. Build application contracts/queries with the
|
|
76
78
|
[table skill](../metatables-meta-tables/SKILL.md), or producers/readers with the
|
|
77
79
|
[updater skill](../metatables-time-index-table-updates/SKILL.md). Use small,
|
|
@@ -134,8 +136,12 @@ integration-test fixture.
|
|
|
134
136
|
## Finish verification and switch back
|
|
135
137
|
|
|
136
138
|
Record what passed, the runtime/DataSource used, and any engine-specific work still
|
|
137
|
-
unverified.
|
|
139
|
+
unverified. Commit the reviewed application code and its migration revisions together;
|
|
138
140
|
local rows, catalog UIDs, credentials and fixture data are not promoted by a switch.
|
|
141
|
+
The application's deployment workflow applies those revisions to the hosted runtime
|
|
142
|
+
before the code rolls out; see the [migrations skill](../metatables-migrations/SKILL.md)
|
|
143
|
+
and `docs/client/deploy-application-migrations.md`. Add the migration Job if the
|
|
144
|
+
workflow lacks one.
|
|
139
145
|
|
|
140
146
|
When returning to the environment is part of the requested workflow:
|
|
141
147
|
|
|
@@ -155,9 +161,11 @@ When returning to the environment is part of the requested workflow:
|
|
|
155
161
|
report the actual mode instead of claiming the switch succeeded.
|
|
156
162
|
3. Restart application/test client processes and resolve catalog bindings again.
|
|
157
163
|
Do not reuse local table UIDs or already-bound updater instances against the
|
|
158
|
-
environment database.
|
|
159
|
-
|
|
160
|
-
|
|
164
|
+
environment database. Do not apply application revisions from this session;
|
|
165
|
+
the deployment's migration Job does. `migrations current` can confirm the
|
|
166
|
+
deployed revision. Perform other environment writes only within the user's
|
|
167
|
+
requested scope; passing local tests is not itself a request to seed fixtures
|
|
168
|
+
or run backfills.
|
|
161
169
|
|
|
162
170
|
If the user instead wants to connect to a separately deployed API, follow the
|
|
163
171
|
installation guide's hosted endpoint selection. Restore prior connection settings
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: metatables-migrations
|
|
3
|
-
description: "Create and evolve managed application tables through Alembic migration providers with the installed MetaTables Python client. Covers provider scope and placement, scaffolding, revision authoring,
|
|
3
|
+
description: "Create and evolve managed application tables through Alembic migration providers with the installed MetaTables Python client. Covers provider scope and placement, scaffolding, revision authoring, local execution, the deployment-workflow migration Job for hosted runtimes, and reservation or finalization failures. Excludes API catalog migrations, client-library implementation, API/server changes and repository tooling."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# MetaTables client application migrations
|
|
@@ -39,6 +39,34 @@ hosted API's deployment applies them before it rolls out, and Local mode runs th
|
|
|
39
39
|
from Settings; see `docs/operations/catalog-migrations.md`. They are not
|
|
40
40
|
application-provider revisions.
|
|
41
41
|
|
|
42
|
+
## Recommended workflow
|
|
43
|
+
|
|
44
|
+
Follow this sequence, which mirrors how the MetaTables API deploys its own system
|
|
45
|
+
migrations. Read `docs/client/deploy-application-migrations.md`.
|
|
46
|
+
|
|
47
|
+
1. **Develop locally.** Author the revision and apply it to verified local SQLite
|
|
48
|
+
with the [local development skill](../metatables-local-development/SKILL.md).
|
|
49
|
+
2. **Commit the revision with the code that needs it.**
|
|
50
|
+
3. **Deploy.** The application's `.mainsequence/workflows/` file declares a
|
|
51
|
+
migration Job that calls `upgrade_application` for each provider, in
|
|
52
|
+
dependency order, from the candidate image. Every deployed resource that reads
|
|
53
|
+
or writes the tables (FastAPI, `harness_agent` and others) has a deploy step
|
|
54
|
+
with `needs: [migrate]`. A failed migration blocks the rollout.
|
|
55
|
+
|
|
56
|
+
Rules:
|
|
57
|
+
|
|
58
|
+
- Hosted runtimes are migrated only by that Job. Do not run `migrations upgrade`
|
|
59
|
+
or `downgrade` against a hosted API from a developer or agent session. If the
|
|
60
|
+
user explicitly requests it, do it once and recommend adding the Job.
|
|
61
|
+
- When the application has no migration Job yet, add one alongside its first
|
|
62
|
+
managed table or its MetaTables upgrade.
|
|
63
|
+
- Do not migrate at application startup: several pods would race, and a failure
|
|
64
|
+
would not stop the rollout.
|
|
65
|
+
- Keep each revision usable by the release currently deployed, which keeps serving
|
|
66
|
+
during and after a failed rollout. Add first; drop or rename in a later release.
|
|
67
|
+
- Redeploying an older image does not roll back the schema. Downgrade is never a
|
|
68
|
+
deployment step.
|
|
69
|
+
|
|
42
70
|
## Source and runtime context
|
|
43
71
|
|
|
44
72
|
- The API selects its active runtime DataSource. Upgrade and downgrade use that
|
|
@@ -113,7 +141,8 @@ the wrong revisions.
|
|
|
113
141
|
|
|
114
142
|
## Execute with the environment connection
|
|
115
143
|
|
|
116
|
-
|
|
144
|
+
During development, after verifying the local runtime, use the application's
|
|
145
|
+
provider reference:
|
|
117
146
|
|
|
118
147
|
```bash
|
|
119
148
|
metatables --local migrations upgrade --provider ledger.migrations:migration
|
|
@@ -132,9 +161,9 @@ API Writer checks govern connection admission and provider catalog operations.
|
|
|
132
161
|
The client reserves catalog entries, runs Alembic, closes its physical connection,
|
|
133
162
|
and finalizes contracts through the API. Treat connection material as private.
|
|
134
163
|
|
|
135
|
-
|
|
136
|
-
`metatables.
|
|
137
|
-
|
|
164
|
+
Python code can call `metatables.upgrade_application("ledger.migrations:migration")`;
|
|
165
|
+
`src/metatables/examples/scripts/setup_metatables.py` shows the pattern, and the
|
|
166
|
+
deployment migration Job uses the same call. Remove the retired
|
|
138
167
|
`application_migration_providers` setting and use Python references instead of aliases.
|
|
139
168
|
Application migration histories remain separate from API system migrations.
|
|
140
169
|
|
|
@@ -181,5 +210,6 @@ Read `docs/operations/recovery-and-observability.md`.
|
|
|
181
210
|
## Validation
|
|
182
211
|
|
|
183
212
|
Verify provider scope and placement, revision content, the selected environment
|
|
184
|
-
connection, repeat execution, and final active bindings.
|
|
185
|
-
|
|
213
|
+
connection, repeat execution, and final active bindings. Check that the deployment
|
|
214
|
+
workflow runs the migration Job before every resource that uses the tables. Report
|
|
215
|
+
separately what was checked offline and what was exercised against a configured API.
|
|
@@ -96,6 +96,9 @@ Use the [application migrations skill](../metatables-migrations/SKILL.md),
|
|
|
96
96
|
`docs/client/define-and-migrate-tables.md`, and
|
|
97
97
|
`docs/adr/api/0013-application-owned-migrations.md` for that workflow. Ordinary
|
|
98
98
|
SQL continues through the governed API, independently of the migration connection.
|
|
99
|
+
If the application's deployment workflow does not yet run its providers in a
|
|
100
|
+
migration Job before its API and agents roll out, add one as
|
|
101
|
+
`docs/client/deploy-application-migrations.md` describes.
|
|
99
102
|
|
|
100
103
|
## Verify the upgrade
|
|
101
104
|
|
|
@@ -93,6 +93,11 @@ Python setup code can call `metatables.upgrade_application("ledger.migrations:mi
|
|
|
93
93
|
For current and downgrade, use `metatables.migrations.runner.run_migration` with
|
|
94
94
|
`operation="current"` or `operation="downgrade", revision="0001"`.
|
|
95
95
|
|
|
96
|
+
Hosted runtimes are migrated by the application's deployment workflow, not from a
|
|
97
|
+
developer machine: a Job applies the providers from the candidate image before
|
|
98
|
+
the application rolls out. See
|
|
99
|
+
[Migrate in the deployment workflow](deploy-application-migrations.md).
|
|
100
|
+
|
|
96
101
|
The provider is installed only in the application process. Remove the retired
|
|
97
102
|
`application_migration_providers` setting from existing deployment configuration;
|
|
98
103
|
replace old aliases with application Python references. No API provider registration,
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Migrate in the deployment workflow
|
|
2
|
+
|
|
3
|
+
An application's tables must match the code that serves them. Apply application
|
|
4
|
+
migrations to a hosted runtime the same way MetaTables applies its own system
|
|
5
|
+
migrations: a Job in the deployment workflow runs them from the candidate image
|
|
6
|
+
before anything that uses the tables rolls out. See
|
|
7
|
+
[catalog migrations](../operations/catalog-migrations.md) for the API's own
|
|
8
|
+
`migrate-system` Job.
|
|
9
|
+
|
|
10
|
+
## Recommended workflow
|
|
11
|
+
|
|
12
|
+
1. **Develop locally.** Author the revision and apply it to verified local SQLite
|
|
13
|
+
with `metatables --local migrations upgrade`. See
|
|
14
|
+
[Managed tables and migrations](define-and-migrate-tables.md) and
|
|
15
|
+
[Local storage](local-storage.md).
|
|
16
|
+
2. **Commit the revision with the code that needs it.** Applied revisions are
|
|
17
|
+
immutable; every later schema change is a new revision.
|
|
18
|
+
3. **Deploy.** The application's workflow runs its migration Job from the
|
|
19
|
+
candidate image, then deploys the resources that read or write the tables.
|
|
20
|
+
|
|
21
|
+
Hosted runtimes are migrated only by step 3. Do not run `metatables migrations
|
|
22
|
+
upgrade` or `downgrade` against a hosted API from a developer machine or agent
|
|
23
|
+
session. Do not migrate at application startup either: several pods would race,
|
|
24
|
+
and a failure would not stop the rollout.
|
|
25
|
+
|
|
26
|
+
## Declare the migration Job
|
|
27
|
+
|
|
28
|
+
Add one Job script that applies every provider the application owns, in
|
|
29
|
+
dependency order:
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
"""Main Sequence Job: apply the ledger migrations before the application rolls out."""
|
|
33
|
+
|
|
34
|
+
from metatables import upgrade_application
|
|
35
|
+
|
|
36
|
+
for provider in ("ledger.migrations:migration",):
|
|
37
|
+
result = upgrade_application(provider)
|
|
38
|
+
state = "migrated" if result["migrated"] else "already current"
|
|
39
|
+
print(f"{provider}: {result['revision']} ({state}) on {result['data_source_uid']}", flush=True)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Gate the deployments on it in `.mainsequence/workflows/<application>.yaml`:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
api_version: "2.3.0"
|
|
46
|
+
name: ledger
|
|
47
|
+
resources:
|
|
48
|
+
- key: ledger-api
|
|
49
|
+
kind: fastapi
|
|
50
|
+
spec:
|
|
51
|
+
source_path: api/main.py
|
|
52
|
+
automatic_deployment: true
|
|
53
|
+
automatic_redeployment:
|
|
54
|
+
enabled: true
|
|
55
|
+
- key: migrate-ledger
|
|
56
|
+
kind: job
|
|
57
|
+
spec:
|
|
58
|
+
name: Ledger migrations
|
|
59
|
+
execution_path: jobs/migrate_ledger.py
|
|
60
|
+
automatic_redeployment:
|
|
61
|
+
enabled: true
|
|
62
|
+
|
|
63
|
+
execution:
|
|
64
|
+
steps:
|
|
65
|
+
image:
|
|
66
|
+
prepare_image: ledger-api
|
|
67
|
+
migrate:
|
|
68
|
+
run_job: migrate-ledger
|
|
69
|
+
image_from: image
|
|
70
|
+
needs: [image]
|
|
71
|
+
deploy_api:
|
|
72
|
+
deploy: ledger-api
|
|
73
|
+
image_from: image
|
|
74
|
+
needs: [migrate]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Give every other deployed resource that reads or writes the tables, such as a
|
|
78
|
+
`harness_agent`, its own deploy step with `needs: [migrate]`. Validate the file
|
|
79
|
+
against the branch's workflow template before committing it.
|
|
80
|
+
|
|
81
|
+
## What the Job guarantees
|
|
82
|
+
|
|
83
|
+
- It runs on every deployment. A database already at head is left unchanged and
|
|
84
|
+
reports `already current`.
|
|
85
|
+
- An exception fails the Job and blocks the rollout; the previous release keeps
|
|
86
|
+
serving. Fix the revision and deploy again. If DDL committed but finalization
|
|
87
|
+
failed, follow [Evolve and recover](define-and-migrate-tables.md#evolve-and-recover)
|
|
88
|
+
before retrying.
|
|
89
|
+
- The Job finds the Environment's MetaTables API the same way any client does
|
|
90
|
+
([installation and connection](installation-and-connection.md)). That API must
|
|
91
|
+
be deployed with its system migrations applied; otherwise the Job fails. Its
|
|
92
|
+
SDK user needs the same API access a developer needs to run the provider.
|
|
93
|
+
|
|
94
|
+
## Keep each release compatible with the previous one
|
|
95
|
+
|
|
96
|
+
The Job runs before the rollout, so the previous release serves against the new
|
|
97
|
+
schema while the rollout proceeds, and keeps doing so if it fails. Write
|
|
98
|
+
revisions that the deployed release can still use: add tables, and nullable or
|
|
99
|
+
defaulted columns, first; drop or rename in a later release, once no deployed
|
|
100
|
+
code uses the old shape.
|
|
101
|
+
|
|
102
|
+
Redeploying an older image does not roll back the schema. A hosted `downgrade` is
|
|
103
|
+
a separate, explicitly requested operation, never a deployment step.
|
|
@@ -26,6 +26,7 @@ nav:
|
|
|
26
26
|
- First API request: client/quickstart.md
|
|
27
27
|
- Market-data tutorial: client/tutorial.md
|
|
28
28
|
- Managed tables and migrations: client/define-and-migrate-tables.md
|
|
29
|
+
- Migrate in the deployment workflow: client/deploy-application-migrations.md
|
|
29
30
|
- External tables: client/register-existing-tables.md
|
|
30
31
|
- Queries and mutations: client/query-and-mutate.md
|
|
31
32
|
- Updaters: client/build-an-updater.md
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mainsequence-metatable"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.9.dev19"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -44,6 +44,7 @@ docs/assets/diagrams/local-client-experience.svg
|
|
|
44
44
|
docs/client/bounded-transfers.md
|
|
45
45
|
docs/client/build-an-updater.md
|
|
46
46
|
docs/client/define-and-migrate-tables.md
|
|
47
|
+
docs/client/deploy-application-migrations.md
|
|
47
48
|
docs/client/installation-and-connection.md
|
|
48
49
|
docs/client/local-storage.md
|
|
49
50
|
docs/client/query-and-mutate.md
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/api/metatables/main.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/compose.database-tests.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/data-sources.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/api/reference.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/quickstart.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/client/tutorial.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/README.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/tables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/examples/updater.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/reference/cli.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/reference/python.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/docs/security/index.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/__init__.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.8.dev18 → mainsequence_metatable-0.1.9.dev19}/scripts/build_reference.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|