mainsequence-metatable 0.1.7.dev9__tar.gz → 0.1.8.dev11__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.
Files changed (524) hide show
  1. mainsequence_metatable-0.1.8.dev11/.mainsequence/workflows/metatables-api.yaml +40 -0
  2. {mainsequence_metatable-0.1.7.dev9/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.8.dev11}/PKG-INFO +1 -1
  3. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +5 -0
  4. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0008-mysql-mssql-table-workflows.md +4 -0
  5. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0013-application-owned-migrations.md +4 -0
  6. mainsequence_metatable-0.1.8.dev11/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +67 -0
  7. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/index.md +1 -0
  8. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/catalog-migrations.md +5 -0
  9. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/hosted-runtime.md +6 -0
  10. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/reference/capabilities.md +1 -0
  11. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/reference/cli.md +1 -0
  12. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/mkdocs.yml +1 -0
  13. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/pyproject.toml +1 -1
  14. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
  15. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/mainsequence_metatable.egg-info/SOURCES.txt +2 -0
  16. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/bootstrap.py +20 -0
  17. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/app.py +34 -0
  18. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/endpoint.py +5 -1
  19. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/capabilities.json +12 -0
  20. mainsequence_metatable-0.1.8.dev11/tests/e2e/test_runtime_upgrade.py +55 -0
  21. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/uv.lock +1 -1
  22. mainsequence_metatable-0.1.7.dev9/.mainsequence/workflows/metatables-api.yaml +0 -10
  23. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  24. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
  25. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
  26. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  27. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  28. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/LICENSE +0 -0
  29. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/MANIFEST.in +0 -0
  30. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/README.md +0 -0
  31. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/alembic.ini +0 -0
  32. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/api/metatables/main.py +0 -0
  33. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/compose.database-tests.yml +0 -0
  34. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  35. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  36. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  37. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  38. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  39. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  40. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  41. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0009-shared-credential-store.md +0 -0
  42. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  43. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  44. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  45. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  46. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/authentication-and-errors.md +0 -0
  47. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/data-sources.md +0 -0
  48. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/openapi.json +0 -0
  49. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/overview.md +0 -0
  50. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/reference.md +0 -0
  51. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/tables-and-migrations.md +0 -0
  52. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/api/time-index-and-updates.md +0 -0
  53. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/assets/branding/metatables.svg +0 -0
  54. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/assets/diagrams/local-client-experience.svg +0 -0
  55. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/bounded-transfers.md +0 -0
  56. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/build-an-updater.md +0 -0
  57. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/define-and-migrate-tables.md +0 -0
  58. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/installation-and-connection.md +0 -0
  59. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/local-storage.md +0 -0
  60. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/query-and-mutate.md +0 -0
  61. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/quickstart.md +0 -0
  62. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/read-existing-time-index-tables.md +0 -0
  63. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/register-existing-tables.md +0 -0
  64. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/tutorial.md +0 -0
  65. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/client/upgrade-legacy-app.md +0 -0
  66. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/architecture.md +0 -0
  67. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/data-sources.md +0 -0
  68. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/identity-and-scope.md +0 -0
  69. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/permissions-namespaces-labels.md +0 -0
  70. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/runs-and-execution-graphs.md +0 -0
  71. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  72. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/concepts/time-index-tables-and-updates.md +0 -0
  73. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/contributing/architecture-and-boundaries.md +0 -0
  74. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/contributing/database-backends.md +0 -0
  75. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/contributing/documentation.md +0 -0
  76. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/contributing/releasing.md +0 -0
  77. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/contributing/testing.md +0 -0
  78. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/README.md +0 -0
  79. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/__init__.py +0 -0
  80. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/bounded_reader.py +0 -0
  81. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/data_sources/README.md +0 -0
  82. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/data_sources/mssql.json +0 -0
  83. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/data_sources/mysql.json +0 -0
  84. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/data_sources/postgresql.json +0 -0
  85. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/data_sources/register.py +0 -0
  86. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/external_table.py +0 -0
  87. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/README.md +0 -0
  88. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/__init__.py +0 -0
  89. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/__main__.py +0 -0
  90. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/migrations/__init__.py +0 -0
  91. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/migrations/env.py +0 -0
  92. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/migrations/script.py.mako +0 -0
  93. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  94. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/local_app/tables.py +0 -0
  95. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/query.py +0 -0
  96. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/quickstart.py +0 -0
  97. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/reader.py +0 -0
  98. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/scripts/__init__.py +0 -0
  99. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/scripts/setup_metatables.py +0 -0
  100. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tables.py +0 -0
  101. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/README.md +0 -0
  102. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/__init__.py +0 -0
  103. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/__main__.py +0 -0
  104. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/data/README.md +0 -0
  105. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  106. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/frames.py +0 -0
  107. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/__init__.py +0 -0
  108. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/env.py +0 -0
  109. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/registry.py +0 -0
  110. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  111. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  112. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  113. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  114. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  115. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/operations.py +0 -0
  116. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/tables.py +0 -0
  117. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/tutorial/updaters.py +0 -0
  118. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/examples/updater.py +0 -0
  119. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/index.md +0 -0
  120. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/configuration.md +0 -0
  121. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/local-runtime.md +0 -0
  122. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/recovery-and-observability.md +0 -0
  123. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/run-history.md +0 -0
  124. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/operations/run-logs.md +0 -0
  125. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/reference/python.md +0 -0
  126. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/security/index.md +0 -0
  127. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/security/ownership-and-sharing.md +0 -0
  128. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/docs/security/permissions.md +0 -0
  129. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/__init__.py +0 -0
  130. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/build_reference.py +0 -0
  131. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_boundaries.py +0 -0
  132. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_client_api_coverage.py +0 -0
  133. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_distribution_sources.py +0 -0
  134. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_docs.py +0 -0
  135. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_examples_debug.py +0 -0
  136. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/check_project.py +0 -0
  137. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/dev_release_version.py +0 -0
  138. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/test_databases.py +0 -0
  139. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/scripts/test_postgresql.py +0 -0
  140. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/setup.cfg +0 -0
  141. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  142. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  143. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
  144. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  145. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/__init__.py +0 -0
  146. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/_admin_source.json +0 -0
  147. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/_build.py +0 -0
  148. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/_skill_bundle.py +0 -0
  149. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/__init__.py +0 -0
  150. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/__init__.py +0 -0
  151. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/auth/__init__.py +0 -0
  152. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/auth/boundary.py +0 -0
  153. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/auth/caller_assertions.py +0 -0
  154. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/auth/local_actor.py +0 -0
  155. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/configuration.py +0 -0
  156. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/credential_admin.py +0 -0
  157. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/development.py +0 -0
  158. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/development_client.py +0 -0
  159. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/main.py +0 -0
  160. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/platform_cache.py +0 -0
  161. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/__init__.py +0 -0
  162. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/column_search.py +0 -0
  163. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/contract_validation.py +0 -0
  164. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/data_sources.py +0 -0
  165. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  166. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/migration_connection.py +0 -0
  167. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/namespaces.py +0 -0
  168. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/run_logs.py +0 -0
  169. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/runtime_context.py +0 -0
  170. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/schema_graph.py +0 -0
  171. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/security.py +0 -0
  172. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_cascade.py +0 -0
  173. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_crud.py +0 -0
  174. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_delete.py +0 -0
  175. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_filter.py +0 -0
  176. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_import.py +0 -0
  177. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_introspection.py +0 -0
  178. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_patch.py +0 -0
  179. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_registration.py +0 -0
  180. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_response.py +0 -0
  181. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_search_document.py +0 -0
  182. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_sql.py +0 -0
  183. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  184. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  185. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  186. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  187. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_batch.py +0 -0
  188. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  189. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_constants.py +0 -0
  190. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_crud.py +0 -0
  191. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_details.py +0 -0
  192. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_graph.py +0 -0
  193. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  194. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_registration.py +0 -0
  195. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_runs.py +0 -0
  196. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/routes/update_statistics.py +0 -0
  197. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/runtime.py +0 -0
  198. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/runtime_control.py +0 -0
  199. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/source_passwords.py +0 -0
  200. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/source_registrations.py +0 -0
  201. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/app/transfer.py +0 -0
  202. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/__init__.py +0 -0
  203. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/__init__.py +0 -0
  204. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/access.py +0 -0
  205. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  206. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  207. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  208. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  209. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  210. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  211. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  212. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  213. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  214. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  215. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  216. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  217. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  218. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  219. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  220. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  221. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  222. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  223. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  224. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  225. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  226. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/catalog.py +0 -0
  227. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  228. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  229. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/contracts.py +0 -0
  230. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/hosted.py +0 -0
  231. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  232. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  233. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/native.py +0 -0
  234. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/operations.py +0 -0
  235. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/pages.py +0 -0
  236. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  237. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/registry.py +0 -0
  238. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  239. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/relational.py +0 -0
  240. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  241. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  242. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/backends/streaming.py +0 -0
  243. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/contracts/__init__.py +0 -0
  244. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  245. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  246. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  247. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/contracts/values.py +0 -0
  248. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/__init__.py +0 -0
  249. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  250. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  251. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  252. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/label_rules.py +0 -0
  253. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  254. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/domain/update_constants.py +0 -0
  255. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/__init__.py +0 -0
  256. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  257. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  258. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  259. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  260. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  261. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  262. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  263. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  264. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  265. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  266. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  267. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/__init__.py +0 -0
  268. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/env.py +0 -0
  269. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  270. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  271. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  272. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  273. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  274. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  275. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  276. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  277. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  278. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  279. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/__init__.py +0 -0
  280. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  281. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  282. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/create_table.py +0 -0
  283. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  284. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/import_relations.py +0 -0
  285. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  286. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  287. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  288. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/operations/search_documents.py +0 -0
  289. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/__init__.py +0 -0
  290. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/cascade.py +0 -0
  291. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/catalog.py +0 -0
  292. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/database.py +0 -0
  293. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/grants.py +0 -0
  294. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/labels.py +0 -0
  295. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/locking.py +0 -0
  296. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/models.py +0 -0
  297. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  298. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/projections.py +0 -0
  299. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  300. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  301. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  302. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  303. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  304. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/table_response.py +0 -0
  305. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  306. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  307. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/updates.py +0 -0
  308. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  309. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  310. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/metatables/__init__.py +0 -0
  311. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/metatables/configuration.yaml +0 -0
  312. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/api/metatables/main.py +0 -0
  313. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/__init__.py +0 -0
  314. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/admin_install.py +0 -0
  315. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/filters.py +0 -0
  316. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/local.py +0 -0
  317. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/migrations.py +0 -0
  318. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/project.py +0 -0
  319. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/cli/skills.py +0 -0
  320. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/compiled_sql/__init__.py +0 -0
  321. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/compiled_sql/mssql.py +0 -0
  322. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/compiled_sql/v1.py +0 -0
  323. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/dtype_codec.py +0 -0
  324. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/README.md +0 -0
  325. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/__init__.py +0 -0
  326. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/bounded_reader.py +0 -0
  327. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/data_sources/README.md +0 -0
  328. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/data_sources/mssql.json +0 -0
  329. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/data_sources/mysql.json +0 -0
  330. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/data_sources/postgresql.json +0 -0
  331. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/data_sources/register.py +0 -0
  332. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/external_table.py +0 -0
  333. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/README.md +0 -0
  334. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/__init__.py +0 -0
  335. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/__main__.py +0 -0
  336. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  337. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/migrations/env.py +0 -0
  338. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  339. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  340. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/local_app/tables.py +0 -0
  341. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/query.py +0 -0
  342. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/quickstart.py +0 -0
  343. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/reader.py +0 -0
  344. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/scripts/__init__.py +0 -0
  345. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  346. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tables.py +0 -0
  347. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/README.md +0 -0
  348. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/__init__.py +0 -0
  349. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/__main__.py +0 -0
  350. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/data/README.md +0 -0
  351. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  352. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/frames.py +0 -0
  353. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  354. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  355. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  356. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  357. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  358. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  359. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  360. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  361. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/operations.py +0 -0
  362. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/tables.py +0 -0
  363. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/tutorial/updaters.py +0 -0
  364. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/examples/updater.py +0 -0
  365. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/future_registry.py +0 -0
  366. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/hashing.py +0 -0
  367. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/instrumentation.py +0 -0
  368. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/local_connection.py +0 -0
  369. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/local_files.py +0 -0
  370. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/local_run_logs.py +0 -0
  371. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/log_contract.py +0 -0
  372. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/__init__.py +0 -0
  373. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/alembic.py +0 -0
  374. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/connection.py +0 -0
  375. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/env.py +0 -0
  376. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/provider.py +0 -0
  377. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/registry.py +0 -0
  378. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/runner.py +0 -0
  379. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/scaffold.py +0 -0
  380. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/templates/__init__.py +0 -0
  381. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/templates/env.py.mako +0 -0
  382. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/templates/script.py.mako +0 -0
  383. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/migrations/tls.py +0 -0
  384. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/models.py +0 -0
  385. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/pydantic_metadata.py +0 -0
  386. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/run_logging.py +0 -0
  387. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/runtime.py +0 -0
  388. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/runtime_context.py +0 -0
  389. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/runtime_contract.py +0 -0
  390. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/schema_names.py +0 -0
  391. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/sdk_compat.py +0 -0
  392. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/sqlalchemy_contracts.py +0 -0
  393. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/time_index_table_refs.py +0 -0
  394. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/transfer.py +0 -0
  395. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/transfer_contract.py +0 -0
  396. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/transport.py +0 -0
  397. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/update_configuration_contract.py +0 -0
  398. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/__init__.py +0 -0
  399. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/configuration.py +0 -0
  400. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/dependencies.py +0 -0
  401. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/managers.py +0 -0
  402. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/namespacing.py +0 -0
  403. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/runner.py +0 -0
  404. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/updaters.py +0 -0
  405. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/updaters/utils.py +0 -0
  406. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/src/metatables/upload.py +0 -0
  407. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_caller_assertions.py +0 -0
  408. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_data_source_identity.py +0 -0
  409. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_development_client.py +0 -0
  410. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_hosted_environment_target.py +0 -0
  411. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_local_mode.py +0 -0
  412. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_platform_fact_cache.py +0 -0
  413. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_runtime_bootstrap.py +0 -0
  414. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_runtime_scaffold.py +0 -0
  415. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_runtime_selection.py +0 -0
  416. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_runtime_storage_binding.py +0 -0
  417. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/auth/test_source_passwords.py +0 -0
  418. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/catalog/test_catalog_foundation.py +0 -0
  419. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/catalog/test_contract_projection.py +0 -0
  420. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/catalog/test_database_config.py +0 -0
  421. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/catalog/test_index_statistics.py +0 -0
  422. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/catalog/test_migration.py +0 -0
  423. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/conftest.py +0 -0
  424. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/client_signatures.json +0 -0
  425. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/database_operations.json +0 -0
  426. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_bounded_transfer.py +0 -0
  427. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_compiler_runtime_source.py +0 -0
  428. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_relation_batching.py +0 -0
  429. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_relation_import.py +0 -0
  430. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_storage_layouts.py +0 -0
  431. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/contracts/test_table_contracts.py +0 -0
  432. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/Dockerfile +0 -0
  433. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/Dockerfile.dockerignore +0 -0
  434. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/__init__.py +0 -0
  435. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/conftest.py +0 -0
  436. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/provider/__init__.py +0 -0
  437. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/provider/env.py +0 -0
  438. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  439. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_api_contract.py +0 -0
  440. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_application_migration.py +0 -0
  441. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  442. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_catalog_contract.py +0 -0
  443. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_credential_catalog.py +0 -0
  444. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_physical_contract.py +0 -0
  445. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_relation_import.py +0 -0
  446. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  447. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_sql_security.py +0 -0
  448. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_backend/test_update_client.py +0 -0
  449. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_operations/test_physical_operations.py +0 -0
  450. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_operations/test_postgresql_operations.py +0 -0
  451. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  452. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/documentation/test_project_checks.py +0 -0
  453. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_admin_installation.py +0 -0
  454. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_api_endpoint.py +0 -0
  455. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_application_owned_migrations.py +0 -0
  456. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_catalog_outage.py +0 -0
  457. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_api_contract.py +0 -0
  458. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_api_coverage.py +0 -0
  459. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_migration_scaffold.py +0 -0
  460. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_migration_tls.py +0 -0
  461. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_package.py +0 -0
  462. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_signatures.py +0 -0
  463. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_client_value_behaviors.py +0 -0
  464. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_data_source_registry.py +0 -0
  465. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_local_actor_client_api.py +0 -0
  466. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_local_cli_workflow.py +0 -0
  467. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_local_client_selection.py +0 -0
  468. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  469. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_namespaces_admin_http.py +0 -0
  470. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_public_imports.py +0 -0
  471. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_remaining_client_routes.py +0 -0
  472. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_run_graphs.py +0 -0
  473. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_run_logs.py +0 -0
  474. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_runtime_transition.py +0 -0
  475. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_sdk_local_startup.py +0 -0
  476. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_sqlite_runtime.py +0 -0
  477. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_delete_client_api.py +0 -0
  478. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_filter_client_api.py +0 -0
  479. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_introspection_client_api.py +0 -0
  480. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_patch_client_api.py +0 -0
  481. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_search_document_api.py +0 -0
  482. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_stats_api.py +0 -0
  483. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_update_pipeline.py +0 -0
  484. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_table_updates_http.py +0 -0
  485. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  486. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  487. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_update_batch_client_api.py +0 -0
  488. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  489. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  490. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  491. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/e2e/test_update_registration_client_api.py +0 -0
  492. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/examples/test_documented_examples.py +0 -0
  493. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/examples/test_postgresql_examples.py +0 -0
  494. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/examples/test_setup_launch.py +0 -0
  495. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/examples/test_tutorial.py +0 -0
  496. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_credential_store.py +0 -0
  497. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_data_source_rules.py +0 -0
  498. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_local_data_sources.py +0 -0
  499. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_local_run_logs.py +0 -0
  500. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_postgresql_connection.py +0 -0
  501. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_postgresql_sql.py +0 -0
  502. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_postgresql_tables.py +0 -0
  503. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  504. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_source_validation.py +0 -0
  505. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/integrations/test_sqlite_operations.py +0 -0
  506. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/labels/test_labels.py +0 -0
  507. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/operations/test_create_table_operation.py +0 -0
  508. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/operations/test_create_table_postgres.py +0 -0
  509. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/operations/test_physical_operation_journal.py +0 -0
  510. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/operations/test_register_catalog.py +0 -0
  511. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/operations/test_search_documents.py +0 -0
  512. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/packaging/test_client_skills.py +0 -0
  513. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/packaging/test_dev_release_version.py +0 -0
  514. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/packaging/test_distribution_sources.py +0 -0
  515. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/packaging/test_editable_build.py +0 -0
  516. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/packaging/test_installed_distribution.py +0 -0
  517. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_governed_sql_scope.py +0 -0
  518. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_local_actor_membership.py +0 -0
  519. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_migration_boundary.py +0 -0
  520. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_namespace_grants.py +0 -0
  521. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_security_api.py +0 -0
  522. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_table_body_filter.py +0 -0
  523. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_table_grants.py +0 -0
  524. {mainsequence_metatable-0.1.7.dev9 → mainsequence_metatable-0.1.8.dev11}/tests/permissions/test_table_queries.py +0 -0
