mainsequence-metatable 0.1.18.dev30__tar.gz → 0.1.19.dev31__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 (539) hide show
  1. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.agents/skills/client/metatables-local-development/SKILL.md +21 -30
  2. {mainsequence_metatable-0.1.18.dev30/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.19.dev31}/PKG-INFO +1 -1
  3. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +6 -0
  4. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +9 -1
  5. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/authentication-and-errors.md +2 -2
  6. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/openapi.json +0 -83
  7. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/overview.md +5 -7
  8. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/reference.md +0 -1
  9. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/installation-and-connection.md +5 -4
  10. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/tutorial.md +1 -1
  11. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/README.md +5 -6
  12. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/configuration.md +7 -9
  13. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/hosted-runtime.md +0 -8
  14. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/local-runtime.md +24 -35
  15. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/security/permissions.md +1 -1
  16. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/pyproject.toml +1 -1
  17. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_boundaries.py +4 -5
  18. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
  19. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -1
  20. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/development.py +16 -67
  21. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/development_client.py +2 -2
  22. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/main.py +2 -2
  23. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/runtime_context.py +0 -18
  24. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/runtime.py +0 -20
  25. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/runtime_control.py +11 -59
  26. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/local_workspace.py +2 -5
  27. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/app.py +11 -3
  28. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/local.py +52 -61
  29. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/README.md +5 -6
  30. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/local_connection.py +25 -17
  31. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/local_files.py +7 -0
  32. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/models.py +0 -2
  33. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/runtime_context.py +1 -32
  34. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/runtime_contract.py +0 -3
  35. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_development_client.py +14 -11
  36. mainsequence_metatable-0.1.19.dev31/tests/auth/test_hosted_environment_target.py +38 -0
  37. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_local_mode.py +5 -21
  38. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_runtime_scaffold.py +1 -3
  39. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_runtime_selection.py +19 -64
  40. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_local_cli_workflow.py +3 -3
  41. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_local_client_selection.py +27 -6
  42. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_sqlite_runtime.py +2 -17
  43. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_security_api.py +0 -1
  44. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/uv.lock +1 -1
  45. mainsequence_metatable-0.1.18.dev30/tests/auth/test_hosted_environment_target.py +0 -77
  46. mainsequence_metatable-0.1.18.dev30/tests/e2e/test_runtime_transition.py +0 -196
  47. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
  48. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
  49. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  50. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  51. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/.mainsequence/workflows/metatables-api.yaml +0 -0
  52. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/LICENSE +0 -0
  53. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/MANIFEST.in +0 -0
  54. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/README.md +0 -0
  55. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/alembic.ini +0 -0
  56. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/api/metatables/main.py +0 -0
  57. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/compose.database-tests.yml +0 -0
  58. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  59. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  60. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  61. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  62. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  63. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  64. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  65. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  66. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0009-shared-credential-store.md +0 -0
  67. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  68. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  69. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  70. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  71. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
  72. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/api/0016-impact-preflight.md +0 -0
  73. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  74. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/adr/index.md +0 -0
  75. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/data-sources.md +0 -0
  76. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/tables-and-migrations.md +0 -0
  77. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/api/time-index-and-updates.md +0 -0
  78. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/assets/branding/metatables.svg +0 -0
  79. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/assets/diagrams/local-client-experience.svg +0 -0
  80. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/bounded-transfers.md +0 -0
  81. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/build-an-updater.md +0 -0
  82. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/define-and-migrate-tables.md +0 -0
  83. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/deploy-application-migrations.md +0 -0
  84. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/local-storage.md +0 -0
  85. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/query-and-mutate.md +0 -0
  86. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/quickstart.md +0 -0
  87. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/read-existing-time-index-tables.md +0 -0
  88. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/register-existing-tables.md +0 -0
  89. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/client/upgrade-legacy-app.md +0 -0
  90. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/architecture.md +0 -0
  91. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/data-sources.md +0 -0
  92. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/identity-and-scope.md +0 -0
  93. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/permissions-namespaces-labels.md +0 -0
  94. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/runs-and-execution-graphs.md +0 -0
  95. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  96. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/concepts/time-index-tables-and-updates.md +0 -0
  97. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/contributing/architecture-and-boundaries.md +0 -0
  98. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/contributing/database-backends.md +0 -0
  99. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/contributing/documentation.md +0 -0
  100. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/contributing/releasing.md +0 -0
  101. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/contributing/testing.md +0 -0
  102. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/README.md +0 -0
  103. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/__init__.py +0 -0
  104. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/bounded_reader.py +0 -0
  105. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/data_sources/README.md +0 -0
  106. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/data_sources/mssql.json +0 -0
  107. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/data_sources/mysql.json +0 -0
  108. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/data_sources/postgresql.json +0 -0
  109. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/data_sources/register.py +0 -0
  110. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/external_table.py +0 -0
  111. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/README.md +0 -0
  112. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/__init__.py +0 -0
  113. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/__main__.py +0 -0
  114. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/migrations/__init__.py +0 -0
  115. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/migrations/env.py +0 -0
  116. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/migrations/script.py.mako +0 -0
  117. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  118. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/local_app/tables.py +0 -0
  119. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/query.py +0 -0
  120. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/quickstart.py +0 -0
  121. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/reader.py +0 -0
  122. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/scripts/__init__.py +0 -0
  123. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/scripts/setup_metatables.py +0 -0
  124. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tables.py +0 -0
  125. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/__init__.py +0 -0
  126. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/__main__.py +0 -0
  127. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/data/README.md +0 -0
  128. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  129. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/frames.py +0 -0
  130. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/__init__.py +0 -0
  131. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/env.py +0 -0
  132. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/registry.py +0 -0
  133. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  134. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  135. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  136. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  137. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  138. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/operations.py +0 -0
  139. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/tables.py +0 -0
  140. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/tutorial/updaters.py +0 -0
  141. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/examples/updater.py +0 -0
  142. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/index.md +0 -0
  143. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/catalog-migrations.md +0 -0
  144. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/recovery-and-observability.md +0 -0
  145. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/run-history.md +0 -0
  146. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/operations/run-logs.md +0 -0
  147. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/reference/capabilities.md +0 -0
  148. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/reference/cli.md +0 -0
  149. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/reference/python.md +0 -0
  150. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/security/index.md +0 -0
  151. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/docs/security/ownership-and-sharing.md +0 -0
  152. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/mkdocs.yml +0 -0
  153. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/__init__.py +0 -0
  154. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/build_reference.py +0 -0
  155. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_client_api_coverage.py +0 -0
  156. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_distribution_sources.py +0 -0
  157. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_docs.py +0 -0
  158. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_examples_debug.py +0 -0
  159. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/check_project.py +0 -0
  160. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/dev_release_version.py +0 -0
  161. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/test_databases.py +0 -0
  162. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/scripts/test_postgresql.py +0 -0
  163. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/setup.cfg +0 -0
  164. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  165. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  166. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
  167. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  168. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/__init__.py +0 -0
  169. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/_admin_source.json +0 -0
  170. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/_build.py +0 -0
  171. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/_skill_bundle.py +0 -0
  172. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/__init__.py +0 -0
  173. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/__init__.py +0 -0
  174. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/auth/__init__.py +0 -0
  175. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/auth/boundary.py +0 -0
  176. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/auth/caller_assertions.py +0 -0
  177. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/auth/local_actor.py +0 -0
  178. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/bootstrap.py +0 -0
  179. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/configuration.py +0 -0
  180. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/credential_admin.py +0 -0
  181. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/error_logging.py +0 -0
  182. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/platform_cache.py +0 -0
  183. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/__init__.py +0 -0
  184. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/column_search.py +0 -0
  185. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/contract_validation.py +0 -0
  186. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/data_sources.py +0 -0
  187. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  188. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/migration_connection.py +0 -0
  189. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/namespaces.py +0 -0
  190. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/run_logs.py +0 -0
  191. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/schema_graph.py +0 -0
  192. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/security.py +0 -0
  193. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_cascade.py +0 -0
  194. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_crud.py +0 -0
  195. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_delete.py +0 -0
  196. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_filter.py +0 -0
  197. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_import.py +0 -0
  198. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_introspection.py +0 -0
  199. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_patch.py +0 -0
  200. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_registration.py +0 -0
  201. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_response.py +0 -0
  202. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_search_document.py +0 -0
  203. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_sql.py +0 -0
  204. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  205. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  206. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  207. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  208. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/timescale_policies.py +0 -0
  209. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_batch.py +0 -0
  210. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  211. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_constants.py +0 -0
  212. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_crud.py +0 -0
  213. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_details.py +0 -0
  214. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_graph.py +0 -0
  215. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  216. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_registration.py +0 -0
  217. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_runs.py +0 -0
  218. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/routes/update_statistics.py +0 -0
  219. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/runtime_database.py +0 -0
  220. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/source_passwords.py +0 -0
  221. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/app/transfer.py +0 -0
  222. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/__init__.py +0 -0
  223. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/__init__.py +0 -0
  224. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/access.py +0 -0
  225. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  226. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  227. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  228. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  229. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  230. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  231. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  232. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  233. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  234. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  235. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  236. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  237. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  238. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  239. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  240. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  241. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  242. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  243. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  244. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  245. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  246. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/catalog.py +0 -0
  247. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  248. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  249. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/contracts.py +0 -0
  250. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/hosted.py +0 -0
  251. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  252. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  253. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/native.py +0 -0
  254. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/operations.py +0 -0
  255. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/pages.py +0 -0
  256. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  257. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/registry.py +0 -0
  258. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  259. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/relational.py +0 -0
  260. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  261. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  262. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/streaming.py +0 -0
  263. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/backends/timescale.py +0 -0
  264. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/contracts/__init__.py +0 -0
  265. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  266. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  267. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  268. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/contracts/values.py +0 -0
  269. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/__init__.py +0 -0
  270. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  271. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  272. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  273. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/label_rules.py +0 -0
  274. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  275. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/domain/update_constants.py +0 -0
  276. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/__init__.py +0 -0
  277. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  278. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  279. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  280. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  281. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  282. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  283. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  284. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  285. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  286. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  287. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/__init__.py +0 -0
  288. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/env.py +0 -0
  289. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  290. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  291. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  292. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  293. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  294. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  295. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  296. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  297. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  298. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
  299. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
  300. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  301. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/__init__.py +0 -0
  302. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  303. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  304. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/create_table.py +0 -0
  305. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  306. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/import_relations.py +0 -0
  307. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  308. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  309. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  310. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/operations/search_documents.py +0 -0
  311. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/__init__.py +0 -0
  312. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/cascade.py +0 -0
  313. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/catalog.py +0 -0
  314. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/database.py +0 -0
  315. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/grants.py +0 -0
  316. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/impact.py +0 -0
  317. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/labels.py +0 -0
  318. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/locking.py +0 -0
  319. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/models.py +0 -0
  320. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  321. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/projections.py +0 -0
  322. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  323. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  324. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  325. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  326. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  327. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/table_response.py +0 -0
  328. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  329. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  330. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/updates.py +0 -0
  331. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  332. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  333. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/metatables/__init__.py +0 -0
  334. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/metatables/configuration.yaml +0 -0
  335. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/api/metatables/main.py +0 -0
  336. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/__init__.py +0 -0
  337. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/admin_install.py +0 -0
  338. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/filters.py +0 -0
  339. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/migrations.py +0 -0
  340. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/project.py +0 -0
  341. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/cli/skills.py +0 -0
  342. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/compiled_sql/__init__.py +0 -0
  343. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/compiled_sql/mssql.py +0 -0
  344. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/compiled_sql/v1.py +0 -0
  345. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/dtype_codec.py +0 -0
  346. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/endpoint.py +0 -0
  347. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/README.md +0 -0
  348. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/__init__.py +0 -0
  349. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/bounded_reader.py +0 -0
  350. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/data_sources/README.md +0 -0
  351. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/data_sources/mssql.json +0 -0
  352. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/data_sources/mysql.json +0 -0
  353. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/data_sources/postgresql.json +0 -0
  354. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/data_sources/register.py +0 -0
  355. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/external_table.py +0 -0
  356. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/README.md +0 -0
  357. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/__init__.py +0 -0
  358. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/__main__.py +0 -0
  359. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  360. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/migrations/env.py +0 -0
  361. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  362. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  363. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/local_app/tables.py +0 -0
  364. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/query.py +0 -0
  365. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/quickstart.py +0 -0
  366. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/reader.py +0 -0
  367. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/scripts/__init__.py +0 -0
  368. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  369. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tables.py +0 -0
  370. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/__init__.py +0 -0
  371. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/__main__.py +0 -0
  372. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/data/README.md +0 -0
  373. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  374. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/frames.py +0 -0
  375. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  376. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  377. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  378. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  379. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  380. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  381. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  382. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  383. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/operations.py +0 -0
  384. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/tables.py +0 -0
  385. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/tutorial/updaters.py +0 -0
  386. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/examples/updater.py +0 -0
  387. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/future_registry.py +0 -0
  388. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/hashing.py +0 -0
  389. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/instrumentation.py +0 -0
  390. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/local_run_logs.py +0 -0
  391. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/log_contract.py +0 -0
  392. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/__init__.py +0 -0
  393. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/alembic.py +0 -0
  394. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/connection.py +0 -0
  395. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/env.py +0 -0
  396. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/provider.py +0 -0
  397. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/registry.py +0 -0
  398. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/runner.py +0 -0
  399. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/scaffold.py +0 -0
  400. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/sqlite.py +0 -0
  401. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/templates/__init__.py +0 -0
  402. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/templates/env.py.mako +0 -0
  403. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/templates/script.py.mako +0 -0
  404. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/migrations/tls.py +0 -0
  405. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/pydantic_metadata.py +0 -0
  406. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/run_logging.py +0 -0
  407. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/runtime.py +0 -0
  408. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/schema_names.py +0 -0
  409. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/sdk_compat.py +0 -0
  410. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/sqlalchemy_contracts.py +0 -0
  411. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/storage_layout_contract.py +0 -0
  412. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/time_index_table_refs.py +0 -0
  413. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/transfer.py +0 -0
  414. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/transfer_contract.py +0 -0
  415. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/transport.py +0 -0
  416. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/update_configuration_contract.py +0 -0
  417. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/__init__.py +0 -0
  418. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/configuration.py +0 -0
  419. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/dependencies.py +0 -0
  420. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/managers.py +0 -0
  421. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/namespacing.py +0 -0
  422. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/runner.py +0 -0
  423. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/updaters.py +0 -0
  424. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/updaters/utils.py +0 -0
  425. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/src/metatables/upload.py +0 -0
  426. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_bootstrap_failure_cause.py +0 -0
  427. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_caller_assertions.py +0 -0
  428. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_data_source_identity.py +0 -0
  429. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_platform_fact_cache.py +0 -0
  430. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_runtime_bootstrap.py +0 -0
  431. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_runtime_database.py +0 -0
  432. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_runtime_storage_binding.py +0 -0
  433. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/auth/test_source_passwords.py +0 -0
  434. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/catalog/test_catalog_foundation.py +0 -0
  435. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/catalog/test_contract_projection.py +0 -0
  436. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/catalog/test_database_config.py +0 -0
  437. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/catalog/test_index_statistics.py +0 -0
  438. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/catalog/test_migration.py +0 -0
  439. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/conftest.py +0 -0
  440. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/capabilities.json +0 -0
  441. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/client_signatures.json +0 -0
  442. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/database_operations.json +0 -0
  443. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_bounded_transfer.py +0 -0
  444. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_compiler_runtime_source.py +0 -0
  445. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_relation_batching.py +0 -0
  446. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_relation_import.py +0 -0
  447. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_storage_layouts.py +0 -0
  448. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/contracts/test_table_contracts.py +0 -0
  449. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/Dockerfile +0 -0
  450. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/Dockerfile.dockerignore +0 -0
  451. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/__init__.py +0 -0
  452. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/conftest.py +0 -0
  453. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/provider/__init__.py +0 -0
  454. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/provider/env.py +0 -0
  455. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  456. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_api_contract.py +0 -0
  457. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_application_migration.py +0 -0
  458. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  459. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_catalog_contract.py +0 -0
  460. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_credential_catalog.py +0 -0
  461. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_physical_contract.py +0 -0
  462. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_relation_import.py +0 -0
  463. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  464. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_sql_security.py +0 -0
  465. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_backend/test_update_client.py +0 -0
  466. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_operations/test_physical_operations.py +0 -0
  467. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_operations/test_postgresql_operations.py +0 -0
  468. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  469. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/documentation/test_project_checks.py +0 -0
  470. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_admin_installation.py +0 -0
  471. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_api_endpoint.py +0 -0
  472. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_application_owned_migrations.py +0 -0
  473. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_catalog_outage.py +0 -0
  474. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_api_contract.py +0 -0
  475. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_api_coverage.py +0 -0
  476. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_migration_scaffold.py +0 -0
  477. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_migration_tls.py +0 -0
  478. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_package.py +0 -0
  479. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_signatures.py +0 -0
  480. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_client_value_behaviors.py +0 -0
  481. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_data_source_registry.py +0 -0
  482. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_local_actor_client_api.py +0 -0
  483. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  484. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_namespaces_admin_http.py +0 -0
  485. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_public_imports.py +0 -0
  486. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_remaining_client_routes.py +0 -0
  487. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_run_graphs.py +0 -0
  488. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_run_logs.py +0 -0
  489. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_runtime_upgrade.py +0 -0
  490. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_sdk_local_startup.py +0 -0
  491. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_delete_client_api.py +0 -0
  492. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_filter_client_api.py +0 -0
  493. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_introspection_client_api.py +0 -0
  494. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_patch_client_api.py +0 -0
  495. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_search_document_api.py +0 -0
  496. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_stats_api.py +0 -0
  497. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_update_pipeline.py +0 -0
  498. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_table_updates_http.py +0 -0
  499. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  500. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  501. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_timescale_policies_client_api.py +0 -0
  502. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_update_batch_client_api.py +0 -0
  503. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  504. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  505. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  506. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/e2e/test_update_registration_client_api.py +0 -0
  507. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/examples/test_documented_examples.py +0 -0
  508. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/examples/test_postgresql_examples.py +0 -0
  509. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/examples/test_setup_launch.py +0 -0
  510. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/examples/test_tutorial.py +0 -0
  511. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_credential_store.py +0 -0
  512. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_data_source_rules.py +0 -0
  513. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_local_data_sources.py +0 -0
  514. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_local_run_logs.py +0 -0
  515. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_postgresql_connection.py +0 -0
  516. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_postgresql_sql.py +0 -0
  517. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_postgresql_tables.py +0 -0
  518. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  519. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_source_validation.py +0 -0
  520. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/integrations/test_sqlite_operations.py +0 -0
  521. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/labels/test_labels.py +0 -0
  522. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_create_table_operation.py +0 -0
  523. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_create_table_postgres.py +0 -0
  524. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_physical_operation_journal.py +0 -0
  525. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_register_catalog.py +0 -0
  526. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_search_documents.py +0 -0
  527. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/operations/test_timescale_policies.py +0 -0
  528. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/packaging/test_client_skills.py +0 -0
  529. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/packaging/test_dev_release_version.py +0 -0
  530. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/packaging/test_distribution_sources.py +0 -0
  531. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/packaging/test_editable_build.py +0 -0
  532. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/packaging/test_installed_distribution.py +0 -0
  533. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_governed_sql_scope.py +0 -0
  534. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_local_actor_membership.py +0 -0
  535. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_migration_boundary.py +0 -0
  536. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_namespace_grants.py +0 -0
  537. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_table_body_filter.py +0 -0
  538. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_table_grants.py +0 -0
  539. {mainsequence_metatable-0.1.18.dev30 → mainsequence_metatable-0.1.19.dev31}/tests/permissions/test_table_queries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: metatables-local-development
