mainsequence-metatable 0.1.9.dev19__tar.gz → 0.1.10.dev20__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.dev20}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +4 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/data-sources.md +4 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/hosted-runtime.md +26 -8
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/runtime_database.py +11 -4
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_runtime_database.py +11 -4
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_runtime_selection.py +2 -2
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_runtime_bootstrap.py +2 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_runtime_transition.py +5 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/uv.lock +1 -1
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/LICENSE +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/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.dev20}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/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.dev20}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/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
|
|
@@ -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
|
|
@@ -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.dev20"
|
|
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:
|
|
@@ -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")
|
|
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.dev20}/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.dev20}/docs/adr/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/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.dev20}/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.dev20}/docs/examples/README.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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.dev20}/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.9.dev19 → mainsequence_metatable-0.1.10.dev20}/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
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/reference/cli.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/reference/python.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/docs/security/index.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/__init__.py
RENAMED
|
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.dev20}/scripts/check_docs.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/check_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.9.dev19 → mainsequence_metatable-0.1.10.dev20}/scripts/test_databases.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|