@@ -0,0 +1,40 @@
1
+ api_version: "2.3.0"
2
+ name: metatables-api
3
+ resources:
4
+ - key: metatables-api
5
+ kind: fastapi
6
+ spec:
7
+ source_path: api/metatables/main.py
8
+ automatic_deployment: true
9
+ automatic_redeployment:
10
+ enabled: true
11
+ tag_regex: null
12
+ min_scale: 1
13
+ revision_retention_count: 3
14
+
15
+ - key: migrate-system
16
+ kind: job
17
+ spec:
18
+ name: MetaTables system migrations
19
+ execution_path: jobs/migrate_system.py
20
+ cpu_request: "1"
21
+ memory_request: "1"
22
+ max_runtime_seconds: 1800
23
+ automatic_redeployment:
24
+ enabled: true
25
+ tag_regex: null
26
+
27
+ execution:
28
+ steps:
29
+ image:
30
+ prepare_image: metatables-api
31
+
32
+ migrate:
33
+ run_job: migrate-system
34
+ image_from: image
35
+ needs: [image]
36
+
37
+ deploy_api:
38
+ deploy: metatables-api
39
+ image_from: image
40
+ needs: [migrate]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.7.dev9
3
+ Version: 0.1.8.dev11
4
4
  Summary: Main Sequence MetaTables Python client and standalone API
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -99,6 +99,11 @@ by startup or migration. This supersedes the previous branch isolation policy.
99
99
 