3
- description: "Develop and test applications using the installed MetaTables client against local SQLite before returning to the intended environment database. Covers project/API/Admin setup, runtime verification, isolated fixtures, application-owned migrations and switching back after verification. Excludes MetaTables client/API implementation and hosted frontend deployment."
3
+ description: "Develop and test applications using the installed MetaTables client against local SQLite before returning to the intended environment database. Covers project/API/Admin setup, runtime verification, isolated fixtures, application-owned migrations and returning to the environment after verification. Excludes MetaTables client/API implementation and hosted frontend deployment."
4
4
  ---
5
5
 
6
6
  # Local-first MetaTables application development
@@ -25,17 +25,17 @@ Three controls have different meanings:
25
25
 
26
26
  - `local_mode_available: true` permits local development; it does not select the
27
27
  current database. `metatables init --local` prepares this configuration.
28
- - `metatables serve --local` starts the API in Local mode. Add `--admin` to run
29
- the existing Vite development frontend. Admin Settings can subsequently switch
30
- that running API to Hosted without changing its loopback address.
31
- - Global `metatables --local ...` and `configure_local_client()` select the
32
- project's running API connection. They do not force its database back to Local.
28
+ - `metatables serve --local` starts the laptop's one local API, always in Local
29
+ mode. Add `--admin` to run the existing Vite development frontend. Running it in
30
+ another project while the API is up reports the running API and exits.
31
+ - Global `metatables --local ...` and `configure_local_client()` select that
32
+ running API from any checkout.
33
33
 
