mainsequence-metatable 0.1.8.dev13__tar.gz → 0.1.8.dev15__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 (523) hide show
  1. {mainsequence_metatable-0.1.8.dev13/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.8.dev15}/PKG-INFO +2 -2
  2. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +50 -0
  3. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/index.md +1 -1
  4. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/data-sources.md +4 -4
  5. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/openapi.json +0 -52
  6. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/reference.md +0 -1
  7. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/installation-and-connection.md +5 -5
  8. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/releasing.md +7 -4
  9. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/testing.md +1 -1
  10. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/catalog-migrations.md +0 -1
  11. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/hosted-runtime.md +5 -4
  12. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/local-runtime.md +12 -4
  13. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/pyproject.toml +2 -2
  14. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15/src/mainsequence_metatable.egg-info}/PKG-INFO +2 -2
  15. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/requires.txt +1 -1
  16. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/bootstrap.py +2 -36
  17. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/main.py +0 -3
  18. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/data_sources.py +10 -4
  19. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/runtime_context.py +0 -1
  20. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/runtime.py +1 -13
  21. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime_contract.py +0 -1
  22. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_hosted_environment_target.py +1 -1
  23. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_selection.py +57 -48
  24. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_data_source_registry.py +1 -2
  25. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_runtime_transition.py +13 -17
  26. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/uv.lock +4 -4
  27. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  28. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
  29. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
  30. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  31. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  32. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/.mainsequence/workflows/metatables-api.yaml +0 -0
  33. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/LICENSE +0 -0
  34. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/MANIFEST.in +0 -0
  35. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/README.md +0 -0
  36. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/alembic.ini +0 -0
  37. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/api/metatables/main.py +0 -0
  38. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/compose.database-tests.yml +0 -0
  39. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  40. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  41. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  42. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  43. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  44. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  45. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  46. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  47. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0009-shared-credential-store.md +0 -0
  48. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  49. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  50. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  51. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  52. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  53. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  54. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/authentication-and-errors.md +0 -0
  55. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/overview.md +0 -0
  56. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/tables-and-migrations.md +0 -0
  57. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/api/time-index-and-updates.md +0 -0
  58. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/assets/branding/metatables.svg +0 -0
  59. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/assets/diagrams/local-client-experience.svg +0 -0
  60. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/bounded-transfers.md +0 -0
  61. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/build-an-updater.md +0 -0
  62. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/define-and-migrate-tables.md +0 -0
  63. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/local-storage.md +0 -0
  64. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/query-and-mutate.md +0 -0
  65. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/quickstart.md +0 -0
  66. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/read-existing-time-index-tables.md +0 -0
  67. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/register-existing-tables.md +0 -0
  68. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/tutorial.md +0 -0
  69. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/client/upgrade-legacy-app.md +0 -0
  70. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/architecture.md +0 -0
  71. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/data-sources.md +0 -0
  72. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/identity-and-scope.md +0 -0
  73. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/permissions-namespaces-labels.md +0 -0
  74. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/runs-and-execution-graphs.md +0 -0
  75. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  76. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/concepts/time-index-tables-and-updates.md +0 -0
  77. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/architecture-and-boundaries.md +0 -0
  78. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/database-backends.md +0 -0
  79. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/contributing/documentation.md +0 -0
  80. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/README.md +0 -0
  81. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/__init__.py +0 -0
  82. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/bounded_reader.py +0 -0
  83. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/README.md +0 -0
  84. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/mssql.json +0 -0
  85. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/mysql.json +0 -0
  86. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/postgresql.json +0 -0
  87. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/data_sources/register.py +0 -0
  88. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/external_table.py +0 -0
  89. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/README.md +0 -0
  90. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/__init__.py +0 -0
  91. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/__main__.py +0 -0
  92. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/__init__.py +0 -0
  93. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/env.py +0 -0
  94. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/script.py.mako +0 -0
  95. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  96. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/local_app/tables.py +0 -0
  97. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/query.py +0 -0
  98. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/quickstart.py +0 -0
  99. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/reader.py +0 -0
  100. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/scripts/__init__.py +0 -0
  101. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/scripts/setup_metatables.py +0 -0
  102. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tables.py +0 -0
  103. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/README.md +0 -0
  104. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/__init__.py +0 -0
  105. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/__main__.py +0 -0
  106. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/data/README.md +0 -0
  107. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  108. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/frames.py +0 -0
  109. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/__init__.py +0 -0
  110. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/env.py +0 -0
  111. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/registry.py +0 -0
  112. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  113. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  114. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  115. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  116. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  117. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/operations.py +0 -0
  118. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/tables.py +0 -0
  119. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/tutorial/updaters.py +0 -0
  120. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/examples/updater.py +0 -0
  121. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/index.md +0 -0
  122. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/configuration.md +0 -0
  123. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/recovery-and-observability.md +0 -0
  124. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/run-history.md +0 -0
  125. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/operations/run-logs.md +0 -0
  126. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/capabilities.md +0 -0
  127. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/cli.md +0 -0
  128. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/reference/python.md +0 -0
  129. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/index.md +0 -0
  130. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/ownership-and-sharing.md +0 -0
  131. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/docs/security/permissions.md +0 -0
  132. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/mkdocs.yml +0 -0
  133. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/__init__.py +0 -0
  134. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/build_reference.py +0 -0
  135. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_boundaries.py +0 -0
  136. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_client_api_coverage.py +0 -0
  137. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_distribution_sources.py +0 -0
  138. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_docs.py +0 -0
  139. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_examples_debug.py +0 -0
  140. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/check_project.py +0 -0
  141. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/dev_release_version.py +0 -0
  142. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/test_databases.py +0 -0
  143. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/scripts/test_postgresql.py +0 -0
  144. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/setup.cfg +0 -0
  145. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
  146. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  147. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  148. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  149. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/__init__.py +0 -0
  150. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_admin_source.json +0 -0
  151. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_build.py +0 -0
  152. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/_skill_bundle.py +0 -0
  153. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/__init__.py +0 -0
  154. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/__init__.py +0 -0
  155. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/__init__.py +0 -0
  156. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/boundary.py +0 -0
  157. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/caller_assertions.py +0 -0
  158. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/auth/local_actor.py +0 -0
  159. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/configuration.py +0 -0
  160. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/credential_admin.py +0 -0
  161. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/development.py +0 -0
  162. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/development_client.py +0 -0
  163. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/platform_cache.py +0 -0
  164. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/__init__.py +0 -0
  165. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/column_search.py +0 -0
  166. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/contract_validation.py +0 -0
  167. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  168. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/migration_connection.py +0 -0
  169. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/namespaces.py +0 -0
  170. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/run_logs.py +0 -0
  171. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/schema_graph.py +0 -0
  172. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/security.py +0 -0
  173. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_cascade.py +0 -0
  174. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_crud.py +0 -0
  175. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_delete.py +0 -0
  176. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_filter.py +0 -0
  177. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_import.py +0 -0
  178. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_introspection.py +0 -0
  179. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_patch.py +0 -0
  180. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_registration.py +0 -0
  181. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_response.py +0 -0
  182. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_search_document.py +0 -0
  183. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_sql.py +0 -0
  184. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  185. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  186. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  187. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  188. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_batch.py +0 -0
  189. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  190. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_constants.py +0 -0
  191. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_crud.py +0 -0
  192. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_details.py +0 -0
  193. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_graph.py +0 -0
  194. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  195. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_registration.py +0 -0
  196. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_runs.py +0 -0
  197. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/routes/update_statistics.py +0 -0
  198. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/runtime_control.py +0 -0
  199. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/source_passwords.py +0 -0
  200. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/source_registrations.py +0 -0
  201. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/app/transfer.py +0 -0
  202. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/__init__.py +0 -0
  203. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/__init__.py +0 -0
  204. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/access.py +0 -0
  205. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  206. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  207. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  208. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  209. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  210. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  211. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  212. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  213. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  214. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  215. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  216. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  217. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  218. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  219. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  220. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  221. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  222. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  223. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  224. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  225. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  226. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog.py +0 -0
  227. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  228. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  229. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/contracts.py +0 -0
  230. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/hosted.py +0 -0
  231. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  232. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  233. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/native.py +0 -0
  234. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/operations.py +0 -0
  235. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/pages.py +0 -0
  236. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  237. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/registry.py +0 -0
  238. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  239. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/relational.py +0 -0
  240. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  241. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  242. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/backends/streaming.py +0 -0
  243. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/__init__.py +0 -0
  244. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  245. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  246. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  247. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/contracts/values.py +0 -0
  248. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/__init__.py +0 -0
  249. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  250. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  251. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  252. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/label_rules.py +0 -0
  253. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  254. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/domain/update_constants.py +0 -0
  255. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/__init__.py +0 -0
  256. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  257. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  258. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  259. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  260. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  261. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  262. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  263. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  264. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  265. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  266. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  267. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/__init__.py +0 -0
  268. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/env.py +0 -0
  269. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  270. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  271. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  272. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  273. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  274. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  275. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  276. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  277. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  278. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  279. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/__init__.py +0 -0
  280. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  281. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  282. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/create_table.py +0 -0
  283. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  284. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/import_relations.py +0 -0
  285. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  286. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  287. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  288. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/operations/search_documents.py +0 -0
  289. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/__init__.py +0 -0
  290. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/cascade.py +0 -0
  291. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/catalog.py +0 -0
  292. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/database.py +0 -0
  293. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/grants.py +0 -0
  294. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/labels.py +0 -0
  295. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/locking.py +0 -0
  296. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/models.py +0 -0
  297. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  298. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/projections.py +0 -0
  299. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  300. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  301. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  302. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  303. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  304. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/table_response.py +0 -0
  305. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  306. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  307. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/updates.py +0 -0
  308. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  309. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  310. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/__init__.py +0 -0
  311. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/configuration.yaml +0 -0
  312. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/api/metatables/main.py +0 -0
  313. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/__init__.py +0 -0
  314. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/admin_install.py +0 -0
  315. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/app.py +0 -0
  316. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/filters.py +0 -0
  317. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/local.py +0 -0
  318. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/migrations.py +0 -0
  319. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/project.py +0 -0
  320. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/cli/skills.py +0 -0
  321. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/__init__.py +0 -0
  322. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/mssql.py +0 -0
  323. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/compiled_sql/v1.py +0 -0
  324. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/dtype_codec.py +0 -0
  325. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/endpoint.py +0 -0
  326. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/README.md +0 -0
  327. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/__init__.py +0 -0
  328. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/bounded_reader.py +0 -0
  329. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/README.md +0 -0
  330. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/mssql.json +0 -0
  331. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/mysql.json +0 -0
  332. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/postgresql.json +0 -0
  333. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/data_sources/register.py +0 -0
  334. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/external_table.py +0 -0
  335. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/README.md +0 -0
  336. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/__init__.py +0 -0
  337. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/__main__.py +0 -0
  338. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  339. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/env.py +0 -0
  340. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  341. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  342. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/local_app/tables.py +0 -0
  343. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/query.py +0 -0
  344. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/quickstart.py +0 -0
  345. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/reader.py +0 -0
  346. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/scripts/__init__.py +0 -0
  347. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  348. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tables.py +0 -0
  349. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/README.md +0 -0
  350. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/__init__.py +0 -0
  351. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/__main__.py +0 -0
  352. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/data/README.md +0 -0
  353. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  354. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/frames.py +0 -0
  355. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  356. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  357. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  358. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  359. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  360. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  361. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  362. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  363. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/operations.py +0 -0
  364. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/tables.py +0 -0
  365. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/tutorial/updaters.py +0 -0
  366. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/examples/updater.py +0 -0
  367. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/future_registry.py +0 -0
  368. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/hashing.py +0 -0
  369. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/instrumentation.py +0 -0
  370. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_connection.py +0 -0
  371. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_files.py +0 -0
  372. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/local_run_logs.py +0 -0
  373. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/log_contract.py +0 -0
  374. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/__init__.py +0 -0
  375. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/alembic.py +0 -0
  376. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/connection.py +0 -0
  377. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/env.py +0 -0
  378. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/provider.py +0 -0
  379. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/registry.py +0 -0
  380. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/runner.py +0 -0
  381. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/scaffold.py +0 -0
  382. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/__init__.py +0 -0
  383. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/env.py.mako +0 -0
  384. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/templates/script.py.mako +0 -0
  385. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/migrations/tls.py +0 -0
  386. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/models.py +0 -0
  387. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/pydantic_metadata.py +0 -0
  388. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/run_logging.py +0 -0
  389. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime.py +0 -0
  390. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/runtime_context.py +0 -0
  391. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/schema_names.py +0 -0
  392. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/sdk_compat.py +0 -0
  393. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/sqlalchemy_contracts.py +0 -0
  394. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/time_index_table_refs.py +0 -0
  395. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transfer.py +0 -0
  396. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transfer_contract.py +0 -0
  397. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/transport.py +0 -0
  398. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/update_configuration_contract.py +0 -0
  399. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/__init__.py +0 -0
  400. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/configuration.py +0 -0
  401. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/dependencies.py +0 -0
  402. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/managers.py +0 -0
  403. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/namespacing.py +0 -0
  404. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/runner.py +0 -0
  405. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/updaters.py +0 -0
  406. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/updaters/utils.py +0 -0
  407. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/src/metatables/upload.py +0 -0
  408. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_caller_assertions.py +0 -0
  409. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_data_source_identity.py +0 -0
  410. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_development_client.py +0 -0
  411. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_local_mode.py +0 -0
  412. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_platform_fact_cache.py +0 -0
  413. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_bootstrap.py +0 -0
  414. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_scaffold.py +0 -0
  415. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_runtime_storage_binding.py +0 -0
  416. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/auth/test_source_passwords.py +0 -0
  417. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_catalog_foundation.py +0 -0
  418. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_contract_projection.py +0 -0
  419. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_database_config.py +0 -0
  420. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_index_statistics.py +0 -0
  421. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/catalog/test_migration.py +0 -0
  422. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/conftest.py +0 -0
  423. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/capabilities.json +0 -0
  424. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/client_signatures.json +0 -0
  425. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/database_operations.json +0 -0
  426. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_bounded_transfer.py +0 -0
  427. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_compiler_runtime_source.py +0 -0
  428. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_relation_batching.py +0 -0
  429. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_relation_import.py +0 -0
  430. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_storage_layouts.py +0 -0
  431. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/contracts/test_table_contracts.py +0 -0
  432. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/Dockerfile +0 -0
  433. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/Dockerfile.dockerignore +0 -0
  434. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/__init__.py +0 -0
  435. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/conftest.py +0 -0
  436. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/__init__.py +0 -0
  437. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/env.py +0 -0
  438. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  439. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_api_contract.py +0 -0
  440. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_application_migration.py +0 -0
  441. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  442. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_catalog_contract.py +0 -0
  443. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_credential_catalog.py +0 -0
  444. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_physical_contract.py +0 -0
  445. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_relation_import.py +0 -0
  446. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  447. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_sql_security.py +0 -0
  448. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_backend/test_update_client.py +0 -0
  449. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_physical_operations.py +0 -0
  450. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_postgresql_operations.py +0 -0
  451. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  452. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/documentation/test_project_checks.py +0 -0
  453. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_admin_installation.py +0 -0
  454. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_api_endpoint.py +0 -0
  455. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_application_owned_migrations.py +0 -0
  456. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_catalog_outage.py +0 -0
  457. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_api_contract.py +0 -0
  458. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_api_coverage.py +0 -0
  459. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_migration_scaffold.py +0 -0
  460. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_migration_tls.py +0 -0
  461. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_package.py +0 -0
  462. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_signatures.py +0 -0
  463. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_client_value_behaviors.py +0 -0
  464. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_actor_client_api.py +0 -0
  465. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_cli_workflow.py +0 -0
  466. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_local_client_selection.py +0 -0
  467. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  468. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_namespaces_admin_http.py +0 -0
  469. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_public_imports.py +0 -0
  470. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_remaining_client_routes.py +0 -0
  471. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_run_graphs.py +0 -0
  472. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_run_logs.py +0 -0
  473. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_runtime_upgrade.py +0 -0
  474. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_sdk_local_startup.py +0 -0
  475. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_sqlite_runtime.py +0 -0
  476. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_delete_client_api.py +0 -0
  477. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_filter_client_api.py +0 -0
  478. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_introspection_client_api.py +0 -0
  479. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_patch_client_api.py +0 -0
  480. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_search_document_api.py +0 -0
  481. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_stats_api.py +0 -0
  482. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_update_pipeline.py +0 -0
  483. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_table_updates_http.py +0 -0
  484. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  485. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  486. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_batch_client_api.py +0 -0
  487. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  488. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  489. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  490. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/e2e/test_update_registration_client_api.py +0 -0
  491. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_documented_examples.py +0 -0
  492. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_postgresql_examples.py +0 -0
  493. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_setup_launch.py +0 -0
  494. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/examples/test_tutorial.py +0 -0
  495. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_credential_store.py +0 -0
  496. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_data_source_rules.py +0 -0
  497. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_local_data_sources.py +0 -0
  498. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_local_run_logs.py +0 -0
  499. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_connection.py +0 -0
  500. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_sql.py +0 -0
  501. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_tables.py +0 -0
  502. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  503. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_source_validation.py +0 -0
  504. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/integrations/test_sqlite_operations.py +0 -0
  505. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/labels/test_labels.py +0 -0
  506. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_create_table_operation.py +0 -0
  507. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_create_table_postgres.py +0 -0
  508. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_physical_operation_journal.py +0 -0
  509. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_register_catalog.py +0 -0
  510. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/operations/test_search_documents.py +0 -0
  511. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_client_skills.py +0 -0
  512. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_dev_release_version.py +0 -0
  513. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_distribution_sources.py +0 -0
  514. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_editable_build.py +0 -0
  515. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/packaging/test_installed_distribution.py +0 -0
  516. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_governed_sql_scope.py +0 -0
  517. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_local_actor_membership.py +0 -0
  518. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_migration_boundary.py +0 -0
  519. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_namespace_grants.py +0 -0
  520. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_security_api.py +0 -0
  521. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_body_filter.py +0 -0
  522. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_grants.py +0 -0
  523. {mainsequence_metatable-0.1.8.dev13 → mainsequence_metatable-0.1.8.dev15}/tests/permissions/test_table_queries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.8.dev13