100
100
  ### Explicit runtime bootstrap in the selected DataSource (amended 2026-09-29)
101
101
 
102
+ Hosted upgrades: before each API rollout, the deployment workflow runs
103
+ `metatables runtime upgrade` from the new image against the active runtime
104
+ ([ADR 0014](0014-main-sequence-release-jobs-and-production-migrations.md)). Initializing a selected DataSource and startup
105
+ inspection follow the lifecycle below.
106
+
102
107
  This amendment supersedes the separate catalog connection, the two-file SQLite
103
108
  binding, automatic local catalog upgrades, and the requirement that switching to
104
109
  Hosted already have a migrated catalog. It corrects this ADR's runtime lifecycle;
@@ -253,6 +253,10 @@ this work must not require recreation or transfer them to another DataSource.
253
253
 
254
254
  ### First-bootstrap and migration recovery
255
255
 
256
+ The deployment workflow's `metatables runtime upgrade` ([ADR 0014](0014-main-sequence-release-jobs-and-production-migrations.md))
257
+ runs this same protocol, with its backend locks, progress reconciliation,
258
+ registration and schema verification, before each hosted API rollout.
259
+
256
260
  The shared bootstrap service operates before a DataSource row or the full operation
257
261
  journal exists. Startup and Settings inspection remain read-only. Only the explicit