34
34
  Before migrations or a batch of test writes, inspect the API's actual runtime.
35
35
  A loopback URL, a local token, a test namespace or an updater hash is not proof of
36
36
  storage isolation. Require `local_mode: true`; after initialization also require
37
37
  `dialect: sqlite` and the expected local runtime DataSource. If these disagree,
38
- stop the mutating work and select Local in Settings or restart with `serve --local`.
38
+ stop the mutating work and restart with `serve --local`.
39
39
  Do not retry against automatic hosted discovery when a local connection fails.
40
40
 
41
41
  ## One local runtime per laptop
@@ -131,8 +131,8 @@ Run pure contract/frame checks first, then the smallest useful API integration
131
131
  case: apply the reviewed provider, seed a small fixture, execute the query or
132
132
  producer, read and assert its output, and repeat to verify the intended incremental
133
133
  or idempotent behavior. For a persistence claim, restart and read existing rows
134
- before seeding again. Recheck runtime state after any restart or mode/source change;
135
- do not switch modes while tests or producers are running.
134
+ before seeding again. Recheck runtime state after any restart or source change;
135
+ do not change the runtime source while tests or producers are running.
136
136
 
137
137
  Local storage persists across launches, and other projects' tables and fixtures share
138
138
  the same runtime. A new branch or project does not create a fresh test database. Use
