mainsequence-metatable 0.1.9.dev19__tar.gz → 0.1.10.dev21__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.9.dev19/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.10.dev21}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +4 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/data-sources.md +4 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/configuration.md +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/hosted-runtime.md +26 -8
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/local-runtime.md +5 -4
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/runtime_database.py +11 -4
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/local_workspace.py +7 -13
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_runtime_database.py +11 -4
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_runtime_selection.py +2 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_runtime_bootstrap.py +2 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_runtime_transition.py +5 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_local_data_sources.py +7 -5
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/uv.lock +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/LICENSE +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/tests/permissions/test_table_queries.py +0 -0
|
@@ -103,8 +103,10 @@ hosted runtime database is now declared by the deployment:
|
|
|
103
103
|
keeps its own file, so each Environment's deployment reads its own file and
|
|
104
104
|
Secret.
|
|
105
105
|
- **Secret.** The database administrator creates it in each Environment, for
|
|
106
|
-
example `postgresql://
|
|
107
|
-
|
|
106
|
+
example `postgresql://metatables:password@host:5432/database`. The login is the
|
|
107
|
+
code constant `metatables`, one per database server and shared by every
|
|
108
|
+
Environment's database on it; a URI with another login is refused. Host, port,
|
|
109
|
+
database and password come only from the URI, certificates only from the named
|
|
108
110
|
Secrets. The runtime DataSource's `password_secret_uid` is the URI Secret's UID
|
|
109
111
|
([ADR 0009](0009-shared-credential-store.md)).
|
|
110
112
|
- **Deployment.** On every deployment the `migrate-system` Job reads the
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/data-sources.md
RENAMED
|
@@ -187,8 +187,10 @@ Preparing the database, its login and these privileges is the database
|
|
|
187
187
|
administrator's responsibility. On every deployment, the hosted migration Job checks
|
|
188
188
|
the PostgreSQL requirements before any migration runs: `CREATEROLE`, `CREATE` on the
|
|
189
189
|
database or ownership of the `metatables` schema, and `CREATE` on the default schema.
|
|
190
|
-
A missing one fails the Job with the reason, for example `
|
|
191
|
-
CREATEROLE`; nothing is written and the API does not roll out.
|
|
190
|
+
A missing one fails the Job with the reason, for example `metatables lacks
|
|
191
|
+
CREATEROLE`; nothing is written and the API does not roll out. The hosted login is
|
|
192
|
+
always `metatables`, one per database server; see
|
|
193
|
+
[Set up a hosted runtime database](../operations/hosted-runtime.md#set-up-a-hosted-runtime-database).
|
|
192
194
|
|
|
193
195
|
The database may be shared with other applications. Setup revokes `PUBLIC` access
|
|
194
196
|
only on objects MetaTables owns: its `metatables` schema, the tables it manages and
|
|
@@ -10,7 +10,7 @@ implement a second platform HTTP client or token exchange.
|
|
|
10
10
|
| `runtime_database` in the API's `configuration.yaml` | Hosted API, migration Job, launcher in Hosted mode | Declares the hosted runtime database: engine, the Environment Secret holding its URI, schema and TLS. See [hosted runtime](hosted-runtime.md#declare-the-runtime-database). |
|
|
11
11
|
| `METATABLES_LOCAL_TOKEN` | Local launcher and client | Private ASCII token of at least 40 characters. |
|
|
12
12
|
| `METATABLES_LOCAL_ALLOWED_ORIGINS` | Local API | Comma-separated exact loopback HTTP(S) origins with explicit ports; empty by default. |
|
|
13
|
-
| `METATABLES_LOCAL_STORAGE_DIR` | Local API |
|
|
13
|
+
| `METATABLES_LOCAL_STORAGE_DIR` | Local API | Directory of the laptop's single local runtime SQLite file, shared by every checkout and branch; defaults to `~/.local/share/metatables`. |
|
|
14
14
|
|
|
15
15
|
Client discovery uses the name derived from the API automatic-deployment file
|
|
16
16
|
and the caller's resolved Organization Environment. Identical names in other
|
|
@@ -62,7 +62,8 @@ runtime_database:
|
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
The Secret named by `uri_secret` holds a URI such as
|
|
65
|
-
`postgresql://
|
|
65
|
+
`postgresql://metatables:password@host:5432/database`. The login is always
|
|
66
|
+
`metatables`; the Job and the API refuse any other. Use `postgresql://` or
|
|
66
67
|
`postgres://` for `postgresql` and `timescale_db`, `mysql://` for MySQL and
|
|
67
68
|
`mssql://` for SQL Server, and percent-encode special characters in the password.
|
|
68
69
|
Host, port, database, login and password come only from the URI. It takes no
|
|
@@ -75,16 +76,33 @@ rejects them and maps `tls.mode` to its driver: `disable` turns encryption off,
|
|
|
75
76
|
|
|
76
77
|
## Set up a hosted runtime database
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
Every Environment's runtime database is opened by the same login, `metatables`.
|
|
80
|
+
Database roles are server-wide, so each database server has one `metatables`
|
|
81
|
+
login, shared by every Environment's database on it. Its role names are the
|
|
82
|
+
same everywhere: the login and `mt_owner`, which setup creates. The database,
|
|
83
|
+
the login and its privileges are the database administrator's responsibility.
|
|
84
|
+
[DataSource database privileges](../api/data-sources.md#database-privileges-and-sql-behavior)
|
|
80
85
|
lists what MetaTables requires.
|
|
81
86
|
|
|
82
|
-
1.
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
1. Once per database server, create the login. On PostgreSQL and TimescaleDB:
|
|
88
|
+
|
|
89
|
+
```sql
|
|
90
|
+
CREATE ROLE metatables LOGIN CREATEROLE PASSWORD '...';
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
2. For each Environment's database, let the login create the `metatables` schema:
|
|
94
|
+
|
|
95
|
+
```sql
|
|
96
|
+
GRANT CREATE ON DATABASE production TO metatables;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
It also needs `CREATE` on the default schema.
|
|
100
|
+
3. Create the Environment Secret named by `uri_secret` in that Environment, holding
|
|
101
|
+
`postgresql://metatables:password@host:5432/<database>`.
|
|
102
|
+
4. Set `runtime_database` in the API's `configuration.yaml`: engine, Secret name,
|
|
85
103
|
schema and TLS.
|
|
86
|
-
|
|
87
|
-
|
|
104
|
+
5. Deploy the API. The migration Job initializes the database before the API rolls out.
|
|
105
|
+
6. Open **Settings** and check the declaration, the resolved connection, the
|
|
88
106
|
`ready` status and the applied migration revisions.
|
|
89
107
|
|
|
90
108
|
## Deployment gate
|
|
@@ -99,12 +99,13 @@ Shared hosted deployments disable local mode. Switching affects the whole API in
|
|
|
99
99
|
The default file is:
|
|
100
100
|
|
|
101
101
|
```text
|
|
102
|
-
~/.local/share/metatables
|
|
102
|
+
~/.local/share/metatables/metatables.sqlite
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
The local runtime is one per laptop: every checkout, repository and branch uses the
|
|
106
|
+
same file. `METATABLES_LOCAL_STORAGE_DIR` changes its directory. Settings can
|
|
107
|
+
configure another absolute SQLite file. The local DataSource UID derives only from
|
|
108
|
+
the file location. The selected file is
|
|
108
109
|
stored under the single `local` entry in `.local/runtime-data-sources.json`. Branch
|
|
109
110
|
changes and restarts reuse it, its credentials and its DataSource UID. Git context
|
|
110
111
|
still describes the running code; changing that context requires restarting the API.
|
|
@@ -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.10.dev21"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -15,12 +15,16 @@ from metatables.api.app.configuration import DEPLOYMENT_CONFIGURATION, Deploymen
|
|
|
15
15
|
from metatables.api.backend.integrations.catalog_data_sources import parse_configuration
|
|
16
16
|
from metatables.api.backend.integrations.credential_store import CredentialStoreError
|
|
17
17
|
|
|
18
|
+
# Every Environment's runtime database is opened by this one login. Database
|
|
19
|
+
# roles are server-wide, so one `metatables` login per database server serves
|
|
20
|
+
# every Environment's database on it; no Environment chooses its own.
|
|
21
|
+
RUNTIME_LOGIN = "metatables"
|
|
18
22
|
URI_SCHEMES = {"postgresql": {"postgresql", "postgres"}, "timescale_db": {"postgresql", "postgres"},
|
|
19
23
|
"mysql": {"mysql"}, "mssql": {"mssql"}}
|
|
20
|
-
URI_EXAMPLES = {"postgresql": "postgresql://
|
|
21
|
-
"timescale_db": "postgresql://
|
|
22
|
-
"mysql": "mysql://
|
|
23
|
-
"mssql": "mssql://
|
|
24
|
+
URI_EXAMPLES = {"postgresql": f"postgresql://{RUNTIME_LOGIN}:password@host:5432/database",
|
|
25
|
+
"timescale_db": f"postgresql://{RUNTIME_LOGIN}:password@host:5432/database",
|
|
26
|
+
"mysql": f"mysql://{RUNTIME_LOGIN}:password@host:3306/database",
|
|
27
|
+
"mssql": f"mssql://{RUNTIME_LOGIN}:password@host:1433/database"}
|
|
24
28
|
DEPLOYMENT_MANAGED = ("The deployment manages the hosted runtime database. Change runtime_database in the API's "
|
|
25
29
|
"configuration.yaml or its Environment Secret, then deploy the API.")
|
|
26
30
|
|
|
@@ -96,6 +100,9 @@ def declared_database(config, store):
|
|
|
96
100
|
raise RuntimeDatabaseError("incompatible", f"The Environment Secret {declared.uri_secret} must hold a URI "
|
|
97
101
|
f"such as {URI_EXAMPLES[declared.engine]}, with no query options; TLS and the "
|
|
98
102
|
"schema are set in configuration.yaml.")
|
|
103
|
+
if url.username != RUNTIME_LOGIN:
|
|
104
|
+
raise RuntimeDatabaseError("incompatible", f"The Environment Secret {declared.uri_secret} must log in as "
|
|
105
|
+
f"{RUNTIME_LOGIN}, the login every Environment's runtime database uses.")
|
|
99
106
|
values = dict(host=url.host, database_name=url.database, database_user=url.username,
|
|
100
107
|
password_secret_uid=str(uri_uid))
|
|
101
108
|
if url.port is not None:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""One API-owned local runtime per
|
|
1
|
+
"""One API-owned local runtime per laptop, shared by every checkout and branch."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -157,21 +157,15 @@ def select_local_workspace(
|
|
|
157
157
|
raise RuntimeError(
|
|
158
158
|
"LOCAL_DATA_SOURCES_FILE is retired; configure API-owned SQLite storage instead."
|
|
159
159
|
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
str(source.repository_root.resolve()),
|
|
163
|
-
source.canonical_repository_identity,
|
|
164
|
-
],
|
|
165
|
-
separators=(",", ":"),
|
|
166
|
-
)
|
|
167
|
-
uid = uuid5(NAMESPACE_URL, "metatables:workspace:" + identity)
|
|
160
|
+
if values.get("METATABLES_CATALOG_DATABASE_URL") or values.get("METATABLES_LOCAL_TABLES_FILE"):
|
|
161
|
+
raise RuntimeError("Separate catalog/table overrides are retired. Configure the runtime DataSource in Settings.")
|
|
168
162
|
root = (
|
|
169
163
|
Path(values.get("METATABLES_LOCAL_STORAGE_DIR") or Path.home() / ".local/share/metatables")
|
|
170
164
|
.expanduser()
|
|
171
165
|
.resolve()
|
|
172
166
|
)
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
167
|
+
# The local runtime belongs to the laptop, not to a checkout: every project
|
|
168
|
+
# shares this file, and its identity follows only the file location.
|
|
169
|
+
path = root / "metatables.sqlite"
|
|
170
|
+
uid = uuid5(NAMESPACE_URL, "metatables:local-runtime:" + str(path))
|
|
177
171
|
return LocalWorkspace(uid, source, path)
|
|
@@ -42,7 +42,7 @@ BASE = SimpleNamespace(resolve=lambda uid, purpose: f"base:{purpose}", create=la
|
|
|
42
42
|
def test_uri_supplies_the_connection_and_configuration_the_rest(declare):
|
|
43
43
|
config, secrets = declare(POSTGRESQL + " default_schema: tables\n tls:\n mode: verify-full\n"
|
|
44
44
|
" ca_secret: DATABASE_CA\n",
|
|
45
|
-
uri="postgres://
|
|
45
|
+
uri="postgres://metatables:p%40ss%3Aword@db.example.invalid/development",
|
|
46
46
|
DATABASE_CA="-----BEGIN CERTIFICATE-----")
|
|
47
47
|
declared, candidate, credentials = declared_database(config, BASE)
|
|
48
48
|
uri_uid = secrets["METATABLES_RUNTIME_DATABASE"][0]
|
|
@@ -52,7 +52,7 @@ def test_uri_supplies_the_connection_and_configuration_the_rest(declare):
|
|
|
52
52
|
"host", "port", "database_name", "database_user", "default_schema", "ssl_mode",
|
|
53
53
|
"password_secret_uid", "tls_ca_secret_uid")} == {
|
|
54
54
|
"host": "db.example.invalid", "port": 5432, "database_name": "development",
|
|
55
|
-
"database_user": "
|
|
55
|
+
"database_user": "metatables", "default_schema": "tables", "ssl_mode": "verify-full",
|
|
56
56
|
"password_secret_uid": str(uri_uid), "tls_ca_secret_uid": str(secrets["DATABASE_CA"][0])}
|
|
57
57
|
assert "p@ss" not in repr(candidate)
|
|
58
58
|
# The URI Secret supplies only the login password; other references use the base store.
|
|
@@ -65,8 +65,8 @@ def test_uri_supplies_the_connection_and_configuration_the_rest(declare):
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
@pytest.mark.parametrize(("engine", "uri", "expected"), [
|
|
68
|
-
("mysql", "mysql://
|
|
69
|
-
("mssql", "mssql://
|
|
68
|
+
("mysql", "mysql://metatables:pw@mysql.example.invalid/tables", {"port": 3306, "default_schema": "tables", "ssl_mode": "require"}),
|
|
69
|
+
("mssql", "mssql://metatables:pw@sql.example.invalid:1444/tables", {"port": 1444, "encrypt": True, "trust_server_certificate": True}),
|
|
70
70
|
])
|
|
71
71
|
def test_engines_take_their_own_defaults(declare, engine, uri, expected):
|
|
72
72
|
config, _ = declare(f"runtime_database:\n engine: {engine}\n uri_secret: METATABLES_RUNTIME_DATABASE\n", uri=uri)
|
|
@@ -84,6 +84,13 @@ def test_invalid_uri_is_explained_without_its_value(declare, uri):
|
|
|
84
84
|
assert "hunter2" not in str(raised.value)
|
|
85
85
|
|
|
86
86
|
|
|
87
|
+
def test_every_environment_logs_in_as_the_shared_runtime_login(declare):
|
|
88
|
+
config, _ = declare(POSTGRESQL, uri="postgresql://metatables_dev:hunter2@db/production")
|
|
89
|
+
with pytest.raises(RuntimeDatabaseError, match="must log in as metatables") as raised:
|
|
90
|
+
declared_database(config, BASE)
|
|
91
|
+
assert raised.value.status == "incompatible" and "hunter2" not in str(raised.value)
|
|
92
|
+
|
|
93
|
+
|
|
87
94
|
def test_missing_declaration_and_missing_secret_name_the_fix(declare):
|
|
88
95
|
config, _ = declare("")
|
|
89
96
|
with pytest.raises(RuntimeDatabaseError, match="declares no runtime database") as raised:
|
|
@@ -135,7 +135,7 @@ def test_hosted_mode_uses_the_deployment_declared_database(tmp_path, monkeypatch
|
|
|
135
135
|
reads = []
|
|
136
136
|
def read_secret(name):
|
|
137
137
|
reads.append(name)
|
|
138
|
-
return secret_uid, "postgresql://
|
|
138
|
+
return secret_uid, "postgresql://metatables:s3cr%40t@tunnel.example.invalid:20989/development"
|
|
139
139
|
monkeypatch.setattr("metatables.api.app.runtime_database.read_secret", read_secret)
|
|
140
140
|
def inspect_without_remote_connection(self):
|
|
141
141
|
self.status, self.error, self.current = "migration_required", None, []
|
|
@@ -157,7 +157,7 @@ def test_hosted_mode_uses_the_deployment_declared_database(tmp_path, monkeypatch
|
|
|
157
157
|
assert {key: bootstrap["candidate"]["configuration"][key] for key in (
|
|
158
158
|
"host", "port", "database_name", "database_user", "password_secret_uid", "ssl_mode", "default_schema")} == {
|
|
159
159
|
"host": "tunnel.example.invalid", "port": 20989, "database_name": "development",
|
|
160
|
-
"database_user": "
|
|
160
|
+
"database_user": "metatables", "password_secret_uid": str(secret_uid), "ssl_mode": "require",
|
|
161
161
|
"default_schema": "public"}
|
|
162
162
|
credentials = app.state.runtime.credential_store
|
|
163
163
|
assert credentials.resolve(secret_uid, "database_password") == "s3cr@t"
|
|
@@ -75,6 +75,8 @@ def test_runtime_bootstrap_is_explicit_and_uses_one_source(
|
|
|
75
75
|
uri_uid = uuid4()
|
|
76
76
|
monkeypatch.setattr(declared, "read_secret",
|
|
77
77
|
lambda name: (uri_uid, uri.render_as_string(hide_password=False)))
|
|
78
|
+
# The disposable server's login stands in for the shared runtime login.
|
|
79
|
+
monkeypatch.setattr(declared, "RUNTIME_LOGIN", engine.url.username)
|
|
78
80
|
configuration.write_text(
|
|
79
81
|
"local_mode_available: false\nruntime_database:\n"
|
|
80
82
|
f" engine: {engine_kind}\n uri_secret: METATABLES_RUNTIME_DATABASE\n"
|
|
@@ -11,6 +11,7 @@ from uuid import uuid4
|
|
|
11
11
|
|
|
12
12
|
import httpx
|
|
13
13
|
import pytest
|
|
14
|
+
from sqlalchemy.engine import make_url
|
|
14
15
|
|
|
15
16
|
from metatables.api.app.development import DevelopmentSupervisor
|
|
16
17
|
|
|
@@ -34,6 +35,9 @@ Secret.get=classmethod(lambda cls, name=None, **kwargs: SimpleNamespace(uid=os.e
|
|
|
34
35
|
value=SecretStr(os.environ['FIXTURE_RUNTIME_DATABASE_URI'])))
|
|
35
36
|
from metatables.api.app import runtime_database
|
|
36
37
|
runtime_database.DEPLOYMENT_CONFIGURATION=Path(os.environ['FIXTURE_DEPLOYMENT_CONFIGURATION'])
|
|
38
|
+
# The disposable server's login stands in for the shared runtime login.
|
|
39
|
+
from sqlalchemy.engine import make_url
|
|
40
|
+
runtime_database.RUNTIME_LOGIN=make_url(os.environ['FIXTURE_RUNTIME_DATABASE_URI']).username
|
|
37
41
|
User.get_authenticated_user_details=classmethod(lambda cls: SimpleNamespace(
|
|
38
42
|
uid=os.environ['FIXTURE_USER_UID'], is_active=True, is_organization_admin=True, active_team_uids=[]))
|
|
39
43
|
runpy.run_module('metatables.api.app.development', run_name='__main__')
|
|
@@ -79,6 +83,7 @@ def test_switch_local_hosted_and_back_restarts_worker_and_preserves_stores(tmp_p
|
|
|
79
83
|
# The deployment gate below runs in this process against the same declaration.
|
|
80
84
|
monkeypatch.setattr("metatables.api.app.configuration.DEPLOYMENT_CONFIGURATION", deployed)
|
|
81
85
|
monkeypatch.setattr("metatables.api.app.runtime_database.read_secret", lambda name: (secret_uid, catalog))
|
|
86
|
+
monkeypatch.setattr("metatables.api.app.runtime_database.RUNTIME_LOGIN", make_url(catalog).username)
|
|
82
87
|
real_popen = subprocess.Popen
|
|
83
88
|
workers = []
|
|
84
89
|
log = (tmp_path / "workers.log").open("wb")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""One local runtime survives branch changes without
|
|
1
|
+
"""One local runtime per laptop survives checkout and branch changes without platform sources."""
|
|
2
2
|
from dataclasses import replace
|
|
3
3
|
from uuid import uuid4
|
|
4
4
|
|
|
@@ -35,12 +35,14 @@ def test_workspace_survives_branch_and_commit_changes(scope):
|
|
|
35
35
|
assert other.data_source.display_name == 'Local MetaTables'
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
def
|
|
38
|
+
def test_checkouts_share_the_laptop_runtime(scope, tmp_path):
|
|
39
39
|
source, values = scope
|
|
40
40
|
first = select_local_workspace(source=source, values=values)
|
|
41
|
-
other = select_local_workspace(source=replace(source, repository_root=
|
|
42
|
-
|
|
43
|
-
assert other.
|
|
41
|
+
other = select_local_workspace(source=replace(source, repository_root=tmp_path / 'another',
|
|
42
|
+
canonical_repository_identity='https://example.test/org/other'), values=values)
|
|
43
|
+
assert other.uid == first.uid
|
|
44
|
+
assert other.data_source.uid == first.data_source.uid
|
|
45
|
+
assert other.catalog_path == first.catalog_path == tmp_path / 'stores' / 'metatables.sqlite'
|
|
44
46
|
|
|
45
47
|
|
|
46
48
|
@pytest.mark.parametrize('setting,value', [
|
|
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.9.dev19 → mainsequence_metatable-0.1.10.dev21}/api/metatables/main.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.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/adr/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/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
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/client/quickstart.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/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.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/README.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/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.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev21}/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
|