258
262
  **Run MetaTables migrations** action may initialize or upgrade the selected database.
@@ -80,6 +80,10 @@ dropped tables. Revision files already applied remain immutable.
80
80
 
81
81
  ## MetaTables system migrations
82
82
 
83
+ Hosted system upgrades also run as a deployment prerequisite Job
84
+ ([ADR 0014](0014-main-sequence-release-jobs-and-production-migrations.md)). Application providers keep their own histories and are not
85
+ part of that Job.
86
+
83
87
  The API continues to own `metatables.api.backend.migrations`, `metatables_catalog_version`
84
88
  and the explicit admin bootstrap/upgrade operation in Settings. Application
85
89
  migration commands do not invoke that operation. Applications must keep their
@@ -0,0 +1,67 @@
1
+ # ADR 0014: System migrations in the deployment workflow
2
+
3
+ Date: 2026-10-02
4
+
5
+ Status: Accepted. Implemented on `development`; hosted verification pending.
6
+
7
+ Owners: MetaTables API. Main Sequence owns Job execution, images, deployment and
8
+ platform authentication.
9
+
10
+ Related: [ADR 0001: Runtime storage and bootstrap](0001-unified-api-storage-and-local-sqlite.md),
11
+ [ADR 0008: Database workflows and recovery](0008-mysql-mssql-table-workflows.md) and
12
+ [ADR 0013: Application-owned migrations](0013-application-owned-migrations.md).
13
+
14
+ ## Context
15
+
16
+ Main Sequence deploys the hosted API from `.mainsequence/workflows/metatables-api.yaml`.
17
+ Settings runs system migrations inside the running API, and that API can only
18
+ apply the revisions it ships. A release's new revisions must be applied before
19
+ its API serves.
20
+
21
+ ## Decision
22
+
23
+ The deployment workflow upgrades the runtime from the candidate image before the
24
+ rollout:
25
+
26
+ ```text
27
+ candidate image -> migrate-system Job -> API deployment
28
+ ```
29
+
30
+ A failed upgrade blocks the rollout.
31
+
32
+ The Job, `jobs/migrate_system.py`, runs `metatables runtime upgrade`:
33
+
34
+ 1. Find the Environment's MetaTables API the same way the client does.
35
+ 2. Read `GET /runtime-context/` as an organization admin. For admins,
36
+ `bootstrap.candidate` is the Settings DataSource's public configuration with
37
+ its Secret references; the Secrets are resolved through the SDK.
38
+ 3. Apply this package's system migrations through the shared bootstrap operation:
39
+ backend lock, progress recovery, runtime registration, access setup and
40
+ verification. A runtime already at the current revision is left untouched.
41
+
42
+ The command acts only on an active runtime. With no API deployment or no active
43
+ runtime yet, it succeeds without DDL. A non-admin identity or an unreadable
44
+ context fails before DDL. When it registers the runtime DataSource, it records
45
+ the Job identity's user UID as the creator.
46
+
47
+ Settings' **Run MetaTables migrations** and `metatables runtime initialize` keep
48
+ initializing a newly selected DataSource: the API serving them is the deployed
49
+ revision and runs its own migrations, so there is no version skew. API startup
50
+ stays inspection-only.
51
+
52
+ Both targets declare `automatic_redeployment` with `tag_regex: null`, so every
53
+ eligible commit runs the graph. Package publication stays in GitHub Actions.
54
+
55
+ The upgrade owns only `metatables.api.backend.migrations` and
56
+ `metatables_catalog_version`. Application providers keep their own histories
57
+ under ADR 0013.
58
+
59
+ ## Consequences
60
+
61
+ - The previous API keeps serving during the upgrade, so each schema change must
62
+ stay compatible with the previous release. Coordination with its writes is not
63
+ defined yet.
64
+ - An upgrade followed by a failed deployment leaves the database upgraded. There
65
+ is no automatic downgrade.
66
+ - The workflow runs only when the platform receives the branch's commit.
67
+ Verification in a hosted Environment is pending.
@@ -34,3 +34,4 @@ decisions belong in the SDK repository and are linked as dependencies.
34
34
  | [0010: Import external tables and views](api/0010-import-external-tables-and-views.md) | Accepted; implemented (verification boundaries in ADR) | Shared backend discovery, metadata import/refresh, and bounded reads of external tables and views, preserving one runtime catalog and existing grants. |