@@ -153,11 +153,11 @@ Revisions need no SQLite variants: column and constraint changes run through Ale
153
153
  batch mode. Only raw PostgreSQL SQL must check `op.get_bind().dialect.name`. Do not use the shared environment database as the default
154
154
  integration-test fixture.
155
155
 
156
- ## Finish verification and switch back
156
+ ## Finish verification and return to the environment
157
157
 
158
158
  Record what passed, the runtime/DataSource used, and any engine-specific work still
159
159
  unverified. Commit the reviewed application code and its migration revisions together;
160
- local rows, catalog UIDs, credentials and fixture data are not promoted by a switch.
160
+ local rows, catalog UIDs, credentials and fixture data are never promoted.
161
161
  The application's deployment workflow applies those revisions to the hosted runtime
162
162
  before the code rolls out; see the [migrations skill](../metatables-migrations/SKILL.md)
163
163
  and `docs/client/deploy-application-migrations.md`. Add the migration Job if the
@@ -165,20 +165,15 @@ workflow lacks one.
165
165
 
166
166
  When returning to the environment is part of the requested workflow:
167
167
 
168
- 1. Finish local tests and stop active writers. In Admin **Settings → Runtime mode**,
169
- inspect the displayed hosted environment and use **Switch to Hosted**. Hosted
170
- opens the runtime database the API's deployment declares, through the same
171
- Environment Secret; there is no DataSource to choose and the launcher never
172
- migrates it. This changes the API worker and database; it does not copy or merge
173
- the local database. Leave local capability enabled if the developer needs to
174
- switch back later.
168
+ 1. Finish local tests and stop active writers. The local API stays Local; it has
169
+ no switch to Hosted. Reach the environment through its deployed API: start a
170
+ fresh client process without `--local` or `configure_local_client()`, following
171
+ the installation guide's hosted endpoint selection, and use the deployed Admin
172
+ for hosted data. Remove only transport overrides introduced for local work.
175
173
  2. Re-read runtime status and verify `local_mode: false`, the intended verified
176
174
  hosted environment, the expected DataSource and readiness. `migration_required`
177
- means the branch has system migrations the deployed API does not have yet; it
178
- clears once that code is deployed. The same local
179
- connection command still reaches this supervised API; its `--local` flag alone
180
- does not prove SQLite. If the switch fails and the old worker is restored,
181
- report the actual mode instead of claiming the switch succeeded.
175
+ means the deployed API's database has pending system migrations; its deployment
176
+ applies them.
182
177
  3. Restart application/test client processes and resolve catalog bindings again.
183
178
  Do not reuse local table UIDs or already-bound updater instances against the
184
179
  environment database. Do not apply application revisions from this session;
@@ -187,10 +182,6 @@ When returning to the environment is part of the requested workflow:
187
182
  requested scope; passing local tests is not itself a request to seed fixtures
