mainsequence-metatable 0.1.49.dev78__tar.gz → 0.1.50.dev79__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.49.dev78/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.50.dev79}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0002-application-administration-and-table-ownership.md +5 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/local-runtime.md +2 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/security/index.md +4 -2
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/security/permissions.md +8 -3
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/auth/boundary.py +8 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/credential_admin.py +1 -2
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_local_mode.py +3 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_platform_fact_cache.py +9 -3
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_runtime_bootstrap.py +12 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_application_owned_migrations.py +2 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_run_logs.py +3 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_sqlite_runtime.py +1 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_credential_store.py +8 -5
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/uv.lock +1 -1
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/discover-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/LICENSE +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/agent/0019-metatables-analyst-agent.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0018-table-search.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0023-daily-security-check.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/api/0024-namespace-and-table-access-roles.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/assets/diagrams/namespace-access.svg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/analysis.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/analyst/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/auth/team_membership.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/connection_count.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/mcp.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/access_map.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/caller.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_search.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/batch_inspection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/connection_pool.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/access_roles.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/security_check_job.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0013_security_check.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0014_access_roles.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/0015_namespace_creator.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/bootstrap_timing.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/operations/security_check.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/documents.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/embeddings.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/index.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/ranking.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/text.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/backend/search/worker.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/api/request_timing.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/analyst/test_agent_surface.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/analyst/test_api_search.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/analyst/test_mcp.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/analyst/test_tools.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_caller_endpoint.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_hosted_agent.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/auth/test_team_membership.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/catalog/test_schema_validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_runtime_contract_compat.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_managed_finalize_unchanged.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_migration_metadata_and_downgrade.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_search_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_search_scale.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_batch_introspection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_connection_reuse.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_request_timing.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_serving_policy.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_bootstrap_lock.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_access_map.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_deployment_security.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_incremental_security.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_security_check.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/tests/permissions/test_workload_principals.py +0 -0
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# ADR 0002: Application administration and table ownership
|
|
2
2
|
|
|
3
|
+
> Amendment (2026-10-20): In Local mode the operator, the SDK identity running the local
|
|
4
|
+
> API, is the Organization admin of that runtime whatever their platform flag. A local
|
|
5
|
+
> SQLite runtime, its catalog and its credentials belong to that one person, so admin
|
|
6
|
+
> admission below applies to hosted runtimes only.
|
|
7
|
+
|
|
3
8
|
> Amendment (2026-10-19): [ADR 0024](0024-namespace-and-table-access-roles.md) replaces Reader/Writer
|
|
4
9
|
> with roles (`metadata_viewer`, `data_viewer`, `data_writer`, `editor`, `owner`) checked as actions.
|
|
5
10
|
> Any person creates a namespace and owns it, namespace owners grant on it instead of
|
|
@@ -203,7 +203,8 @@ metatables credentials remove-unused CREDENTIAL_UUID --database /absolute/path/m
|
|
|
203
203
|
```
|
|
204
204
|
|
|
205
205
|
Pass `--configuration /absolute/path/configuration.yaml` for a different deployment
|
|
206
|
-
configuration. These commands require
|
|
206
|
+
configuration. These commands require a signed-in SDK session, not the platform admin
|
|
207
|
+
flag: the local catalog and its keys belong to the operator. Import is
|
|
207
208
|
only for existing local references from the previous SDK-backed implementation;
|
|
208
209
|
it reads the supported SDK in its valid hosted context, preserves UUIDs, validates
|
|
209
210
|
affected enabled connections, and commits atomically. It never deletes SDK Secrets.
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/security/index.md
RENAMED
|
@@ -9,14 +9,16 @@ creates its application's namespace on its first run, and the people who manage
|
|
|
9
9
|
Job manage that namespace's access. Nobody needs to become an Organization admin to
|
|
10
10
|
deploy an application or maintain its tables.
|
|
11
11
|
|
|
12
|
-
The API enforces this model in both local and hosted runtimes.
|
|
12
|
+
The API enforces this model in both local and hosted runtimes. In Local mode the person
|
|
13
|
+
running the API administers their own SQLite runtime and holds every action, whatever
|
|
14
|
+
their platform admin flag. The Admin UI and
|
|
13
15
|
Python client use the same access endpoints. [ADR 0024](../adr/api/0024-namespace-and-table-access-roles.md)
|
|
14
16
|
records the role model; [ADR 0002](../adr/api/0002-application-administration-and-table-ownership.md)
|
|
15
17
|
records the separation from application administration.
|
|
16
18
|
|
|
17
19
|
**Applications run Alembic through the client using their environment database login.**
|
|
18
20
|
Direct database connections and general client-side Alembic execution remain blocked.
|
|
19
|
-
|
|
21
|
+
The local operator initializes and upgrades MetaTables system tables in Local Settings; a hosted
|
|
20
22
|
deployment's migration Job does so for its declared runtime database.
|
|
21
23
|
|
|
22
24
|
## Who owns each decision
|
|
@@ -28,9 +28,14 @@ never grant or revoke roles. A workload creates a namespace only by registering
|
|
|
28
28
|
into a free name, and then holds `editor` on it. They use the roles granted to them or
|
|
29
29
|
to their Teams.
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
In Local mode the operator, the SDK identity running the local API, is the admin of
|
|
32
|
+
that runtime for every row above, whatever their platform admin flag: the SQLite file,
|
|
33
|
+
its catalog and its local credentials are theirs. This includes setting up the
|
|
34
|
+
runtime and the `metatables credentials` commands.
|
|
35
|
+
|
|
36
|
+
Hosted runtime setup belongs to the deployment's migration Job; Settings and the API
|
|
37
|
+
check the platform admin fact. Configuring a pending database does not make the first
|
|
38
|
+
caller an admin.
|
|
34
39
|
|
|
35
40
|
## Namespace actions and roles
|
|
36
41
|
|
|
@@ -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.50.dev79"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -49,6 +49,12 @@ def workload_checker(uid: str) -> Callable[[], bool]:
|
|
|
49
49
|
return check
|
|
50
50
|
|
|
51
51
|
|
|
52
|
+
def local_operator_is_admin(state: RuntimeState) -> bool:
|
|
53
|
+
"""Local mode serves only its operator's own SQLite runtime, so they administer it
|
|
54
|
+
whatever their platform admin flag. Developer mode keeps the platform's flag."""
|
|
55
|
+
return state.config.local_mode
|
|
56
|
+
|
|
57
|
+
|
|
52
58
|
def admit_request(request: Request) -> AdmittedCaller:
|
|
53
59
|
# The first dependency of nearly every route: the request's first step on a route thread.
|
|
54
60
|
thread_started()
|
|
@@ -65,7 +71,8 @@ def admit_request(request: Request) -> AdmittedCaller:
|
|
|
65
71
|
state.identity.user_uid, lambda: sdk_actor_facts(state.identity.user_uid),
|
|
66
72
|
)
|
|
67
73
|
return AdmittedCaller(
|
|
68
|
-
user_uid=state.identity.user_uid, active_team_uids=teams,
|
|
74
|
+
user_uid=state.identity.user_uid, active_team_uids=teams,
|
|
75
|
+
is_admin=local_operator_is_admin(state) or admin,
|
|
69
76
|
environment_uid=UUID(environment_uid) if environment_uid else None,
|
|
70
77
|
)
|
|
71
78
|
caller = logged_user()
|
|
@@ -27,9 +27,8 @@ from metatables.api.backend.persistence.models import DataSource
|
|
|
27
27
|
def local_store(database: Path, configuration: Path):
|
|
28
28
|
deployment = DeploymentConfiguration.load(configuration)
|
|
29
29
|
deployment.require_development()
|
|
30
|
+
# The local catalog and its key directory belong to the operator; no platform admin flag.
|
|
30
31
|
identity = resolve_sdk_user_identity()
|
|
31
|
-
if not identity.actor_facts or not identity.actor_facts[1]:
|
|
32
|
-
raise RuntimeError("Credential administration requires platform admin access.")
|
|
33
32
|
if not database.is_absolute() or not database.is_file():
|
|
34
33
|
raise RuntimeError("Choose the existing local catalog's absolute database path.")
|
|
35
34
|
from metatables.api.backend.backends.registry import engine_descriptor
|
|
@@ -167,7 +167,9 @@ def test_shared_api_accepts_clients_from_any_checkout_and_api_commits(monkeypatc
|
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
def as_person(monkeypatch, client=None):
|
|
170
|
-
"""Continue as an ordinary person
|
|
170
|
+
"""Continue as an ordinary person, as developer-mode admission would admit them:
|
|
171
|
+
admins hold every action (ADR 0024) and the local operator is always one."""
|
|
172
|
+
monkeypatch.setattr("metatables.api.app.auth.boundary.local_operator_is_admin", lambda state: False)
|
|
171
173
|
monkeypatch.setattr("metatables.api.app.auth.boundary.sdk_actor_facts", lambda user_uid: (frozenset(), False))
|
|
172
174
|
if client is not None:
|
|
173
175
|
client.app.state.runtime.actor_facts_cache._values.clear()
|
|
@@ -23,7 +23,11 @@ def hosted_request():
|
|
|
23
23
|
|
|
24
24
|
@pytest.fixture
|
|
25
25
|
def caller(monkeypatch):
|
|
26
|
-
"""The developer's facts; hosted callers' facts arrive with each verified assertion.
|
|
26
|
+
"""The developer's facts; hosted callers' facts arrive with each verified assertion.
|
|
27
|
+
|
|
28
|
+
Developer-mode admission keeps the platform's admin flag; Local mode's operator is
|
|
29
|
+
always admin, so it cannot show the flag's expiry."""
|
|
30
|
+
from mainsequence import code_repository_context
|
|
27
31
|
from mainsequence.client.models_user import User
|
|
28
32
|
|
|
29
33
|
user, team = uuid4(), uuid4()
|
|
@@ -35,7 +39,9 @@ def caller(monkeypatch):
|
|
|
35
39
|
return current
|
|
36
40
|
monkeypatch.setattr(User, "get_authenticated_user_details", classmethod(lookup))
|
|
37
41
|
monkeypatch.setattr(User, "get_logged_user", classmethod(lambda cls: proofs.append(cls)))
|
|
38
|
-
|
|
42
|
+
monkeypatch.setattr(code_repository_context, "get_code_repository_context",
|
|
43
|
+
lambda: SimpleNamespace(organization_environment_uid=None))
|
|
44
|
+
state = RuntimeState(config=RuntimeConfig(local_mode=False, developer_mode=True), identity=LocalIdentity(user),
|
|
39
45
|
actor_facts_cache=PlatformCache(clock=lambda: now[0]))
|
|
40
46
|
req = SimpleNamespace(app=SimpleNamespace(state=SimpleNamespace(runtime=state)),
|
|
41
47
|
state=SimpleNamespace())
|
|
@@ -58,7 +64,7 @@ def test_facts_last_one_hour_without_sliding_expiry(caller):
|
|
|
58
64
|
fresh = boundary.admit_request(f.request)
|
|
59
65
|
assert not fresh.is_admin and fresh.active_team_uids == frozenset()
|
|
60
66
|
assert len(f.calls) == 2
|
|
61
|
-
assert f.proofs == [] #
|
|
67
|
+
assert f.proofs == [] # SDK-session admission never consults request identity.
|
|
62
68
|
|
|
63
69
|
|
|
64
70
|
@pytest.mark.parametrize("failure", ["inactive", "wrong_user", "missing_facts", "unavailable"])
|
|
@@ -706,6 +706,18 @@ def trusted_platform_admin_for_runtime_lifecycle(monkeypatch):
|
|
|
706
706
|
monkeypatch.setattr("metatables.api.app.auth.boundary.sdk_actor_facts", lambda user_uid: (frozenset(), True))
|
|
707
707
|
|
|
708
708
|
|
|
709
|
+
def test_local_operator_administers_the_runtime_without_platform_admin(bootstrap_client, monkeypatch):
|
|
710
|
+
monkeypatch.setattr("metatables.api.app.auth.boundary.sdk_actor_facts", lambda user_uid: (frozenset(), False))
|
|
711
|
+
client, path, _ = bootstrap_client
|
|
712
|
+
bootstrap = client.get("/runtime-context/").json()["bootstrap"]
|
|
713
|
+
assert bootstrap["can_configure"] is True
|
|
714
|
+
assert bootstrap["candidate"]["configuration"]["path"] == str(path)
|
|
715
|
+
response = client.post("/runtime-bootstrap/migrate/")
|
|
716
|
+
assert response.status_code == 200, response.text
|
|
717
|
+
assert response.json()["active"] is True
|
|
718
|
+
assert client.get("/caller/").json()["is_admin"] is True
|
|
719
|
+
|
|
720
|
+
|
|
709
721
|
def test_the_catalog_pool_holds_serving_concurrency_connections(bootstrap_client):
|
|
710
722
|
client, _, _ = bootstrap_client
|
|
711
723
|
assert client.post("/runtime-bootstrap/migrate/").status_code == 200
|
|
@@ -441,7 +441,7 @@ def test_offline_and_explicit_url_authoring_do_not_require_api(providers, tmp_pa
|
|
|
441
441
|
|
|
442
442
|
|
|
443
443
|
@pytest.mark.parametrize("api_runtime", ["sqlite"], indirect=True)
|
|
444
|
-
def test_connection_checks_provider_identity_and_all_catalog_writers(api_runtime, providers):
|
|
444
|
+
def test_connection_checks_provider_identity_and_all_catalog_writers(api_runtime, providers, monkeypatch):
|
|
445
445
|
import requests
|
|
446
446
|
|
|
447
447
|
from metatables import MetaTable
|
|
@@ -469,6 +469,7 @@ def test_connection_checks_provider_identity_and_all_catalog_writers(api_runtime
|
|
|
469
469
|
principal_uid=runtime.identity.user_uid, role="editor")
|
|
470
470
|
session.commit()
|
|
471
471
|
# As an ordinary person: admins hold every action (ADR 0024).
|
|
472
|
+
monkeypatch.setattr("metatables.api.app.auth.boundary.local_operator_is_admin", lambda state: False)
|
|
472
473
|
runtime.actor_facts_cache.seed(runtime.identity.user_uid, (frozenset(), False), expires_at=float("inf"))
|
|
473
474
|
denied = requests.post(url, headers=headers, json={}, timeout=5)
|
|
474
475
|
assert denied.status_code == 403 and "uri" not in denied.json()
|
|
@@ -168,6 +168,7 @@ def test_runner_capture_history_filter_pagination_restart_and_revocation(log_app
|
|
|
168
168
|
response = restarted.get(url, params={"event": "example.produced"})
|
|
169
169
|
assert len(response.json()["rows"]) == 4
|
|
170
170
|
# As an ordinary person: admins hold every action (ADR 0024).
|
|
171
|
+
monkeypatch.setattr("metatables.api.app.auth.boundary.local_operator_is_admin", lambda state: False)
|
|
171
172
|
f.state.actor_facts_cache.seed(f.state.identity.user_uid, (frozenset(), False), expires_at=float("inf"))
|
|
172
173
|
with f.state.bootstrap.factory() as session:
|
|
173
174
|
GrantRepository(session).revoke_table_grant(
|
|
@@ -177,7 +178,7 @@ def test_runner_capture_history_filter_pagination_restart_and_revocation(log_app
|
|
|
177
178
|
assert f.http.get(url, params={**query, "cursor": page["next_cursor"]}).status_code == 404
|
|
178
179
|
|
|
179
180
|
|
|
180
|
-
def test_invocation_logs_merge_the_readable_attempts_of_one_invocation(log_app):
|
|
181
|
+
def test_invocation_logs_merge_the_readable_attempts_of_one_invocation(log_app, monkeypatch):
|
|
181
182
|
f = log_app
|
|
182
183
|
standalone = start(f)
|
|
183
184
|
emit(f, standalone, "standalone.produced")
|
|
@@ -229,6 +230,7 @@ def test_invocation_logs_merge_the_readable_attempts_of_one_invocation(log_app):
|
|
|
229
230
|
assert rest.status_code == 200 and rest.json()["rows"][0]["run_uid"] == root.uid
|
|
230
231
|
assert f.http.get(url, params={"run_uid": standalone.uid}).status_code == 422
|
|
231
232
|
# As an ordinary person: admins hold every action (ADR 0024).
|
|
233
|
+
monkeypatch.setattr("metatables.api.app.auth.boundary.local_operator_is_admin", lambda state: False)
|
|
232
234
|
f.state.actor_facts_cache.seed(f.state.identity.user_uid, (frozenset(), False), expires_at=float("inf"))
|
|
233
235
|
with f.state.bootstrap.factory() as session:
|
|
234
236
|
GrantRepository(session).revoke_table_grant(table_uid=upstream_table, principal_kind="user",
|
|
@@ -464,6 +464,7 @@ def test_example_setup_migrates_in_client_and_reuses_the_selected_runtime(api_ru
|
|
|
464
464
|
grant.access_level = 'data_viewer'
|
|
465
465
|
session.commit()
|
|
466
466
|
# As an ordinary person: admins hold every action (ADR 0024).
|
|
467
|
+
monkeypatch.setattr('metatables.api.app.auth.boundary.local_operator_is_admin', lambda state: False)
|
|
467
468
|
runtime.actor_facts_cache.seed(runtime.identity.user_uid, (frozenset(), False), expires_at=float('inf'))
|
|
468
469
|
with pytest.raises(Exception):
|
|
469
470
|
setup_metatables()
|
|
@@ -228,10 +228,13 @@ def test_failed_import_validation_rolls_back_new_credentials(vault, monkeypatch)
|
|
|
228
228
|
assert session.scalar(select(DataSource)).configuration["password_secret_uid"] == str(uid)
|
|
229
229
|
|
|
230
230
|
|
|
231
|
-
def
|
|
231
|
+
def test_credential_cli_opens_the_local_store_without_platform_admin(vault, tmp_path, monkeypatch):
|
|
232
232
|
from metatables.api.app.credential_admin import local_store
|
|
233
|
+
uid = save(vault)
|
|
233
234
|
configuration = tmp_path / "configuration.yaml"
|
|
234
|
-
configuration.write_text("local_mode_available: true\n")
|
|
235
|
-
monkeypatch.setattr("metatables.api.app.credential_admin.resolve_sdk_user_identity",
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
configuration.write_text("local_mode_available: true\nlocal_credentials:\n provider: file\n key_directory: keys\n")
|
|
236
|
+
monkeypatch.setattr("metatables.api.app.credential_admin.resolve_sdk_user_identity",
|
|
237
|
+
lambda: SimpleNamespace(user_uid=vault.user, actor_facts=(frozenset(), False)))
|
|
238
|
+
with local_store(vault.database, configuration) as (store, factory, user):
|
|
239
|
+
assert user == vault.user
|
|
240
|
+
assert store.resolve(uid, "database_password") == " private-password "
|
|
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.49.dev78 → mainsequence_metatable-0.1.50.dev79}/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
|
|
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.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/adr/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/data-sources.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/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.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/README.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.49.dev78 → mainsequence_metatable-0.1.50.dev79}/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
|