35
35
  | [0012: Bounded data transfer, concurrent execution, and safe retries](api/0012-bounded-data-transfer-and-safe-retries.md) | Accepted; implemented; hosted engine verification pending | API/client row and byte budgets, incremental fetching, concurrent admission, durable chunk receipts, safe recovery, and required user documentation; independent of Artifacts and temporary URLs. |
36
36
  | [0013: Application-owned migrations](api/0013-application-owned-migrations.md) | Accepted and implemented | Application-side Alembic, environment database authority, API catalog integration and separate system migrations. |
37
+ | [0014: System migrations in the deployment workflow](api/0014-main-sequence-release-jobs-and-production-migrations.md) | Accepted; implemented on development; hosted verification pending | A Main Sequence Job upgrades the active runtime from the candidate image before each API rollout. |
@@ -1,5 +1,10 @@
1
1
  # Initialize and upgrade the runtime database
2
2
 
3
+ Hosted upgrades also run automatically: before each API rollout, the deployment
4
+ workflow runs `metatables runtime upgrade` from the new image against the active
5
+ runtime ([ADR 0014](../adr/api/0014-main-sequence-release-jobs-and-production-migrations.md)).
6
+ The operation below initializes a newly selected DataSource.
7
+
3
8
  Settings selects the runtime mode and a DataSource. That database stores MetaTables'