188
183
  or run backfills.
189
184
 
190
- If the user instead wants to connect to a separately deployed API, follow the
191
- installation guide's hosted endpoint selection. Restore prior connection settings
192
- and start a fresh client process without `configure_local_client()`; remove only
193
- transport overrides introduced for local work. Do not redirect the SDK platform
194
- endpoint, invent `serve --hosted`, or use an environment-variable runtime toggle.
195
- A task limited to local development can finish with verified local results and
196
- clear remaining steps, without switching the runtime or modifying hosted data.
185
+ Do not redirect the SDK platform endpoint, invent `serve --hosted`, or use an
186
+ environment-variable runtime toggle. A task limited to local development can finish
187
+ with verified local results and clear remaining steps, without modifying hosted data.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.18.dev30
3
+ Version: 0.1.19.dev31
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
@@ -6,6 +6,12 @@
6
6
  > conflicting application-migration execution and credential restrictions;
7
7
  > governed API operations and MetaTables system migrations remain separate.
8
8
 
9
+ > Amendment (2026-10-03): the developer launcher is always Local. Runtime switching
10
+ > (`POST /runtime-mode/`, **Settings → Runtime mode**, `.local/runtime-selection.json`
11
+ > and the launcher's Hosted worker) is removed, superseding this ADR's switching
12
+ > sections. Hosted data is reached through the deployed API and Admin, or from a
13
+ > client without `--local`.
14
+
9
15
 
10
16
  Date: 2026-09-28
11
17
 
@@ -5,6 +5,13 @@
5
5
  > Applications now load providers and execute Alembic through the client using
6
6
  > their environment connection. Launcher/Admin installation decisions remain valid.
7
7
 
8
+ > Amendment (2026-10-03): the laptop runs one local API, matching its one local
9
+ > runtime. The launcher publishes its connection as `server.json` in the local storage
10
+ > directory instead of a per-project `.local/development-client.json`, and every
11
+ > checkout connects through it. `serve --local` in another project reports the
12
+ > running API and exits. The API no longer rejects clients from another checkout
13
+ > or branch, and commits never require an API restart.
14
+
8
15
 
9
16
  Date: 2026-09-30
10
17
 
@@ -200,7 +207,8 @@ SDK authentication and API identity refresh requirements still apply.
200
207
  | Location | Contents and execution context |
201
208
  | --- | --- |
202
209
  | Consuming application's Python environment | Installed MetaTables client/API and application migration providers. Use this interpreter to start the API. |
203
- | Consuming application directory | `configuration.yaml`, Git context, runtime selection and `.local/development-client.json`. This is the API working directory. |
210
+ | Consuming application directory | `configuration.yaml`, Git context and runtime selection of the project that launched the API. This is the API working directory. |
211
+ | Local storage directory | The shared SQLite runtime and `server.json`, the running API's private connection for every checkout. |
204
212
  | Managed Admin directory or `--admin-path` | Frontend source, `package-lock.json` and `node_modules`. This is Vite's working directory. |
205
213
  | Existing API-selected storage | SQLite system catalog, credentials and application rows; initialization and selection remain API-owned. |
206
214
 
@@ -41,8 +41,8 @@ admission after cache expiry, with a maximum one-hour cache lifetime. Reads do
41
41
  not extend that lifetime. Table and namespace grants are checked live against
42
42
  the catalog, so their revocation does not wait for the platform-fact cache.
43
43
  An expired entry whose refresh fails returns 503; it cannot supply stale access.
44
- Restart the API after changing its SDK account or endpoint. Worker restarts and
45
- runtime-mode changes discard caches. No cache environment variables are needed.
44
+ Restart the API after changing its SDK account or endpoint. Worker restarts
45
+ discard caches. No cache environment variables are needed.
46
46
 
47
47
  Environment display metadata is cached separately for one hour, including
48
48
  not-found and unavailable results. `/runtime-context/` still reads current runtime,
@@ -3148,16 +3148,6 @@
3148
3148
  }
3149
3149
  ]
3150
3150
  },
3151
- "hosted_environment_target": {
3152
- "anyOf": [
3153
- {
3154
- "$ref": "#/components/schemas/HostedEnvironment"
3155
- },
3156
- {
3157
- "type": "null"
3158
- }
3159
- ]
3160
- },
3161
3151
  "is_admin": {
3162
3152
  "default": false,
3163
3153
  "title": "Is Admin",
@@ -3200,22 +3190,6 @@
3200
3190
  ],
3201
3191
  "title": "Runtime Instance Id"
3202
3192
  },