3
+ Version: 0.1.8.dev15
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
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: mainsequence[server]<10,>=9.0.1
17
+ Requires-Dist: mainsequence[server]<10,>=9.0.4
18
18
  Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
@@ -28,6 +28,7 @@ does not cache this API's runtime context or select its runtime mode or DataSour
28
28
  Updated 2026-09-28: application Environment policy and relationships are removed.
29
29
  Amended 2026-09-29: one enforced runtime binding and explicit bootstrap select one
30
30
  database for system and user tables.
31
+ Amended 2026-10-02: each runtime mode lists and selects only its own DataSources.
31
32
 
32
33
  Companion decision: [Main Sequence SDK ADR 0035: Independent Git source and platform execution context](https://github.com/mainsequence-sdk/mainsequence-sdk/blob/metatables_removal/docs/adr/0035-independent-git-source-and-platform-context.md).
33
34
  The SDK prerequisite is implemented on `metatables_removal`; the current local
@@ -81,6 +82,55 @@ API requirement. The guides and examples describe the implemented shared path.
81
82
 
82
83
  ## Decision
83
84
 
85
+ ### Each runtime mode selects only its own DataSources (amended 2026-10-02)
86
+
87
+ Implemented 2026-10-02 in the API and Admin; the PostgreSQL runtime-transition test
88
+ was updated but not run.
89
+
90
+ A DataSource belongs to the runtime mode that registered it. Data Sources and
91
+ Settings show only the current mode's registrations:
92
+
93
+ | Mode | Registrations | Credential references |
94
+ | --- | --- | --- |
95
+ | Local | The workspace SQLite catalog | Local CredentialStore |
96
+ | Hosted | The Hosted registry until activation, then the hosted catalog | SDK Secrets |
97
+
98
+ Neither mode lists, selects or copies the other mode's registrations. This applies
99
+ ADR 0009's rule against automatic credential transfers to selection. A Hosted
100
+ DataSource is registered and selected after switching to Hosted. Local mode offers
101
+ **Switch to Hosted** without choosing a source; Hosted starts with its saved
102
+ selection or uninitialized, as the supervised-selection amendment below requires.
103
+
104
+ Gap observed 2026-10-02: in Local mode, the Settings Hosted picker listed the local
105
+ catalog (`GET /data-sources/`). Selecting a TimescaleDB registered there made
106
+ `POST /runtime-bootstrap/hosted/select/` copy the row, with its local password
107
+ reference, into `.local/runtime-source-candidates.json`. SDK Secrets could not
108
+ resolve that reference ("SDK Secret access failed"). Local mode also offered no
109
+ way to register a Hosted source: **Add DataSource** writes the local catalog, and
110
+ the Admin disables **Switch to Hosted** until a Hosted source is selected. The
111
+ operations guide documents this cross-mode flow.
112
+
113
+ Fix:
114
+
115
+ 1. API: remove Local-mode Hosted preselection: `POST /runtime-bootstrap/hosted/select/`,
116
+ the Local `hosted_bootstrap` and its runtime-context field. Remove the
117
+ local-catalog lookup and `remember()` from `registered_hosted_source`. Hosted
118
+ `POST /runtime-bootstrap/select/` resolves only the Hosted registry or the
119
+ active hosted catalog.
120
+ 2. Admin: in Local mode, Settings enables **Switch to Hosted** with no source
121
+ picker. The Hosted picker and its **Add DataSource** render only in Hosted
122
+ mode, where Data Sources is the Hosted registry.
123
+ 3. Docs: `docs/operations/local-runtime.md` describes the order Switch to Hosted,
124
+ register in Data Sources, select in Settings, then run MetaTables migrations
125
+ or use the existing catalog.
126
+ 4. Tests: the Local-mode selection route no longer exists; Hosted selection
127
+ rejects a local-catalog UID; a fresh Hosted runtime registers a source with an
128
+ SDK Secret reference and selects it; Settings in Local mode switches without a
129
+ selection.
130
+
131
+ Hosted registry entries already copied from a local catalog carry unusable
132
+ references; developers remove them. No data migration is provided.
133
+
84
134
  ### One local runtime across branches (amended 2026-09-30)
85
135
 
86
136
  MetaTables owns one persistent local SQLite runtime for a checkout. Git branches,
@@ -23,7 +23,7 @@ decisions belong in the SDK repository and are linked as dependencies.
23
23
 
24
24
  | ADR | Status | Scope |
25
25
  | --- | --- | --- |
26
- | [0001: One API execution path with SQLite for local development](api/0001-unified-api-storage-and-local-sqlite.md) | Accepted and implemented | Shared execution, API-owned local storage, SDK context dependency, and DuckDB removal. |
26
+ | [0001: One API execution path with SQLite for local development](api/0001-unified-api-storage-and-local-sqlite.md) | Accepted and implemented | Shared execution, API-owned local storage, SDK context dependency, and DuckDB removal; each runtime mode lists and selects only its own DataSources. |
27
27
  | [0002: Application administration and table ownership](api/0002-application-administration-and-table-ownership.md) | Accepted and implemented | Platform admin facts, table Reader/Writer ownership, User/Team grants, live namespace inheritance, and application-owned access management. |
28
28
  | [0004: Execute approved application migrations inside the API](api/0004-approved-application-migrations.md) | Superseded by ADR 0013 | Historical API-installed provider execution model. |
29
29
  | [0005: Shared run logs with local file capture](api/0005-run-logs-and-local-file-capture.md) | Accepted and implemented; live hosted verification pending | Shared run correlation and log API, runtime-bound local JSONL files, and hosted retrieval through the SDK. |
@@ -30,10 +30,10 @@ These operations do not reconcile runtime table grants. If database permissions
30
30
  need repair in Security, caller queries remain blocked while external DataSource
31
31
  management remains available.
32
32
 
33
- Settings lists eligible PostgreSQL, TimescaleDB, MySQL and MSSQL DataSources from
34
- that same registry and selects one by UID through `/runtime-bootstrap/hosted/select/`
35
- while Local is active or `/runtime-bootstrap/select/` in Hosted mode. Selection does
36
- not itself switch runtime mode. Registration preserves the UID when its catalog is
33
+ Each runtime mode lists only its own registrations: Local the workspace catalog,
34
+ Hosted its registry. In Hosted mode, Settings lists eligible PostgreSQL, TimescaleDB,
35
+ MySQL and MSSQL DataSources and selects one by UID through `/runtime-bootstrap/select/`.
36
+ Local mode cannot select a Hosted DataSource; switch to Hosted first. Registration preserves the UID when its catalog is
37
37
  initialized. The API's private pre-initialization storage is an implementation detail.
38
38
 
39
39
  The active runtime DataSource hosts the system catalog and default application
@@ -3127,16 +3127,6 @@
3127
3127
  ],