4
9
  system tables, including `data_source`, alongside user tables. There is no separate
5
10
  catalog connection to configure. Local and hosted use the same initialization flow.
@@ -1,5 +1,11 @@
1
1
  # Operate a hosted API
2
2
 
3
+ The deployment workflow upgrades the active runtime before each API rollout: its
4
+ migration Job runs `metatables runtime upgrade` from the new image, and a failure
5
+ stops the rollout ([ADR 0014](../adr/api/0014-main-sequence-release-jobs-and-production-migrations.md)).
6
+ Settings and `metatables runtime initialize` still initialize a newly selected
7
+ DataSource.
8
+
3
9
  The repository's `.mainsequence/workflows/metatables-api.yaml` declares the
4
10
  automatic FastAPI deployment at `api/metatables/main.py`. This file imports
5
11
  `metatables.api.metatables.main:app`; the server and its deployment-specific
@@ -304,4 +304,5 @@ This inventory records the support status of public resource methods and CLI com
304
304
  | `init` | tested | visible | Enable local development while preserving settings; no database initialization. |
305
305
  | `runtime status` | tested | visible | Read bootstrap and effective runtime state before or after initialization. |
306
306
  | `runtime initialize` | tested | visible | Explicit API system migrations under current admin admission. |
307
+ | `runtime upgrade` | tested | visible | Deploy-time upgrade of the active Settings runtime from this package's migrations; skips with no API or no active runtime. |
307
308
  | `admin repair` | tested | visible | Explicitly stage pinned source/dependencies; refuse replacement while in use. |
@@ -27,6 +27,7 @@ The list below contains visible leaf commands. Hidden aliases and unavailable co
27
27
  | `metatables migrations upgrade` | target_revision, --provider, --timeout, --ttl-seconds, --json | Run the application's Alembic upgrade and finalize its catalog tables. |
28
28
  | `metatables runtime initialize` | | Explicitly apply the selected API's system migrations. |
29
29
  | `metatables runtime status` | | Read bootstrap state and effective runtime, including before initialization. |
30
+ | `metatables runtime upgrade` | | Apply this package's system migrations to the active hosted runtime before a rollout. |
30
31
  | `metatables serve` | --local, --port, --configuration, --admin, --admin-path, --admin-port, --open-browser, --sdk-session-source | Launch the installed API and optionally the reusable local Admin. |
31
32
  | `metatables time-index-table delete` | uid, --full-delete-selected, --full-delete-downstream-tables, --delete-with-no-table, --override-protection, --timeout | |
32
33
  | `metatables time-index-table detail` | uid, --timeout | |
@@ -79,3 +79,4 @@ nav:
79
79
  - "0010: Import external tables and views": adr/api/0010-import-external-tables-and-views.md
80
80
  - "0012: Bounded data transfer and safe retries": adr/api/0012-bounded-data-transfer-and-safe-retries.md
81
81
  - "0013: Application-owned migrations": adr/api/0013-application-owned-migrations.md
82
+ - "0014: System migrations in the deployment workflow": adr/api/0014-main-sequence-release-jobs-and-production-migrations.md
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence-metatable"
7
- version = "0.1.7.dev9"
7
+ version = "0.1.8.dev11"
8
8
  description = "Main Sequence MetaTables Python client and standalone API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.7.dev9
3
+ Version: 0.1.8.dev11
4
4
  Summary: Main Sequence MetaTables Python client and standalone API
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -28,6 +28,7 @@ docs/adr/api/0009-shared-credential-store.md
28
28
  docs/adr/api/0010-import-external-tables-and-views.md