3203
- "runtime_switch_available": {
3204
- "default": false,
3205
- "title": "Runtime Switch Available",
3206
- "type": "boolean"
3207
- },
3208
- "runtime_switch_error": {
3209
- "anyOf": [
3210
- {
3211
- "type": "string"
3212
- },
3213
- {
3214
- "type": "null"
3215
- }
3216
- ],
3217
- "title": "Runtime Switch Error"
3218
- },
3219
3193
  "transfer_limits": {
3220
3194
  "anyOf": [
3221
3195
  {
@@ -3248,24 +3222,6 @@
3248
3222
  "title": "RuntimeContext",
3249
3223
  "type": "object"
3250
3224
  },
3251
- "RuntimeSelection": {
3252
- "additionalProperties": false,
3253
- "properties": {
3254
- "mode": {
3255
- "enum": [
3256
- "local",
3257
- "hosted"
3258
- ],
3259
- "title": "Mode",
3260
- "type": "string"
3261
- }
3262
- },
3263
- "required": [
3264
- "mode"
3265
- ],
3266
- "title": "RuntimeSelection",
3267
- "type": "object"
3268
- },
3269
3225
  "RuntimeSourceInput": {
3270
3226
  "additionalProperties": false,
3271
3227
  "properties": {
@@ -7371,45 +7327,6 @@
7371
7327
  ]
7372
7328
  }
7373
7329
  },
7374
- "/runtime-mode/": {
7375
- "post": {
7376
- "operationId": "select_runtime_runtime_mode__post",
7377
- "requestBody": {
7378
- "content": {
7379
- "application/json": {
7380
- "schema": {
7381
- "$ref": "#/components/schemas/RuntimeSelection"
7382
- }
7383
- }
7384
- },
7385
- "required": true
7386
- },
7387
- "responses": {
7388
- "202": {
7389
- "content": {
7390
- "application/json": {
7391
- "schema": {}
7392
- }
7393
- },
7394
- "description": "Successful Response"
7395
- },
7396
- "422": {
7397
- "content": {
7398
- "application/json": {
7399
- "schema": {
7400
- "$ref": "#/components/schemas/HTTPValidationError"
7401
- }
7402
- }
7403
- },
7404
- "description": "Validation Error"
7405
- }
7406
- },
7407
- "summary": "Select Runtime",
7408
- "tags": [
7409
- "Runtime"
7410
- ]
7411
- }
7412
- },
7413
7330
  "/security/access-history/": {
7414
7331
  "get": {
7415
7332
  "operationId": "security_history_security_access_history__get",
@@ -48,13 +48,11 @@ Local mode also exposes `POST /runtime-bootstrap/destroy-local/` for an explicit
48
48
  confirmed workspace reset. It removes the selected local database and returns to
49
49
  initialization without running migrations. Hosted runtimes reject this endpoint.
50
50
 
51
- The descriptor also reports `local_mode_available`, `runtime_switch_available`,
52
- `runtime_instance_id`, and `runtime_switch_error`. In a supervised developer API,
53
- `POST /runtime-mode/` with `{"mode": "local"}` or `{"mode": "hosted"}` requests a
54
- complete worker restart and returns 202. Disabled/unsupervised switching returns
55
- 403; active work returns 409. After acceptance, application
56
- requests receive 503 while the worker drains. Clients reload `/runtime-context/`
57
- and clear their views after a new instance appears. Admin sends
51
+ The descriptor also reports `local_mode_available` and `runtime_instance_id`. The
52
+ local developer API always runs Local; there is no runtime-mode switch. Runtime
53
+ reconfiguration in Settings returns 409 while other work is active, and application
54
+ requests receive 503 while it runs. Clients reload `/runtime-context/` and clear
55
+ their views after a new instance appears. Admin sends
58
56
  `X-MetaTables-Runtime-Instance`; a value from a previous runtime is rejected with
59
57
  409. The identity names the runtime binding (mode, runtime database, DataSource,
60
58
  activation and catalog revision), so it survives an API restart or deploy and is
@@ -58,7 +58,6 @@ These methods and paths are mounted by the current application. See the [OpenAPI
58
58
  | POST | `/runtime-bootstrap/migrate/` | Migrate | 200 |
59
59
  | GET | `/runtime-context/` | Runtime Context | 200 |
60
60
  | POST | `/runtime-migrations/{lease_uid}/release/` | Release Migration | 200 |
61
- | POST | `/runtime-mode/` | Select Runtime | 202 |
62
61
  | GET | `/security/access-history/` | Security History | 200 |
63
62
  | GET | `/security/database-permissions/` | Database Permission Status | 200 |
64
63
  | POST | `/security/namespaces/` | Create Namespace | 201 |
@@ -44,7 +44,8 @@ revision and refuses to replace an installation used by a running launcher.
44
44
 
45
45
  For API-only development, omit `--admin`. Set alternate ports with `--port` and
46
46
  `--admin-port`. `init` preserves existing configuration; startup never migrates a
47
- database. In another terminal in the same project:
47
+ database. The laptop runs one local API: `serve --local` in another project reports
48
+ the running API and exits. In another terminal in any project:
48
49
 
49
50
  ```bash
50
51
  metatables --local runtime status
@@ -52,7 +53,7 @@ metatables --local runtime initialize
52
53
  metatables --local meta-table list
53
54
  ```
54
55
 
55
- Global `--local` selects the project's private, live connection. A missing or
56
+ Global `--local` selects the laptop's private, live connection. A missing or
56
57
  stale connection fails locally. It never falls back to hosted discovery. The
57
58
  launcher generates the token and removes its connection file on exit. Python
58
59
  clients select it before using the public resources:
@@ -66,7 +67,7 @@ print(get_runtime_status())
66
67
  ```
67
68
 
68
69
  The API uses your SDK login for identity. Native local requests use the private
69
- launcher token and Git provenance; SDK platform credentials are not redirected to
70
+ launcher token; SDK platform credentials are not redirected to
70
71
  the local API. See the [complete write/read example](../examples/local_app/README.md)
71
72
  and [runtime guide](../operations/local-runtime.md) for explicit initialization,
72
73
  application migrations, persistence and credentials.
@@ -107,7 +108,7 @@ Use `metatables-local-development` to guide application work from local setup
107
108
  through verification and an explicit return to the intended environment. It
108
109
  checks actual runtime mode and DataSource before test writes, keeps fixtures in
109
110
  local SQLite, and distinguishes passing local tests from verification of an
110
- engine-specific feature. Switching runtimes never promotes local data.
111
+ engine-specific feature. Local data is never promoted to a hosted runtime.
111
112
 
112
113
  Rerunning the command replaces matching skill folders, including local edits to
113
114
  those folders, and preserves unrelated skill folders and namespaces. Use
@@ -87,7 +87,7 @@ These are system migrations only. The tutorial's application migrations run
87
87
  in the application's Python process through the client in both modes:
88
88
 
89
89
  ```bash
90
- python -m metatables.examples.scripts.setup_metatables --development-client .local/development-client.json
90
+ python -m metatables.examples.scripts.setup_metatables --development-client ~/.local/share/metatables/server.json
91
91
  ```
92
92
 
93
93
  Omit `--development-client` to use hosted deployment discovery. The application
@@ -32,7 +32,7 @@ so the API can execute the reviewed tutorial on a hosted deployment too.
32
32
 
33
33
  Open the MetaTables Python project and start **MetaTables: API (18473) + Admin
34
34
  (19473)**. This launcher reads `configuration.yaml`, where
35
- `local_mode_available: true` enables switching storage modes in Admin Settings.
35
+ `local_mode_available: true` enables the Local runtime.
36
36
 
37
37
  Select an example launch:
38
38
 
@@ -55,10 +55,9 @@ script itself only creates/migrates tables. To run
55
55
  and prints the API target without reading tables. There are no input prompts.
56
56
 
57
57
  The API/Admin launcher writes its current endpoint and private process token to
58
- the ignored `.local/development-client.json` with permissions `0600`, and removes
58
+ `~/.local/share/metatables/server.json` with permissions `0600`, and removes
59
59
  it on shutdown. The local example reads it before importing the SDK. The connection
60
- works with either Local or Hosted storage selected in Settings, including custom
61
- API ports. Restart an older API/Admin launch once to create this connection file.
60
+ works with custom API ports. Restart an older API/Admin launch once to create this connection file.
62
61
 
63
62
  The configuration runs `python -m metatables.examples.tutorial` using the project's `.venv`,
64
63
  and prints its selected step and API endpoint in the Debug Console.
@@ -70,7 +69,7 @@ python -m metatables.examples.tutorial update --prepare-data --root returns
70
69
  python -m metatables.examples.tutorial update --prepare-data --root volatility
71
70
  ```
72
71
 
73
- Add `--development-client .local/development-client.json` to use the running local
72
+ Add `--development-client ~/.local/share/metatables/server.json` to use the running local
74
73
  launcher, or omit it for hosted discovery.
75
74
 
76
75
  `DailyReturns` declares `RecordedPrices` as a dependency. `RollingVolatility`
@@ -118,7 +117,7 @@ the new revision. The API does not load tutorial code.
118
117
  To run migration setup alone from the repository root:
119
118
 
120
119
  ```bash
121
- python -m metatables.examples.scripts.setup_metatables --development-client .local/development-client.json
120
+ python -m metatables.examples.scripts.setup_metatables --development-client ~/.local/share/metatables/server.json
122
121
  ```
123
122
 
124
123
  For a hosted deployment, omit `--development-client`; normal endpoint discovery
@@ -19,18 +19,16 @@ to the platform and Environment and retains only the resolved endpoint
19
19
  and target identity; `/runtime-context/` continues to supply fresh DataSource
20
20
  state. See [client connection](../client/installation-and-connection.md).
21
21
 
22
- The supervisor passes runtime mode and listener/token parameters directly to each
23
- worker through a private inherited descriptor. `METATABLES_LOCAL_RUNTIME` is
22
+ The supervisor passes listener/token parameters directly to its Local worker
23
+ through a private inherited descriptor. `METATABLES_LOCAL_RUNTIME` is
24
24
  ignored. Deployment configuration is read from `configuration.yaml` in the working
25
25
  directory, or the explicit `--configuration` path on the launcher/CLI; there is no
26
26
  environment-variable override for that capability or configuration path. The
27
- migration Job and the launcher's Hosted mode read `runtime_database` from the
28
- API's packaged `configuration.yaml` instead.
27
+ migration Job reads `runtime_database` from the API's packaged `configuration.yaml`
28
+ instead.
29
29
 
30
- A developer's selected mode is persisted separately in ignored
31
- `.local/runtime-selection.json`, only after successful startup. Shared deployments
32
- use `local_mode_available: false`; the developer checkout uses `true`.
33
- See [mode switching](local-runtime.md#switch-modes-in-one-admin-site).
30
+ Shared deployments use `local_mode_available: false`; the developer checkout uses
31
+ `true`. The launcher always runs Local; see [Local only](local-runtime.md#local-only).
34
32
 
35
33
  Configure the API’s SDK session for ordinary platform Secret access and supply
36
34
  trusted caller-verifier settings. Use the SDK's own configuration contract;
@@ -49,7 +47,7 @@ by the API, and persistent across restarts. Hosted writes no selection file.
49
47
  Resolved passwords and TLS material remain in memory, never in files.
50
48
 
51
49
  Separate catalog URLs, physical-file overrides and default-source UID overrides are
52
- retired. Neither startup nor runtime-mode selection automatically runs Alembic.
50
+ retired. Startup never automatically runs Alembic.
53
51
 
54
52
  Application providers run in their own Python process through the client. Use
55
53
  `metatables migrations upgrade --provider ledger.migrations:migration` with the
@@ -167,14 +167,6 @@ application tables stay in that one database.
167
167
  The verified hosted Environment remains display metadata supplied through ordinary SDK
168
168
  interfaces. The declared database does not change SDK context or Environment requirements.
169
169
 
170
- ## Developer launcher in Hosted mode
171
-
172
- After `metatables serve --local --admin` is switched to Hosted, the launcher reads
173
- the API's packaged deployment configuration and the same Secret, resolved in the
174
- developer's SDK Environment, so it uses the same database as the deployed API.
175
- It never migrates. If the local branch has newer migrations than the deployed API,
176
- it reports `migration_required` until that code is deployed.
177
-
178
170
  ## Application grants
179
171
 
180
172
  Platform Users, Teams and their membership are resolved through the SDK. MetaTables
@@ -35,16 +35,18 @@ credentials already set in the environment. The launch prints which one it used
35
35
  (`credentials: saved session` or `credentials: exported tokens`).
36
36
 
37
37
  In another terminal, use `metatables --local runtime status`. Python applications
38
- call `metatables.configure_local_client()` before client operations. The private
39
- `.local/development-client.json` binds the project, token and live launcher process;
40
- `init` adds `.local/` to `.gitignore`. Stop the launcher with Ctrl-C to stop its
41
- owned services and remove its connection file. A second launcher for the same
42
- project fails without replacing that connection.
38
+ call `metatables.configure_local_client()` before client operations. The laptop
39
+ runs one local API, like its one local runtime: the launcher publishes its address,
40
+ private token and live process in `server.json` in the local storage directory, and
41
+ every checkout connects through it. `metatables serve --local` in another project
42
+ prints `MetaTables API already running: http://127.0.0.1:18473` and exits; it never
43
+ starts a second API. Stop the launcher with Ctrl-C to stop its owned services and
44
+ remove its connection file. `init` adds `.local/` to `.gitignore`.
43
45
 
44
46
  The launcher validates a private loopback listener and uses the ordinary SDK login
45
47
  for user identity and independent Git discovery. Browser writes require the configured
46
- exact loopback origin. Native clients use the private token and their Git descriptor.
47
- A client from another branch or checkout is rejected. The SDK provides developer identity. Local DataSource credentials use the API
48
+ exact loopback origin. Native clients from any checkout or branch use the private
49
+ token; commits and branch changes never require an API restart. The SDK provides developer identity. Local DataSource credentials use the API
48
50
  CredentialStore without a hosted Secret requirement.
49
51
 
50
52
  ## Initialize explicitly
@@ -65,34 +67,23 @@ Apply application providers through the client with
65
67
  `metatables --local migrations upgrade --provider ledger.migrations:migration`. See the
66
68
  [write/read example](../examples/local_app/README.md).
67
69
 
68
- ## Switch modes in one Admin site
69
-
70
- Each mode lists only its own runtime catalog's DataSources. Local shows the workspace
71
- catalog and keeps its passwords in the local CredentialStore; Hosted shows the catalog
72
- of the deployed runtime database and keeps passwords as managed Main Sequence Secrets.
73
- A DataSource registered in Local never appears in Hosted, and neither mode copies the
74
- other's registrations or credentials.
75
-
76
- To use the hosted database, choose Hosted under **Settings → Runtime mode** and click
77
- **Switch to Hosted**. The worker restarts in Hosted and opens the database the API's
78
- deployment declares: it reads the API's packaged deployment configuration and the same
79
- Environment Secret, resolved in your SDK Environment. Hosted Settings is read-only and
80
- the launcher never migrates. If your branch has newer system migrations than the
81
- deployed API, it reports `migration_required` until that code is deployed. See
82
- [the developer launcher in Hosted mode](hosted-runtime.md#developer-launcher-in-hosted-mode).
83
- Switching stops the old worker before starting the selected mode; it never copies data.
84
- Failed worker startup restores the previous worker. Mode selection is recorded in
85
- `.local/runtime-selection.json`; the Local SQLite selection is recorded separately
70
+ ## Local only
71
+
72
+ The local API always runs Local; it has no switch to a hosted runtime. Its Admin lists
73
+ the workspace catalog's DataSources and keeps their passwords in the local
74
+ CredentialStore. Hosted data and its DataSources, whose passwords are managed Main
75
+ Sequence Secrets, are reached through the deployed API and Admin, or from a client
76
+ that omits `--local` and `configure_local_client()`. Neither runtime copies the
77
+ other's registrations, credentials or data. The Local SQLite selection is recorded
86
78
  under `local` in `.local/runtime-data-sources.json`.
87
79
 
88
- The API refuses switching or source reconfiguration while other requests, open
89
- migration connections, reserved migrations, unfinished updates or unresolved physical
90
- operations exist. Stale runtime-instance headers are rejected after a transition.
91
- Migration connections use the selected runtime credentials and hold supervised
92
- runtime switching until the client releases them.
80
+ The API refuses source reconfiguration while other requests, open migration
81
+ connections, reserved migrations, unfinished updates or unresolved physical
82
+ operations exist. Stale runtime-instance headers are rejected after the runtime
83
+ binding changes. Migration connections use the runtime credentials and hold
84
+ reconfiguration until the client releases them.
93
85
 
94
- `metatables serve --local` starts with Local selected and uses the shared supervisor.
95
- Shared hosted deployments disable local mode. Switching affects the whole API instance.
86
+ Shared hosted deployments disable local mode.
96
87
 
97
88
  ## Workspace storage
98
89
 
@@ -108,9 +99,7 @@ configure another absolute SQLite file. A new file's identity derives from its
108
99
  location; an existing file keeps the identity recorded in its scope marker, so a file
109
100
  moved together with its marker keeps its DataSource UID and run logs. The selected
110
101
  file is stored under the single `local` entry in `.local/runtime-data-sources.json`.
111
- Branch changes and restarts reuse it, its credentials and its DataSource UID. Git
112
- context still describes the running code; changing that context requires restarting
113
- the API.
102
+ Branch changes and restarts reuse it, its credentials and its DataSource UID.
114
103
 
115
104
  Existing files retain their paths, storage markers and IDs. A checkout that saved a
116
105
  per-checkout file under an earlier release keeps using it after an upgrade; select
@@ -14,7 +14,7 @@ Organization admin status comes from the platform through the SDK.
14
14
  | Enter the application and browse permitted resources | Yes | Yes |
15
15
  | Create or register a table in an available DataSource | Yes | Yes |
16
16
  | Configure, validate, disable, or remove DataSources | No | Yes |
17
- | Select runtime mode or the runtime DataSource where supported | No | Yes |
17
+ | Select the runtime DataSource where supported | No | Yes |
18
18
  | Initialize or upgrade MetaTables system tables in Local Settings (Hosted: the deployment's migration Job) | No | Yes |
19
19
  | Destroy a local runtime database through Settings | No | Yes |
20
20
  | Change application-wide Settings and security policies | No | Yes |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence-metatable"
7
- version = "0.1.18.dev30"
7
+ version = "0.1.19.dev31"
8
8
  description = "Main Sequence MetaTables Python client and standalone API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -29,15 +29,14 @@ SHARED_MODULES = frozenset({'metatables.local_connection', 'metatables.local_fil
29
29
  # models, constraints and storage policy remain forbidden from owning them.
30
30
  DISPLAY_PROVENANCE = {
31
31
  "src/metatables/endpoint.py": {"environment_uid", "organization_environment_uid", "resolve_organization_environment_uid"},
32
- "src/metatables/cli/local.py": {"sdk_session_environment", "vite_environment", "api_environment"},
32
+ "src/metatables/cli/local.py": {"sdk_session_environment", "vite_environment"},
33
33
  "src/metatables/sdk_compat.py": {"is_organization_admin"},
34
34
  'src/metatables/api/app/auth/boundary.py': {'environment_uid', 'organization_environment_uid', 'is_organization_admin'},
35
35
  'src/metatables/api/app/runtime.py': {'environment_cache'},
36
36
  'src/metatables/api/app/routes/runtime_context.py': {'environment', 'environment_uid', 'hosted_environment',
37
- 'verified_environment', 'OrganizationEnvironment', 'environment_target',
38
- 'developer_hosted_environment', 'hosted_environment_target', 'organization_environment_uid',
39
- 'cached_environment', 'environment_cache'},
40
- 'src/metatables/runtime_contract.py': {'hosted_environment', 'hosted_environment_target'},
37
+ 'verified_environment', 'OrganizationEnvironment',
38
+ 'organization_environment_uid', 'cached_environment', 'environment_cache'},
39
+ 'src/metatables/runtime_contract.py': {'hosted_environment'},
41
40
  }
42
41
  PLATFORM_PATH = re.compile(r'/(?:orm/api|auth/jwt-token|api/v1/data[-_]sources)(?:/|$)')
43
42
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.18.dev30
3
+ Version: 0.1.19.dev31
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
@@ -480,7 +480,6 @@ tests/e2e/test_public_imports.py
480
480
  tests/e2e/test_remaining_client_routes.py
481
481
  tests/e2e/test_run_graphs.py
482
482
  tests/e2e/test_run_logs.py
483
- tests/e2e/test_runtime_transition.py
484
483
  tests/e2e/test_runtime_upgrade.py
485
484
  tests/e2e/test_sdk_local_startup.py
486
485
  tests/e2e/test_sqlite_runtime.py