3128
3128
  "title": "Git Source"
3129
3129
  },
3130
- "hosted_bootstrap": {
3131
- "anyOf": [
3132
- {
3133
- "$ref": "#/components/schemas/RuntimeBootstrapDescriptor"
3134
- },
3135
- {
3136
- "type": "null"
3137
- }
3138
- ]
3139
- },
3140
3130
  "hosted_environment": {
3141
3131
  "anyOf": [
3142
3132
  {
@@ -6510,48 +6500,6 @@
6510
6500
  ]
6511
6501
  }
6512
6502
  },
6513
- "/runtime-bootstrap/hosted/select/": {
6514
- "post": {
6515
- "description": "Select a registered hosted DataSource without changing the active local runtime.",
6516
- "operationId": "select_hosted_before_switch_runtime_bootstrap_hosted_select__post",
6517
- "requestBody": {
6518
- "content": {
6519
- "application/json": {
6520
- "schema": {
6521
- "$ref": "#/components/schemas/RuntimeSourceSelection"
6522
- }
6523
- }
6524
- },
6525
- "required": true
6526
- },
6527
- "responses": {
6528
- "200": {
6529
- "content": {
6530
- "application/json": {
6531
- "schema": {
6532
- "$ref": "#/components/schemas/RuntimeBootstrapDescriptor"
6533
- }
6534
- }
6535
- },
6536
- "description": "Successful Response"
6537
- },
6538
- "422": {
6539
- "content": {
6540
- "application/json": {
6541
- "schema": {
6542
- "$ref": "#/components/schemas/HTTPValidationError"
6543
- }
6544
- }
6545
- },
6546
- "description": "Validation Error"
6547
- }
6548
- },
6549
- "summary": "Select Hosted Before Switch",
6550
- "tags": [
6551
- "Runtime bootstrap"
6552
- ]
6553
- }
6554
- },
6555
6503
  "/runtime-bootstrap/migrate/": {
6556
6504
  "post": {
6557
6505
  "operationId": "migrate_runtime_bootstrap_migrate__post",
@@ -51,7 +51,6 @@ These methods and paths are mounted by the current application. See the [OpenAPI
51
51
  | POST | `/runtime-bootstrap/activate/` | Activate | 200 |
52
52
  | POST | `/runtime-bootstrap/configure/` | Configure | 200 |
53
53
  | POST | `/runtime-bootstrap/destroy-local/` | Destroy Local | 200 |
54
- | POST | `/runtime-bootstrap/hosted/select/` | Select Hosted Before Switch | 200 |
55
54
  | POST | `/runtime-bootstrap/migrate/` | Migrate | 200 |
56
55
  | POST | `/runtime-bootstrap/select/` | Select Hosted Runtime Source | 200 |
57
56
  | GET | `/runtime-context/` | Runtime Context | 200 |
@@ -11,7 +11,7 @@ require running another service locally.
11
11
  Install in your application's Python environment on macOS or Linux:
12
12
 
13
13
  ```bash
14
- python -m pip install "mainsequence-metatable==0.1.5" "mainsequence[server]==9.0.1"
14
+ python -m pip install "mainsequence-metatable==0.1.8" "mainsequence[server]==9.0.4"
15
15
  mainsequence login
16
16
  metatables init --local
17
17
  metatables serve --local --admin
@@ -19,11 +19,11 @@ metatables serve --local --admin
19
19
 
20
20
  Run from an application Git checkout with a commit and an `origin` remote. Python
21
21
  3.13+ is required. Admin also needs Node.js 22.12+ (or 20.19+) and npm. The package
22
- requires published `mainsequence[server]>=9.0.1,<10`; no SDK checkout is needed.
23
- The next stable release is MetaTables 0.1.5, paired with published SDK 9.0.1.
22
+ requires published `mainsequence[server]>=9.0.4,<10`; no SDK checkout is needed.
23
+ The next stable release is MetaTables 0.1.8, paired with published SDK 9.0.4.
24
24
  The pinned command above applies after that stable release is published; before
25
- then, install the exact `0.1.5.devN` artifact produced by the development publishing
26
- workflow alongside `mainsequence[server]==9.0.1`. SDK 8 is outside this release's
25
+ then, install the exact `0.1.8.devN` artifact produced by the development publishing
26
+ workflow alongside `mainsequence[server]==9.0.4`. SDK 8 is outside this release's
27
27
  dependency range.
28
28
  `python -m metatables.sdk_compat` checks the required SDK interfaces without network
29
29
  requests. Local SQLite uses the standard library driver.
@@ -42,10 +42,13 @@ substitute for the published SDK in a release. The selected SDK artifact must
42
42
  provide ordinary `Secret.get_by_uid`, independent Git source context, and
43
43
  `CallerAssertionVerifier.from_environment` through its `server` extra.
44
44
 
45
- The next MetaTables stable release is `0.1.5`; its supported SDK range is
46
- `mainsequence[server]>=9.0.1,<10`. Development builds use `0.1.5.devN`.
47
- The minimum and lockfile now select published SDK `9.0.1`, which supplies those
48
- interfaces. Runtime compatibility is verified manually with the published artifact;
45
+ The next MetaTables stable release is `0.1.8`; its supported SDK range is
46
+ `mainsequence[server]>=9.0.4,<10`. Development builds use `0.1.8.devN`.
47
+ The minimum and lockfile now select published SDK `9.0.4`, which supplies those
48
+ interfaces and is the first SDK whose caller-assertion verifier accepts the
49
+ platform's EdDSA (Ed25519) caller assertions. Earlier SDKs verify only RS256, so a
50
+ hosted API built with them cannot authenticate platform callers.
51
+ Runtime compatibility is verified manually with the published artifact;
49
52
  package/static CI does not establish runtime compatibility. When changing the SDK
50
53
  minimum, update it in `pyproject.toml`, then run:
51
54
 
@@ -104,7 +104,7 @@ The distribution check requires exactly one wheel and one sdist in `dist/` and
104
104
  compares packaged Python modules with current source. Also test importing the
105
105
  wheel in a fresh environment with the compatible published SDK installed, and verify
106
106
  both catalog migrations and application revision templates are packaged.
107
- The package requires published SDK 9.0.1 or newer within its declared major version.
107
+ The package requires published SDK 9.0.4 or newer within its declared major version.
108
108
 
109
109
  Run the installed-wheel smoke tests manually from outside the checkout, using a
110
110
  fresh virtual environment with the compatible SDK and built MetaTables wheel:
@@ -31,7 +31,6 @@ The API owns these endpoints in both modes:
31
31
  | --- | --- |
32
32
  | `GET /runtime-context/` | Read runtime and bootstrap status, including before any catalog exists. |
33
33
  | `GET/POST /data-sources/` | List or register DataSources, including before hosted bootstrap. |
34
- | `POST /runtime-bootstrap/hosted/select/` | Select a registered hosted DataSource while Local remains active. |
35
34
  | `POST /runtime-bootstrap/select/` | Select a registered DataSource in Hosted mode. |
36
35
  | `POST /runtime-bootstrap/configure/` | Hold and inspect a proposed `{display_name, class_type, configuration}`. |
37
36
  | `POST /runtime-bootstrap/migrate/` | Explicitly migrate, register the runtime source, and activate. |
@@ -42,8 +42,8 @@ The injected SDKCredentialStore saves the password as a managed platform Secret
42
42
  and stores its UID. Hosted never provisions a local key or applies MetaTables AES
43
43
  encryption to that Secret. Then select it
44
44
  from the registered DataSources list in **Settings → Runtime → DataSource**. In the
45
- developer launcher, this selection can be saved while Local mode remains active;
46
- **Switch to Hosted** is a separate action.
45
+ developer launcher, switch to Hosted first: Local mode lists only its workspace
46
+ DataSources and cannot register or select Hosted ones.
47
47
  If MetaTables is absent or outdated, explicitly click **Run MetaTables migrations**.
48
48
  If its schema is already compatible, choose **Use this DataSource**. The selected
49
49
  database stores both the system catalog and user tables; the source registration is
@@ -55,9 +55,10 @@ returns HTTP 200 with a null active DataSource; application routes remain unavai
55
55
  This lets the Vite site show Settings even on the first launch. Once active, the descriptor
56
56
  supplies the source UID, dialect, parameter style and schema to both clients.
57
57
 
58
- DataSources are registered through `/data-sources/` in either runtime mode. Private
58
+ Each runtime mode registers through `/data-sources/` into its own registry. Hosted
59
59
  pre-initialization persistence retains the legacy `.local/runtime-source-candidates.json`
60
- filename for compatibility; it is not a second resource. Selection saves
60
+ filename for compatibility; it is not a second resource, and Local mode never reads
61
+ or writes it. Selection saves
61
62
  public connection settings and Secret references to `.local/runtime-data-sources.json`.
62
63
  Persist that directory across restarts. Startup verifies
63
64
  the existing schema and reopens the selected source; it never upgrades. An incompatible
@@ -67,10 +67,18 @@ Apply application providers through the client with
67
67
 
68
68
  ## Switch modes in one Admin site
69
69
 
70
- Register a hosted connection under **MetaTables → Data Sources**, then choose Hosted under
71
- **Settings → Runtime mode** and select the registered DataSource. **Switch to Hosted**
72
- stops the old worker before starting the selected mode; it never copies data. A fresh
73
- Hosted runtime can start without a database, so Settings remains available.
70
+ Each mode lists and selects only its own DataSources. Local shows the workspace
71
+ catalog and keeps its passwords in the local CredentialStore; Hosted shows the
72
+ Hosted registry and keeps passwords as managed Main Sequence Secrets. A DataSource
73
+ registered in Local never appears in Hosted, and neither mode copies the other's
74
+ registrations or credentials.
75
+
76
+ To use a hosted database, choose Hosted under **Settings → Runtime mode** and click
77
+ **Switch to Hosted**; no DataSource selection is needed first. The worker restarts in
78
+ Hosted with its saved selection, or uninitialized with Settings available. Register
79
+ the database under **MetaTables → Data Sources**, select it in **Settings → Runtime →
80
+ DataSource**, then click **Run MetaTables migrations** or **Use this DataSource**.
81
+ Switching stops the old worker before starting the selected mode; it never copies data.
74
82
  Failed worker startup restores the previous worker. Mode selection is recorded in
75
83
  `.local/runtime-selection.json`; successful DataSource selection is recorded separately
76
84
  in `.local/runtime-data-sources.json` using public settings and Secret references only.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence-metatable"
7
- version = "0.1.8.dev13"
7
+ version = "0.1.8.dev15"
8
8
  description = "Main Sequence MetaTables Python client and standalone API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -18,7 +18,7 @@ classifiers = [
18
18
  "Operating System :: OS Independent",
19
19
  ]
20
20
  dependencies = [
21
- "mainsequence[server]>=9.0.1,<10",
21
+ "mainsequence[server]>=9.0.4,<10",
22
22
  "alembic>=1.18,<2",
23
23
  "cachetools",
24
24
  "cryptography>=46,<51",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.8.dev13
3
+ Version: 0.1.8.dev15
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
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: mainsequence[server]<10,>=9.0.1
17
+ Requires-Dist: mainsequence[server]<10,>=9.0.4
18
18
  Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
@@ -1,4 +1,4 @@
1
- mainsequence[server]<10,>=9.0.1
1
+ mainsequence[server]<10,>=9.0.4
2
2
  alembic<2,>=1.18
3
3
  cachetools
4
4
  cryptography<51,>=46
@@ -544,46 +544,12 @@ def persist_registered_selection(candidate):
544
544
  candidate.persist_selection()
545
545
 
546
546
 
547
- @router.post("/hosted/select/", response_model=RuntimeBootstrapDescriptor)
548
- def select_hosted_before_switch(body: RuntimeSourceSelection, request: Request,
549
- caller: AdmittedCaller = Depends(require_admin)):
550
- """Select a registered hosted DataSource without changing the active local runtime."""
551
- state = request.app.state.runtime
552
- current = state.hosted_bootstrap
553
- if not state.config.local_mode or current is None:
554
- raise HTTPException(403, "Hosted DataSource preparation is available only in Local mode.")
555
- if not current.lock.acquire(blocking=False):
556
- raise HTTPException(409, "Hosted DataSource configuration is already in progress.")
557
- try:
558
- if request.app.state.runtime.hosted_bootstrap is not current:
559
- raise HTTPException(409, "Hosted DataSource configuration changed. Refresh Settings.")
560
- source = registered_hosted_source(request, body.source_uid)
561
- candidate = RuntimeBootstrap(replace(state.config, local_mode=False),
562
- replace(state.identity, workspace=None))
563
- try:
564
- candidate.selected_source_uid = str(body.source_uid)
565
- candidate.configure(source, caller.user_uid)
566
- if candidate.status == "unavailable":
567
- raise BootstrapError(candidate.error or "Cannot verify the hosted DataSource connection.")
568
- persist_registered_selection(candidate)
569
- request.app.state.runtime = replace(request.app.state.runtime, hosted_bootstrap=candidate)
570
- current.close()
571
- return candidate.descriptor(caller.user_uid, is_admin=caller.is_admin)
572
- except BootstrapError as exc:
573
- candidate.close()
574
- raise HTTPException(409, str(exc)) from None
575
- except Exception:
576
- candidate.close()
577
- raise HTTPException(503, "Unable to save the hosted DataSource configuration.") from None
578
- finally:
579
- current.lock.release()
580
-
581
-
582
547
  @router.post("/select/", response_model=RuntimeBootstrapDescriptor)
583
548
  def select_hosted_runtime_source(body: RuntimeSourceSelection, request: Request,
584
549
  caller: AdmittedCaller = Depends(require_admin)):
550
+ # Each mode selects only its own registrations; Local never prepares Hosted.
585
551
  if request.app.state.runtime.config.local_mode:
586
- raise HTTPException(409, "Use hosted selection while Local mode is active.")
552
+ raise HTTPException(409, "Switch to Hosted before selecting its DataSource.")
587
553
  source = registered_hosted_source(request, body.source_uid)
588
554
  with mutation(request, caller) as current:
589
555
  state = request.app.state.runtime
@@ -115,9 +115,6 @@ def create_app(config: RuntimeConfig | None = None) -> FastAPI:
115
115
  finally:
116
116
  if bootstrap:
117
117
  bootstrap.close()
118
- hosted_bootstrap = _app.state.runtime.hosted_bootstrap
119
- if hosted_bootstrap:
120
- hosted_bootstrap.close()
121
118
 
122
119
  service = FastAPI(title="MetaTables API", version="0.1.0", lifespan=lifespan)
123
120
  from metatables.api.backend.backends.contracts import SQLExecutionError
@@ -54,8 +54,14 @@ def registrations():
54
54
  return source_registrations
55
55
 
56
56
 
57
+ def hosted_registry(request):
58
+ # The saved registry holds Hosted registrations only; Local lists its catalog.
59
+ runtime = request.app.state.runtime
60
+ return runtime.bootstrap is not None and not runtime.config.local_mode
61
+
62
+
57
63
  def saved_rows(request):
58
- if request.app.state.runtime.bootstrap is None:
64
+ if not hosted_registry(request):
59
65
  return {}
60
66
  store = registrations()
61
67
  return store.read_registry(store.registry_path(request))
@@ -67,7 +73,7 @@ def saved_source(uid, request, session):
67
73
 
68
74
 
69
75
  def remember_source(row, request):
70
- if request.app.state.runtime.bootstrap is not None:
76
+ if hosted_registry(request):
71
77
  registrations().remember(row, request)
72
78
 
73
79
  class SourceRoute(APIRoute):
@@ -179,7 +185,7 @@ def payload(row, actor, binding, request=None):
179
185
 
180
186
 
181
187
  def selected_source(uid, request):
182
- if request is None or request.app.state.runtime.bootstrap is None:
188
+ if request is None or not hosted_registry(request):
183
189
  return False
184
190
  return registrations().selected_uid(request) == str(uid)
185
191
 
@@ -372,7 +378,7 @@ def delete_source(uid: UUID, request: Request, actor: TrustedActorFacts = Depend
372
378
  raise HTTPException(409, "Default or referenced DataSources cannot be removed.")
373
379
  session.delete(row)
374
380
  session.commit()
375
- if request.app.state.runtime.bootstrap is not None:
381
+ if hosted_registry(request):
376
382
  registrations().forget(uid, request)
377
383
  return Response(status_code=204)
378
384
 
@@ -87,7 +87,6 @@ def runtime_context(
87
87
  "git_source": source_descriptor(workspace.source) if workspace else None,
88
88
  "data_source_selection": selection,
89
89
  "bootstrap": state.bootstrap.descriptor(caller.user_uid, is_admin=caller.is_admin) if state.bootstrap else None,
90
- "hosted_bootstrap": state.hosted_bootstrap.descriptor(caller.user_uid, is_admin=caller.is_admin) if state.hosted_bootstrap else None,
91
90
  "data_source_error": None,
92
91
  "data_source": None, "dialect": None, "paramstyle": None,
93
92
  "default_schema": None,
@@ -211,7 +211,6 @@ class RuntimeState:
211
211
  credential_store: CredentialStore = field(default_factory=UnavailableCredentialStore, repr=False, compare=False)
212
212
  binding: RuntimeStorageBinding = field(default_factory=RuntimeStorageBinding)
213
213
  bootstrap: object | None = None
214
- hosted_bootstrap: object | None = None
215
214
  actor_facts_cache: PlatformCache[tuple[bool, UUID], tuple[frozenset[UUID], bool]] = field(
216
215
  default_factory=PlatformCache, repr=False, compare=False)
217
216
  environment_cache: PlatformCache[UUID, HostedEnvironment] = field(
@@ -247,18 +246,7 @@ def initialize_runtime(config: RuntimeConfig) -> RuntimeState:
247
246
  except Exception:
248
247
  bootstrap.status = "unavailable"
249
248
  bootstrap.error = "Saved runtime configuration is invalid. Configure the DataSource again in Settings."
250
- hosted_bootstrap = None
251
- if config.local_mode:
252
- hosted_bootstrap = RuntimeBootstrap(replace(config, local_mode=False), replace(identity, workspace=None))
253
- hosted_candidate = hosted_bootstrap.initial_candidate()
254
- if hosted_candidate:
255
- try:
256
- hosted_bootstrap.configure(hosted_candidate, None)
257
- except Exception:
258
- hosted_bootstrap.status = "unavailable"
259
- hosted_bootstrap.error = "Saved hosted DataSource is invalid. Configure it again in Settings."
260
- state = RuntimeState(config=config, identity=identity, bootstrap=bootstrap, hosted_bootstrap=hosted_bootstrap,
261
- credential_store=credentials)
249
+ state = RuntimeState(config=config, identity=identity, bootstrap=bootstrap, credential_store=credentials)
262
250
  if identity is not None and identity.actor_facts is not None:
263
251
  state.actor_facts_cache.seed((True, identity.user_uid), identity.actor_facts,
264
252
  expires_at=identity.facts_expires_at)
@@ -61,7 +61,6 @@ class RuntimeContext(BaseModel):
61
61
  data_source_selection: Literal["local_workspace", "catalog_default", "runtime_override", "runtime_binding"] = "catalog_default"
62
62
  data_source_error: str | None = None
63
63
  bootstrap: RuntimeBootstrapDescriptor | None = None
64
- hosted_bootstrap: RuntimeBootstrapDescriptor | None = None
65
64
  dialect: Literal["sqlite", "postgresql", "mysql", "mssql"] | None
66
65
  paramstyle: Literal["named", "pyformat", "qmark"] | None
67
66
  data_source: dict | None
@@ -53,7 +53,7 @@ def test_runtime_descriptor_distinguishes_switch_target_from_active_environment(
53
53
  uid = uuid4()
54
54
  environment = HostedEnvironment(uid=str(uid), name="Development", status="verified")
55
55
  state = SimpleNamespace(config=SimpleNamespace(local_mode=local, developer_mode=True,
56
- configuration_path=None, expected_host="127.0.0.1:18473"), workspace=None, bootstrap=None, hosted_bootstrap=None,
56
+ configuration_path=None, expected_host="127.0.0.1:18473"), workspace=None, bootstrap=None,
57
57
  binding=SimpleNamespace(source_uid=None), environment_cache=PlatformCache(),
58
58
  credential_store=SimpleNamespace(descriptor=lambda: dict(provider="unconfigured", status="uninitialized", error=None)))
59
59
  control = SimpleNamespace(instance_id="worker", error=None, shutdown=lambda: None) if switch_available else None