29
29
  docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md
30
30
  docs/adr/api/0013-application-owned-migrations.md
31
+ docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md
31
32
  docs/adr/client/0003-api-endpoint-resolution.md
32
33
  docs/adr/client/0011-cli-local-development-with-managed-admin.md
33
34
  docs/api/authentication-and-errors.md
@@ -467,6 +468,7 @@ tests/e2e/test_remaining_client_routes.py
467
468
  tests/e2e/test_run_graphs.py
468
469
  tests/e2e/test_run_logs.py
469
470
  tests/e2e/test_runtime_transition.py
471
+ tests/e2e/test_runtime_upgrade.py
470
472
  tests/e2e/test_sdk_local_startup.py
471
473
  tests/e2e/test_sqlite_runtime.py
472
474
  tests/e2e/test_table_delete_client_api.py
@@ -455,6 +455,26 @@ class RuntimeBootstrap:
455
455
  request.app.state.runtime_control.instance_id = str(uuid4())
456
456
 
457
457
 
458
+ def upgrade_selected_runtime(candidate, selected_source_uid, user_uid):
459
+ """Apply this package's system migrations to a hosted runtime selected in Settings.
460
+
461
+ A deployed API can only run the revisions it ships, so a new release upgrades
462
+ the active runtime from its own image before that API rolls out.
463
+ """
464
+ from metatables.api.app.runtime import RuntimeConfig
465
+ target = RuntimeBootstrap(RuntimeConfig(local_mode=False), None)
466
+ target.selected_source_uid = selected_source_uid
467
+ try:
468
+ target.configure(candidate, user_uid)
469
+ previous = sorted(target.current)
470
+ if target.status == "ready":
471
+ return dict(status="up_to_date", revisions=previous)
472
+ target.migrate(user_uid)
473
+ return dict(status="upgraded", previous_revisions=previous, revisions=sorted(target.current))
474
+ finally:
475
+ target.close()
476
+
477
+
458
478
  router = APIRouter(prefix="/runtime-bootstrap", tags=["Runtime bootstrap"])
459
479
 
460
480
 
@@ -231,6 +231,35 @@ def runtime_initialize() -> None:
231
231
  _execute(initialize_runtime)
232
232
 
233
233
 
234
+ @runtime.command("upgrade")
235
+ def runtime_upgrade() -> None:
236
+ """Apply this package's system migrations to the active hosted runtime before a rollout."""
237
+ _execute(_upgrade_runtime)
238
+
239
+
240
+ def _upgrade_runtime() -> dict:
241
+ from uuid import UUID
242
+
243
+ from metatables.endpoint import ApiNotDeployedError
244
+ from metatables.runtime import get_runtime_status
245
+ try:
246
+ context = get_runtime_status()
247
+ except ApiNotDeployedError as exc:
248
+ return {"status": "skipped", "reason": str(exc)}
249
+ if context.get("local_mode"):
250
+ raise RuntimeError("Upgrade applies to a hosted runtime; use Settings or 'metatables --local runtime initialize'.")
251
+ if not context.get("is_admin"):
252
+ raise RuntimeError("Upgrading the runtime requires an admin caller.")
253
+ bootstrap = context.get("bootstrap") or {}
254
+ if not bootstrap.get("active"):
255
+ return {"status": "skipped", "reason": "The API has no active runtime; initialize it from Settings."}
256
+ if not bootstrap.get("candidate"):
257
+ raise RuntimeError("The API did not return its runtime DataSource configuration.")
258
+ from metatables.api.app.bootstrap import upgrade_selected_runtime
259
+ return upgrade_selected_runtime(bootstrap["candidate"], bootstrap.get("selected_source_uid"),
260
+ UUID(context["user_uid"]))
261
+
262
+
234
263
  @contextmanager
235
264
  def _client_transport():
236
265
  """Configure only MetaTables models; do not redirect SDK platform calls."""
@@ -242,6 +271,11 @@ def _client_transport():
242
271
  with api_endpoint_scope():
243
272
  yield
244
273
  return
274
+ if os.environ.get("MAINSEQUENCE_AUTH_MODE") in {"runtime_credential", "session_jwt"}:
275
+ # Deployed runtimes and Main Sequence Jobs keep their platform-issued auth.
276
+ with api_endpoint_scope():
277
+ yield
278
+ return
245
279
  from mainsequence.cli.config import get_tokens
246
280
  from mainsequence.client.utils import loaders
247
281
 
@@ -23,6 +23,10 @@ class ApiResolutionError(RuntimeError):
23
23
  """The configured MetaTables API could not be selected unambiguously."""
24
24
 
25
25
 
26
+ class ApiNotDeployedError(ApiResolutionError):
27
+ """No MetaTables API deployment exists yet in the caller's Environment."""
28
+
29
+
26
30
  @dataclass(frozen=True)
27
31
  class ApiEndpoint:
28
32
  url: str
@@ -181,7 +185,7 @@ def _discover(generation: int, environment_uid: str) -> ApiEndpoint:
181
185
  matches = [release for release in candidates
182
186
  if environments[release.code_repository_branch_uid] == environment_uid]
183
187
  if not matches:
184
- raise ApiResolutionError(f"No visible FastAPI deployment named {name!r} in Environment {environment_uid!r}. Apply the API workflow in that Environment.")
188
+ raise ApiNotDeployedError(f"No visible FastAPI deployment named {name!r} in Environment {environment_uid!r}. Apply the API workflow in that Environment.")
185
189
  if len(matches) != 1:
186
190
  raise ApiResolutionError(f"More than one visible FastAPI deployment named {name!r} in Environment {environment_uid!r}; remove duplicate deployments in that Environment.")
187
191
  release = matches[0]
@@ -3335,6 +3335,18 @@
3335
3335
  "tests/e2e/test_local_cli_workflow.py::test_local_cli_bootstrap_migrate_write_read_restart"
3336
3336
  ]
3337
3337
  },
3338
+ {
3339
+ "command": "runtime upgrade",
3340
+ "hidden": false,
3341
+ "status": "tested",
3342
+ "note": "Deploy-time upgrade of the active Settings runtime from this package's migrations; skips with no API or no active runtime.",
3343
+ "tests": [
3344
+ "tests/e2e/test_runtime_upgrade.py::test_upgrade_targets_the_active_settings_data_source",
3345
+ "tests/e2e/test_runtime_upgrade.py::test_first_deployment_has_nothing_to_upgrade",
3346
+ "tests/e2e/test_runtime_upgrade.py::test_runtime_without_activation_is_left_to_settings",
3347
+ "tests/e2e/test_runtime_upgrade.py::test_refuses_before_any_ddl"
3348
+ ]
3349
+ },
3338
3350
  {
3339
3351
  "command": "admin repair",
3340
3352
  "hidden": false,
@@ -0,0 +1,55 @@
1
+ """`metatables runtime upgrade`: the deploy-time upgrade of the Settings runtime."""
2
+
3
+ from uuid import UUID
4
+
5
+ import pytest
6
+
7
+ import metatables.api.app.bootstrap as bootstrap
8
+ import metatables.runtime as runtime
9
+ from metatables.cli import app as cli
10
+ from metatables.endpoint import ApiNotDeployedError
11
+
12
+ USER = "6f0c6c4e-8a52-4a8e-9f62-4f2b5a7f0e11"
13
+ CANDIDATE = {"display_name": "Runtime", "class_type": "postgresql", "configuration": {"host": "db"}}
14
+
15
+
16
+ def context(**changes):
17
+ value = {"local_mode": False, "is_admin": True, "user_uid": USER,
18
+ "bootstrap": {"active": True, "candidate": CANDIDATE, "selected_source_uid": "source"}}
19
+ return value | changes
20
+
21
+
22
+ def no_ddl(*_):
23
+ pytest.fail("the upgrade must not touch the database")
24
+
25
+
26
+ def test_upgrade_targets_the_active_settings_data_source(monkeypatch):
27
+ calls = []
28
+ monkeypatch.setattr(runtime, "get_runtime_status", context)
29
+ monkeypatch.setattr(bootstrap, "upgrade_selected_runtime", lambda *args: calls.append(args) or {"status": "upgraded"})
30
+ assert cli._upgrade_runtime() == {"status": "upgraded"}
31
+ assert calls == [(CANDIDATE, "source", UUID(USER))]
32
+
33
+
34
+ def test_first_deployment_has_nothing_to_upgrade(monkeypatch):
35
+ def not_deployed():
36
+ raise ApiNotDeployedError("No visible FastAPI deployment named 'metatables'.")
37
+
38
+ monkeypatch.setattr(runtime, "get_runtime_status", not_deployed)
39
+ monkeypatch.setattr(bootstrap, "upgrade_selected_runtime", no_ddl)
40
+ assert cli._upgrade_runtime()["status"] == "skipped"
41
+
42
+
43
+ def test_runtime_without_activation_is_left_to_settings(monkeypatch):
44
+ monkeypatch.setattr(runtime, "get_runtime_status", lambda: context(bootstrap={"active": False, "candidate": CANDIDATE}))
45
+ monkeypatch.setattr(bootstrap, "upgrade_selected_runtime", no_ddl)
46
+ assert cli._upgrade_runtime()["status"] == "skipped"
47
+
48
+
49
+ @pytest.mark.parametrize(("changes", "message"), [({"is_admin": False}, "admin"), ({"local_mode": True}, "hosted"),
50
+ ({"bootstrap": {"active": True}}, "configuration")])
51
+ def test_refuses_before_any_ddl(monkeypatch, changes, message):
52
+ monkeypatch.setattr(runtime, "get_runtime_status", lambda: context(**changes))
53
+ monkeypatch.setattr(bootstrap, "upgrade_selected_runtime", no_ddl)
54
+ with pytest.raises(RuntimeError, match=message):
55
+ cli._upgrade_runtime()
@@ -632,7 +632,7 @@ server = [
632
632
 
633
633
  [[package]]
634
634
  name = "mainsequence-metatable"
635
- version = "0.1.7"
635
+ version = "0.1.8"
636
636
  source = { editable = "." }
637
637
  dependencies = [
638
638
  { name = "alembic" },
@@ -1,10 +0,0 @@
1
- api_version: "2.3.0"
2
- name: metatables-api
3
- resources:
4
- - key: metatables-api
5
- kind: fastapi
6
- spec:
7
- source_path: api/metatables/main.py
8
- automatic_deployment: true
9
- min_scale: 1
10
- revision_retention_count: 3