mainsequence-metatable 0.1.6.dev7__tar.gz → 0.1.7.dev9__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 (521) hide show
  1. {mainsequence_metatable-0.1.6.dev7/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.7.dev9}/PKG-INFO +1 -1
  2. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +7 -0
  3. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0007-database-enforced-table-access.md +8 -0
  4. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0008-mysql-mssql-table-workflows.md +7 -0
  5. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0010-import-external-tables-and-views.md +9 -0
  6. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/client/0003-api-endpoint-resolution.md +96 -48
  7. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/index.md +1 -1
  8. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/installation-and-connection.md +25 -10
  9. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/query-and-mutate.md +44 -4
  10. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/register-existing-tables.md +4 -0
  11. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/upgrade-legacy-app.md +10 -1
  12. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/runs-and-execution-graphs.md +1 -1
  13. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/configuration.md +5 -3
  14. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/run-history.md +3 -2
  15. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/reference/python.md +1 -0
  16. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/pyproject.toml +1 -1
  17. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_boundaries.py +3 -2
  18. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
  19. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/mainsequence_metatable.egg-info/SOURCES.txt +1 -0
  20. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/__init__.py +1 -0
  21. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_sql.py +9 -0
  22. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/compiled_sql/v1.py +16 -5
  23. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/endpoint.py +50 -15
  24. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/models.py +4 -2
  25. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/runtime_context.py +1 -4
  26. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/runtime_contract.py +28 -0
  27. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_runtime_storage_binding.py +23 -0
  28. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/capabilities.json +1 -0
  29. mainsequence_metatable-0.1.7.dev9/tests/contracts/test_compiler_runtime_source.py +139 -0
  30. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_relation_import.py +7 -7
  31. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_update_client.py +11 -7
  32. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/documentation/test_project_checks.py +15 -0
  33. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_api_endpoint.py +166 -16
  34. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_package.py +16 -12
  35. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/uv.lock +1 -1
  36. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  37. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
  38. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
  39. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  40. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
  41. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/.mainsequence/workflows/metatables-api.yaml +0 -0
  42. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/LICENSE +0 -0
  43. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/MANIFEST.in +0 -0
  44. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/README.md +0 -0
  45. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/alembic.ini +0 -0
  46. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/api/metatables/main.py +0 -0
  47. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/compose.database-tests.yml +0 -0
  48. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  49. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  50. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  51. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  52. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  53. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  54. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0009-shared-credential-store.md +0 -0
  55. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  56. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  57. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  58. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/authentication-and-errors.md +0 -0
  59. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/data-sources.md +0 -0
  60. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/openapi.json +0 -0
  61. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/overview.md +0 -0
  62. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/reference.md +0 -0
  63. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/tables-and-migrations.md +0 -0
  64. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/api/time-index-and-updates.md +0 -0
  65. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/assets/branding/metatables.svg +0 -0
  66. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/assets/diagrams/local-client-experience.svg +0 -0
  67. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/bounded-transfers.md +0 -0
  68. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/build-an-updater.md +0 -0
  69. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/define-and-migrate-tables.md +0 -0
  70. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/local-storage.md +0 -0
  71. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/quickstart.md +0 -0
  72. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/read-existing-time-index-tables.md +0 -0
  73. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/client/tutorial.md +0 -0
  74. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/architecture.md +0 -0
  75. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/data-sources.md +0 -0
  76. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/identity-and-scope.md +0 -0
  77. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/permissions-namespaces-labels.md +0 -0
  78. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  79. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/concepts/time-index-tables-and-updates.md +0 -0
  80. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/contributing/architecture-and-boundaries.md +0 -0
  81. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/contributing/database-backends.md +0 -0
  82. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/contributing/documentation.md +0 -0
  83. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/contributing/releasing.md +0 -0
  84. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/contributing/testing.md +0 -0
  85. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/README.md +0 -0
  86. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/__init__.py +0 -0
  87. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/bounded_reader.py +0 -0
  88. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/data_sources/README.md +0 -0
  89. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/data_sources/mssql.json +0 -0
  90. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/data_sources/mysql.json +0 -0
  91. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/data_sources/postgresql.json +0 -0
  92. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/data_sources/register.py +0 -0
  93. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/external_table.py +0 -0
  94. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/README.md +0 -0
  95. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/__init__.py +0 -0
  96. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/__main__.py +0 -0
  97. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/migrations/__init__.py +0 -0
  98. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/migrations/env.py +0 -0
  99. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/migrations/script.py.mako +0 -0
  100. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  101. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/local_app/tables.py +0 -0
  102. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/query.py +0 -0
  103. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/quickstart.py +0 -0
  104. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/reader.py +0 -0
  105. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/scripts/__init__.py +0 -0
  106. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/scripts/setup_metatables.py +0 -0
  107. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tables.py +0 -0
  108. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/README.md +0 -0
  109. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/__init__.py +0 -0
  110. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/__main__.py +0 -0
  111. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/data/README.md +0 -0
  112. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  113. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/frames.py +0 -0
  114. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/__init__.py +0 -0
  115. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/env.py +0 -0
  116. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/registry.py +0 -0
  117. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  118. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  119. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  120. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  121. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  122. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/operations.py +0 -0
  123. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/tables.py +0 -0
  124. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/tutorial/updaters.py +0 -0
  125. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/examples/updater.py +0 -0
  126. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/index.md +0 -0
  127. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/catalog-migrations.md +0 -0
  128. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/hosted-runtime.md +0 -0
  129. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/local-runtime.md +0 -0
  130. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/recovery-and-observability.md +0 -0
  131. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/operations/run-logs.md +0 -0
  132. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/reference/capabilities.md +0 -0
  133. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/reference/cli.md +0 -0
  134. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/security/index.md +0 -0
  135. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/security/ownership-and-sharing.md +0 -0
  136. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/docs/security/permissions.md +0 -0
  137. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/mkdocs.yml +0 -0
  138. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/__init__.py +0 -0
  139. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/build_reference.py +0 -0
  140. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_client_api_coverage.py +0 -0
  141. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_distribution_sources.py +0 -0
  142. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_docs.py +0 -0
  143. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_examples_debug.py +0 -0
  144. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/check_project.py +0 -0
  145. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/dev_release_version.py +0 -0
  146. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/test_databases.py +0 -0
  147. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/scripts/test_postgresql.py +0 -0
  148. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/setup.cfg +0 -0
  149. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  150. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  151. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
  152. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  153. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/_admin_source.json +0 -0
  154. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/_build.py +0 -0
  155. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/_skill_bundle.py +0 -0
  156. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/__init__.py +0 -0
  157. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/__init__.py +0 -0
  158. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/auth/__init__.py +0 -0
  159. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/auth/boundary.py +0 -0
  160. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/auth/caller_assertions.py +0 -0
  161. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/auth/local_actor.py +0 -0
  162. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/bootstrap.py +0 -0
  163. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/configuration.py +0 -0
  164. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/credential_admin.py +0 -0
  165. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/development.py +0 -0
  166. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/development_client.py +0 -0
  167. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/main.py +0 -0
  168. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/platform_cache.py +0 -0
  169. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/__init__.py +0 -0
  170. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/column_search.py +0 -0
  171. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/contract_validation.py +0 -0
  172. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/data_sources.py +0 -0
  173. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  174. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/migration_connection.py +0 -0
  175. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/namespaces.py +0 -0
  176. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/run_logs.py +0 -0
  177. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/runtime_context.py +0 -0
  178. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/schema_graph.py +0 -0
  179. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/security.py +0 -0
  180. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_cascade.py +0 -0
  181. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_crud.py +0 -0
  182. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_delete.py +0 -0
  183. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_filter.py +0 -0
  184. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_import.py +0 -0
  185. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_introspection.py +0 -0
  186. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_patch.py +0 -0
  187. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_registration.py +0 -0
  188. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_response.py +0 -0
  189. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_search_document.py +0 -0
  190. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  191. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  192. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  193. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  194. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_batch.py +0 -0
  195. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  196. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_constants.py +0 -0
  197. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_crud.py +0 -0
  198. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_details.py +0 -0
  199. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_graph.py +0 -0
  200. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  201. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_registration.py +0 -0
  202. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_runs.py +0 -0
  203. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/routes/update_statistics.py +0 -0
  204. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/runtime.py +0 -0
  205. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/runtime_control.py +0 -0
  206. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/source_passwords.py +0 -0
  207. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/source_registrations.py +0 -0
  208. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/app/transfer.py +0 -0
  209. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/__init__.py +0 -0
  210. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/__init__.py +0 -0
  211. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/access.py +0 -0
  212. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  213. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  214. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  215. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  216. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  217. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  218. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  219. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  220. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  221. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  222. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  223. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  224. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  225. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  226. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  227. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  228. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  229. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  230. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  231. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  232. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  233. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/catalog.py +0 -0
  234. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  235. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  236. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/contracts.py +0 -0
  237. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/hosted.py +0 -0
  238. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  239. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  240. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/native.py +0 -0
  241. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/operations.py +0 -0
  242. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/pages.py +0 -0
  243. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  244. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/registry.py +0 -0
  245. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  246. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/relational.py +0 -0
  247. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  248. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  249. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/backends/streaming.py +0 -0
  250. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/contracts/__init__.py +0 -0
  251. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  252. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  253. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  254. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/contracts/values.py +0 -0
  255. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/__init__.py +0 -0
  256. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  257. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  258. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  259. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/label_rules.py +0 -0
  260. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  261. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/domain/update_constants.py +0 -0
  262. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/__init__.py +0 -0
  263. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  264. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  265. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  266. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  267. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  268. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  269. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  270. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  271. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  272. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  273. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  274. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/__init__.py +0 -0
  275. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/env.py +0 -0
  276. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  277. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  278. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  279. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  280. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  281. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  282. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  283. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  284. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  285. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  286. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/__init__.py +0 -0
  287. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  288. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  289. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/create_table.py +0 -0
  290. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  291. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/import_relations.py +0 -0
  292. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  293. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  294. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  295. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/operations/search_documents.py +0 -0
  296. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/__init__.py +0 -0
  297. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/cascade.py +0 -0
  298. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/catalog.py +0 -0
  299. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/database.py +0 -0
  300. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/grants.py +0 -0
  301. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/labels.py +0 -0
  302. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/locking.py +0 -0
  303. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/models.py +0 -0
  304. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  305. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/projections.py +0 -0
  306. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  307. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  308. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  309. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  310. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  311. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/table_response.py +0 -0
  312. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  313. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  314. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/updates.py +0 -0
  315. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  316. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  317. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/metatables/__init__.py +0 -0
  318. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/metatables/configuration.yaml +0 -0
  319. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/api/metatables/main.py +0 -0
  320. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/__init__.py +0 -0
  321. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/admin_install.py +0 -0
  322. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/app.py +0 -0
  323. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/filters.py +0 -0
  324. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/local.py +0 -0
  325. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/migrations.py +0 -0
  326. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/project.py +0 -0
  327. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/cli/skills.py +0 -0
  328. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/compiled_sql/__init__.py +0 -0
  329. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/compiled_sql/mssql.py +0 -0
  330. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/dtype_codec.py +0 -0
  331. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/README.md +0 -0
  332. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/__init__.py +0 -0
  333. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/bounded_reader.py +0 -0
  334. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/data_sources/README.md +0 -0
  335. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/data_sources/mssql.json +0 -0
  336. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/data_sources/mysql.json +0 -0
  337. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/data_sources/postgresql.json +0 -0
  338. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/data_sources/register.py +0 -0
  339. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/external_table.py +0 -0
  340. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/README.md +0 -0
  341. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/__init__.py +0 -0
  342. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/__main__.py +0 -0
  343. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  344. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/migrations/env.py +0 -0
  345. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  346. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  347. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/local_app/tables.py +0 -0
  348. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/query.py +0 -0
  349. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/quickstart.py +0 -0
  350. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/reader.py +0 -0
  351. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/scripts/__init__.py +0 -0
  352. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  353. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tables.py +0 -0
  354. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/README.md +0 -0
  355. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/__init__.py +0 -0
  356. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/__main__.py +0 -0
  357. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/data/README.md +0 -0
  358. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  359. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/frames.py +0 -0
  360. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  361. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  362. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  363. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  364. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  365. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  366. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  367. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  368. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/operations.py +0 -0
  369. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/tables.py +0 -0
  370. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/tutorial/updaters.py +0 -0
  371. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/examples/updater.py +0 -0
  372. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/future_registry.py +0 -0
  373. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/hashing.py +0 -0
  374. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/instrumentation.py +0 -0
  375. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/local_connection.py +0 -0
  376. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/local_files.py +0 -0
  377. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/local_run_logs.py +0 -0
  378. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/log_contract.py +0 -0
  379. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/__init__.py +0 -0
  380. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/alembic.py +0 -0
  381. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/connection.py +0 -0
  382. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/env.py +0 -0
  383. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/provider.py +0 -0
  384. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/registry.py +0 -0
  385. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/runner.py +0 -0
  386. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/scaffold.py +0 -0
  387. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/templates/__init__.py +0 -0
  388. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/templates/env.py.mako +0 -0
  389. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/templates/script.py.mako +0 -0
  390. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/migrations/tls.py +0 -0
  391. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/pydantic_metadata.py +0 -0
  392. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/run_logging.py +0 -0
  393. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/runtime.py +0 -0
  394. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/schema_names.py +0 -0
  395. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/sdk_compat.py +0 -0
  396. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/sqlalchemy_contracts.py +0 -0
  397. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/time_index_table_refs.py +0 -0
  398. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/transfer.py +0 -0
  399. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/transfer_contract.py +0 -0
  400. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/transport.py +0 -0
  401. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/update_configuration_contract.py +0 -0
  402. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/__init__.py +0 -0
  403. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/configuration.py +0 -0
  404. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/dependencies.py +0 -0
  405. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/managers.py +0 -0
  406. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/namespacing.py +0 -0
  407. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/runner.py +0 -0
  408. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/updaters.py +0 -0
  409. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/updaters/utils.py +0 -0
  410. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/src/metatables/upload.py +0 -0
  411. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_caller_assertions.py +0 -0
  412. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_data_source_identity.py +0 -0
  413. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_development_client.py +0 -0
  414. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_hosted_environment_target.py +0 -0
  415. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_local_mode.py +0 -0
  416. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_platform_fact_cache.py +0 -0
  417. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_runtime_bootstrap.py +0 -0
  418. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_runtime_scaffold.py +0 -0
  419. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_runtime_selection.py +0 -0
  420. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/auth/test_source_passwords.py +0 -0
  421. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/catalog/test_catalog_foundation.py +0 -0
  422. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/catalog/test_contract_projection.py +0 -0
  423. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/catalog/test_database_config.py +0 -0
  424. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/catalog/test_index_statistics.py +0 -0
  425. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/catalog/test_migration.py +0 -0
  426. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/conftest.py +0 -0
  427. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/client_signatures.json +0 -0
  428. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/database_operations.json +0 -0
  429. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/test_bounded_transfer.py +0 -0
  430. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/test_relation_batching.py +0 -0
  431. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/test_relation_import.py +0 -0
  432. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/test_storage_layouts.py +0 -0
  433. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/contracts/test_table_contracts.py +0 -0
  434. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/Dockerfile +0 -0
  435. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/Dockerfile.dockerignore +0 -0
  436. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/__init__.py +0 -0
  437. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/conftest.py +0 -0
  438. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/provider/__init__.py +0 -0
  439. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/provider/env.py +0 -0
  440. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  441. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_api_contract.py +0 -0
  442. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_application_migration.py +0 -0
  443. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  444. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_catalog_contract.py +0 -0
  445. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_credential_catalog.py +0 -0
  446. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_physical_contract.py +0 -0
  447. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  448. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_backend/test_sql_security.py +0 -0
  449. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_operations/test_physical_operations.py +0 -0
  450. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_operations/test_postgresql_operations.py +0 -0
  451. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  452. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_admin_installation.py +0 -0
  453. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_application_owned_migrations.py +0 -0
  454. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_catalog_outage.py +0 -0
  455. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_api_contract.py +0 -0
  456. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_api_coverage.py +0 -0
  457. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_migration_scaffold.py +0 -0
  458. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_migration_tls.py +0 -0
  459. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_signatures.py +0 -0
  460. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_client_value_behaviors.py +0 -0
  461. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_data_source_registry.py +0 -0
  462. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_local_actor_client_api.py +0 -0
  463. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_local_cli_workflow.py +0 -0
  464. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_local_client_selection.py +0 -0
  465. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  466. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_namespaces_admin_http.py +0 -0
  467. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_public_imports.py +0 -0
  468. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_remaining_client_routes.py +0 -0
  469. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_run_graphs.py +0 -0
  470. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_run_logs.py +0 -0
  471. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_runtime_transition.py +0 -0
  472. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_sdk_local_startup.py +0 -0
  473. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_sqlite_runtime.py +0 -0
  474. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_delete_client_api.py +0 -0
  475. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_filter_client_api.py +0 -0
  476. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_introspection_client_api.py +0 -0
  477. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_patch_client_api.py +0 -0
  478. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_search_document_api.py +0 -0
  479. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_stats_api.py +0 -0
  480. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_update_pipeline.py +0 -0
  481. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_table_updates_http.py +0 -0
  482. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  483. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  484. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_update_batch_client_api.py +0 -0
  485. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  486. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  487. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  488. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/e2e/test_update_registration_client_api.py +0 -0
  489. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/examples/test_documented_examples.py +0 -0
  490. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/examples/test_postgresql_examples.py +0 -0
  491. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/examples/test_setup_launch.py +0 -0
  492. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/examples/test_tutorial.py +0 -0
  493. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_credential_store.py +0 -0
  494. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_data_source_rules.py +0 -0
  495. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_local_data_sources.py +0 -0
  496. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_local_run_logs.py +0 -0
  497. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_postgresql_connection.py +0 -0
  498. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_postgresql_sql.py +0 -0
  499. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_postgresql_tables.py +0 -0
  500. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  501. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_source_validation.py +0 -0
  502. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/integrations/test_sqlite_operations.py +0 -0
  503. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/labels/test_labels.py +0 -0
  504. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/operations/test_create_table_operation.py +0 -0
  505. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/operations/test_create_table_postgres.py +0 -0
  506. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/operations/test_physical_operation_journal.py +0 -0
  507. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/operations/test_register_catalog.py +0 -0
  508. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/operations/test_search_documents.py +0 -0
  509. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/packaging/test_client_skills.py +0 -0
  510. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/packaging/test_dev_release_version.py +0 -0
  511. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/packaging/test_distribution_sources.py +0 -0
  512. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/packaging/test_editable_build.py +0 -0
  513. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/packaging/test_installed_distribution.py +0 -0
  514. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_governed_sql_scope.py +0 -0
  515. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_local_actor_membership.py +0 -0
  516. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_migration_boundary.py +0 -0
  517. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_namespace_grants.py +0 -0
  518. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_security_api.py +0 -0
  519. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_table_body_filter.py +0 -0
  520. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_table_grants.py +0 -0
  521. {mainsequence_metatable-0.1.6.dev7 → mainsequence_metatable-0.1.7.dev9}/tests/permissions/test_table_queries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.6.dev7
3
+ Version: 0.1.7.dev9
4
4
  Summary: Main Sequence MetaTables Python client and standalone API
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -14,6 +14,13 @@ Status: Accepted.
14
14
  Owner: MetaTables API. Scope: runtime binding, storage and bootstrap, with shared
15
15
  client/API execution constraints.
16
16
 
17
+ Clarified 2026-10-01 (MetaTables #9): applications automatically obtain the
18
+ selected runtime DataSource from this API after Environment-scoped deployment
19
+ discovery. UID and SQL dialect belong to the same fresh descriptor. Applications
20
+ need no source configuration for the default path; an uninitialized API reports
21
+ a configuration error. ADR 0010 permits optional bounded reads from registered
22
+ external sources without changing this runtime's catalog or write destination.
23
+
17
24
  Client endpoint selection is governed by
18
25
  [client ADR 0003](../client/0003-api-endpoint-resolution.md). Its endpoint cache
19
26
  does not cache this API's runtime context or select its runtime mode or DataSource.
@@ -17,6 +17,14 @@ and repair; the Python client and examples use DataSource-only SQL requests.
17
17
 
18
18
  Owner: MetaTables API.
19
19
 
20
+ Clarified 2026-10-01 (MetaTables #9): automatic compiler source resolution must
21
+ preserve the selected runtime's restricted SQL identity. An explicit different
22
+ source UID is not SQL admission, even with `operation=select`; return a specific
23
+ source-policy conflict rather than claiming the database is unavailable. ADR
24
+ 0010's registered-table reader remains the supported external read path. General
25
+ external SQL requires a separate permission design that preserves caller grants
26
+ without using the source's shared account as an unrestricted SQL identity.
27
+
20
28
  Related decisions: [API ADR 0001: Unified API storage](0001-unified-api-storage-and-local-sqlite.md),
21
29
  [API ADR 0002: Administration and table ownership](0002-application-administration-and-table-ownership.md)
22
30
  and [API ADR 0008: Database backend contract](0008-mysql-mssql-table-workflows.md).
@@ -11,6 +11,13 @@ Date: 2026-09-29
11
11
 
12
12
  Status: Accepted.
13
13
 
14
+ Clarified 2026-10-01 (MetaTables #9): the compiler obtains the runtime DataSource
15
+ UID, dialect and parameter style together, with no caller configuration. The
16
+ default path covers PostgreSQL/TimescaleDB, SQLite, MySQL and MSSQL. An explicit
17
+ different source must not inherit the runtime source's dialect. Offline explicit
18
+ UID/dialect compilation remains supported but does not relax API execution
19
+ binding. Optional external bounded reads retain ADR 0010's source selection.
20
+
14
21
  Amended 2026-09-29: one selected execution DataSource, explicit workflow and
15
22
  transaction ownership, first-bootstrap recovery, and a Compose database test suite.
16
23
 
@@ -9,6 +9,15 @@ client and Vite import/Rows views. Verification and boundaries are recorded belo
9
9
 
10
10
  Owner: MetaTables API. The Python client and Vite application consume its contract.
11
11
 
12
+ Clarified 2026-10-01 (MetaTables #9): default compiler calls discover the API's
13
+ runtime DataSource automatically. Selecting an imported MetaTable for an optional
14
+ external read uses that table's registered source through `read_rows()` or
15
+ `iter_rows()` and the same API. It does not mutate the default, replace Environment
16
+ selection or authorize external writes. Arbitrary external SQL and joins remain
17
+ outside this implementation; SQL selection of another source reports a specific
18
+ policy conflict. Client guides must show the working external read workflow and
19
+ must not present `data_source_uid` alone as enabling arbitrary external SQL.
20
+
12
21
  Related decisions: [ADR 0002: Administration and ownership](0002-application-administration-and-table-ownership.md),
13
22
  [ADR 0007: Database-enforced table access](0007-database-enforced-table-access.md),
14
23
  [ADR 0008: Database backend contract](0008-mysql-mssql-table-workflows.md), and
@@ -9,8 +9,16 @@ Owner: MetaTables Python client, including the CLI.
9
9
 
10
10
  Related decision: [API ADR 0001: One API execution path with SQLite for local development](../api/0001-unified-api-storage-and-local-sqlite.md).
11
11
 
12
- The client implements this decision using the SDK's exact-name release filter
13
- and existing release-access operation.
12
+ The client implements this decision using the SDK's Environment context,
13
+ exact-name release filter, owning-branch metadata and release-access operation.
14
+
15
+ Amended 2026-10-01 ([MetaTables #11](https://github.com/mainsequence-projects/MetaTables/issues/11)):
16
+ hosted discovery must select the caller's resolved Organization Environment.
17
+ The previous visibility-only lookup and hosted URL workaround violated that
18
+ contract. `METATABLES_API_URL` is reserved for loopback development APIs. Identical
19
+ deployment names in different Environments are expected and must work without
20
+ user configuration. Connection and configuration documentation must describe
21
+ this distinction and the Environment-specific failure cases.
14
22
 
15
23
  Amended 2026-09-29: obtain the target name from the MetaTables automatic
16
24
  deployment. Remove the proposed conventional name and manually configured
@@ -25,7 +33,7 @@ with the client and use the SDK for the subsequent release lookup and access.
25
33
  Previously, the client constructed resource URLs from a model's `ROOT_URL` or
26
34
  `METATABLES_API_URL`, and failed when neither was configured. The CLI separately
27
35
  required the environment variable. This decision replaces that duplicated
28
- selection with automatic discovery and an explicit URL override.
36
+ selection with automatic hosted discovery and a local development URL override.
29
37
 
30
38
  A client connecting to a hosted MetaTables deployment obtains the correct name
31
39
  from the automatic deployment's authoritative metadata. Users should not copy
@@ -37,8 +45,11 @@ local API through an environment variable.
37
45
  The SDK supplies generic platform release operations. Ordinary release collection
38
46
  queries currently infer the consuming repository's branch, whereas the MetaTables
39
47
  deployment can belong to another repository. A name filter alone does not solve
40
- that distinction. Release names are also not currently guaranteed to be unique;
41
- text search or selecting the first result cannot establish the intended target.
48
+ that distinction. The caller's Environment, obtained from the SDK's resolved
49
+ repository context or authenticated runtime credential, selects the intended
50
+ deployment across repositories. Release names can repeat across Environments;
51
+ visibility alone, text search or selecting the first result cannot establish the
52
+ intended target. Selecting the wrong API also selects the wrong runtime DataSource.
42
53
 
43
54
  Endpoint selection is a client transport concern. The API's runtime mode,
44
55
  bootstrap and DataSource binding remain governed by API ADR 0001. Connecting to
@@ -47,7 +58,7 @@ runtime mode through Settings.
47
58
 
48
59
  ## Decision
49
60
 
50
- ### 1. One resolver with an explicit URL override
61
+ ### 1. One resolver with a local development URL override
51
62
 
52
63
  All Python resource models, runtime-context requests, readers, updaters and CLI
53
64
  commands use one client endpoint resolver. Migration commands use the same
@@ -57,19 +68,21 @@ The resolver uses the following precedence:
57
68
 
58
69
  | Configuration | Behavior |
59
70
  | --- | --- |
60
- | Nonempty `METATABLES_API_URL` | Use that explicit base URL and skip all deployment discovery. |
61
- | URL unset or empty | Obtain the MetaTables API's name from its automatic-deployment metadata, then resolve that named deployment through the SDK. |
71
+ | Nonempty `METATABLES_API_URL` | Require a loopback HTTP(S) development URL, use it and skip platform Environment/deployment discovery. |
72
+ | URL unset or empty | Obtain the MetaTables API's name from its automatic-deployment metadata and resolve that deployment in the caller's SDK-owned Environment. |
62
73
 
63
74
  The deployment name is derived data, owned by the automatic deployment. There is
64
75
  no hardcoded default such as `metatables`, and no manually maintained
65
76
  `METATABLES_API_DEPLOYMENT_NAME` setting. The client must consume the actual name
66
77
  produced by that deployment, so changing it does not require editing consuming
67
- projects. `METATABLES_API_URL` remains the explicit client override; there is no
78
+ projects. `METATABLES_API_URL` remains the local development override; there is no
68
79
  additional automatic/manual mode variable.
69
80
 
70
- An explicit URL may target a local or hosted API. Preserve any deployment path
71
- prefix when joining resource routes. A nonempty invalid URL produces a
72
- configuration error; it must not fall through to automatic discovery. Model-level
81
+ An explicit URL must target `localhost` or a loopback IP address. Hosted URLs
82
+ are rejected with an instruction to unset the variable and use Environment
83
+ discovery. Preserve any local path prefix when joining resource routes. A nonempty
84
+ invalid URL produces a configuration error; it must not fall through to automatic
85
+ discovery. Model-level
73
86
  `ROOT_URL` assignments must no longer independently override the environment or
74
87
  split different resources across different API targets.
75
88
 
@@ -101,25 +114,30 @@ for exact-name lookup and stable endpoint retrieval. It does not call platform
101
114
  routes directly, inspect platform persistence models, derive hostnames from UIDs,
102
115
  or maintain a second platform client.
103
116
 
104
- Discovery must operate in the platform's permitted release scope without
105
- implicitly restricting the result to the consuming application's repository
106
- branch. The SDK owns the generic lookup capability and its platform contract.
107
- This decision does not relax branch or Environment requirements on ordinary SDK
108
- resource operations, and does not make local development require a registered
109
- branch.
110
-
111
- The client calls `ResourceRelease.filter_admin(name=..., release_kind="fastapi")`
112
- using the existing explicit SDK collection interface, which does not infer the
113
- consumer's branch. This is an exact bounded query, not enumeration of all releases.
114
- Backend visibility and runtime scope still apply. The client requires one match
115
- and calls that release's `resolve_runtime_access()` for the backend-issued URL.
116
- No SDK context reset, branch override or new platform metadata endpoint is needed.
117
-
118
- Exactly one matching release is required. Missing or ambiguous target metadata,
119
- no matching release, multiple matches, the wrong release kind, or a missing
120
- usable endpoint produces a specific resolution error.
121
- Ambiguous deployments must be given distinct names or use the explicit URL
122
- override. There is no first-result selection or fallback to another release.
117
+ Resolve the caller's Environment with the public SDK
118
+ `resolve_organization_environment_uid()` helper. The SDK owns Git registration,
119
+ authenticated runtime context and authorization. A developer's signed-in process
120
+ connecting to a hosted API follows the same Environment selection rule. Local
121
+ development URL selection does not require a registered branch or Environment.
122
+
123
+ The installed SDK does not expose an Environment filter on `ResourceRelease`.
124
+ Use `ResourceRelease.filter_admin(name=..., release_kind="fastapi")` only to
125
+ obtain exact-name candidates, without restricting them to the consuming
126
+ application's repository branch. Each candidate supplies its owning
127
+ `code_repository_branch_uid`. Read those public `CodeRepositoryBranch` records
128
+ through the SDK using `filter(uid__in=...)`, in batches of at most 100 unique UIDs,
129
+ and compare their `organization_environment_uid` with the caller's Environment.
130
+ The client must verify ownership before requesting runtime access, even if only
131
+ one release is visible. Missing or inconsistent ownership metadata fails closed.
132
+ An owning branch with no Environment cannot match an Environment-bound caller.
133
+
134
+ Require exactly one match **within that Environment**, then call the selected
135
+ release's `resolve_runtime_access()` for its backend-issued URL. The same name in
136
+ other Environments is neither an error nor a fallback. Zero matches report a
137
+ missing deployment in the selected Environment; multiple matches report duplicate
138
+ deployments within it. Neither error recommends a URL override or globally unique
139
+ deployment names. No first-result selection, SDK context reset, consumer branch
140
+ override, direct platform request or new platform endpoint is needed.
123
141
 
124
142
  Existing SDK release-access operations may report a starting or unavailable
125
143
  runtime. Such a result is not a successful endpoint resolution. Respect the
@@ -131,18 +149,21 @@ mechanism, credential type, account-binding policy or Organization policy.
131
149
 
132
150
  Resolve lazily on the first operation that needs an API address. Cache a
133
151
  successful result in process memory for the selected platform endpoint and
134
- automatic-deployment target, including its derived name. The discovery sequence
135
- obtains target metadata, resolves the exact name and retrieves the endpoint;
136
- subsequent operations reuse its result without repeating any of those steps.
152
+ resolved Organization Environment. The entry holds the release UID and derived
153
+ deployment name. The discovery sequence obtains target metadata, verifies the
154
+ candidate owners' Environments and retrieves the endpoint; subsequent operations
155
+ reuse its result without repeating those platform lookups. Read the SDK-owned
156
+ process context when selecting the cache key; do not maintain a separate
157
+ Environment cache or reuse an endpoint after that context changes.
137
158
 
138
159
  Concurrent first callers share one resolution attempt. Do not cache failed,
139
160
  ambiguous, starting or unavailable results as successful entries. Later calls
140
161
  can retry after a failed attempt. Forked or new processes start with their own
141
162
  cache; no discovered address is persisted to disk.
142
163
 
143
- The explicit URL is checked before consulting the discovery cache, so setting
164
+ The local URL is checked before consulting the discovery cache, so setting
144
165
  `METATABLES_API_URL` takes effect even after automatic resolution. Configuration
145
- changes invalidate the previous target's cache; an explicit client reset or
166
+ and Environment changes invalidate the previous target's cache; an explicit client reset or
146
167
  process restart also permits a fresh lookup, including reacquiring the name from
147
168
  the packaged workflow. Editable installs observe workflow changes on that fresh
148
169
  lookup; installed wheels use their immutable workflow snapshot. Stable configuration
@@ -155,6 +176,25 @@ silently select another deployment or replay a mutation against a different API.
155
176
 
156
177
  ### 4. Keep endpoint discovery separate from runtime state
157
178
 
179
+ Amended 2026-10-01 ([MetaTables #9](https://github.com/mainsequence-projects/MetaTables/issues/9)):
180
+ the compiler's default is Environment → API deployment → fresh `/runtime-context/`
181
+ → selected DataSource UID and SQL dialect. Consuming applications configure none
182
+ of these values. Runtime bootstrap and Settings remain operator responsibilities.
183
+ The client preserves the runtime descriptor's public `data_source` dictionary
184
+ and uses a shared validated UID accessor. Missing, unavailable or malformed source
185
+ metadata raises `DataSourceResolutionError`, including when the compiler is given
186
+ an isolated runtime descriptor. UID, dialect and parameter style must describe
187
+ the same source. Never combine an explicit different source UID with the runtime
188
+ source's inferred dialect. Supplying both a UID and dialect retains offline
189
+ compilation; execution still applies API source binding and grants.
190
+
191
+ Optional reads from another registered source use the imported MetaTable's source
192
+ through ADR 0010's bounded reader. They do not change the resolved API, runtime
193
+ default or write destination. General SQL on another source needs a separate
194
+ database-permission design; the client must not imply that an explicit UID grants
195
+ that capability. Document default compilation, offline compilation, source-specific
196
+ errors and the distinction between bounded external reads and runtime SQL.
197
+
158
198
  Cache only the stable endpoint and the release identity needed to describe that
159
199
  selection. Do not cache temporary release-access tokens, admission/readiness
160
200
  decisions, permission facts or the API's effective DataSource with it. SDK session
@@ -165,7 +205,7 @@ Keep it in a separate, memory-only SDK `SessionJWTAuthProvider`, outside the
165
205
  endpoint cache and shared platform session. The SDK request helper retries a
166
206
  401 once: reacquire access for the same release UID and reject a changed URL
167
207
  instead of retargeting the request. This does not repeat name discovery or add an
168
- authentication contract. Local and explicit-URL transports retain their existing
208
+ authentication contract. Local development transports retain their existing
169
209
  SDK session behavior.
170
210
 
171
211
  The API's `/runtime-context/` response remains fresh under API ADR 0001. Resetting
@@ -177,8 +217,8 @@ those changes or introduce client database access.
177
217
 
178
218
  | Owner | Responsibility |
179
219
  | --- | --- |
180
- | MetaTables client | Read the packaged workflow, configuration precedence, shared endpoint resolver, process cache and resolution errors. |
181
- | Main Sequence SDK/platform | Generic exact-name release discovery, accessible release scope, endpoint and release-access retrieval. |
220
+ | MetaTables client | Read the packaged workflow, select the release in the SDK-owned Environment, enforce the local URL override, share and cache endpoints, and report resolution errors. |
221
+ | Main Sequence SDK/platform | Resolve the caller's Environment and provide authorized release discovery, owning-branch metadata and release access. |
182
222
  | MetaTables API | Own the automatic deployment declaration, runtime descriptor, admission, Settings, bootstrap and its enforced DataSource binding. |
183
223
 
184
224
  This is a separate client ADR because API runtime selection and storage ownership
@@ -186,9 +226,10 @@ do not change. API ADR 0001's prohibition on caching effective runtime context
186
226
  remains in force. The Vite Admin site's connection configuration is outside this
187
227
  Python-client decision.
188
228
 
189
- Existing explicit URL configurations continue to work. Automatic mode adds a
190
- platform discovery dependency only when no URL is provided. A deleted or replaced
191
- deployment can require an explicit reset or process restart to discover a new
229
+ Local explicit URL configurations continue to work. Existing hosted URL overrides
230
+ must be removed; Environment discovery replaces them. Hosted selection requires
231
+ SDK Environment context and authorized reads of candidate branch metadata. A
232
+ deleted or replaced deployment can require an explicit reset or process restart to discover a new
192
233
  address; normal requests do not repeatedly search for one.
193
234
 
194
235
  ## Implementation and acceptance criteria
@@ -206,17 +247,22 @@ The workflow must be applied on the platform before the hosted launch can find i
206
247
 
207
248
  - The client obtains the actual MetaTables deployment name from automatic
208
249
  deployment metadata and resolves it through the SDK without a user-supplied
209
- name or UID, including outside the consuming repository's branch.
250
+ name, UID or URL, including outside the consuming repository's branch but
251
+ always within its resolved Environment.
252
+ - Identically named deployments in other Environments are ignored; a lone release
253
+ in the wrong Environment cannot be selected. Missing Environment context,
254
+ unverifiable ownership or duplicate releases within the selected Environment
255
+ fail before runtime access. Test both signed-in and authenticated runtime context.
210
256
  - Tests use distinct deployment-generated names and verify that a fresh lookup
211
257
  after an editable-workflow rename uses updated metadata without edits to
212
258
  consuming projects. Wheels retain their packaged deployment declaration.
213
259
  Missing or ambiguous metadata/names fail clearly without a constant fallback.
214
260
  - Repeated and concurrent operations across resource classes and CLI consumers
215
261
  perform one successful discovery sequence per process and configuration.
216
- - An explicit URL bypasses all discovery, including automatic-deployment metadata
217
- retrieval and a populated cache, and preserves route prefixes. Invalid explicit
218
- URLs do not trigger discovery.
219
- - Failed resolution remains retryable; reset, configuration changes and process
262
+ - A local loopback URL bypasses all discovery, including Environment and
263
+ automatic-deployment metadata retrieval and a populated cache, and preserves
264
+ route prefixes. Invalid URLs and hosted URL overrides fail without discovery.
265
+ - Failed resolution remains retryable; reset, Environment/configuration changes and process
220
266
  forks do not reuse a stale target.
221
267
  - Local explicit-URL operations still work on an unregistered branch without
222
268
  introducing a platform release or Environment requirement.
@@ -225,7 +271,9 @@ The workflow must be applied on the platform before the hosted launch can find i
225
271
  - Resource calls and migration lifecycles consistently use their selected API;
226
272
  the resolver never redirects ordinary SDK platform requests to that API.
227
273
  - Update connection guides, configuration reference and executable examples with
228
- automatic and explicit modes once behavior is verified. Keep dependency and
274
+ automatic hosted discovery and local development selection once behavior is verified.
275
+ Document removal of hosted URL overrides and Environment-specific deployment
276
+ errors without suggesting URL or name workarounds. Keep dependency and
229
277
  authentication boundaries covered by the existing checks.
230
278
 
231
279
  ## References
@@ -16,7 +16,7 @@ decisions belong in the SDK repository and are linked as dependencies.
16
16
 
17
17
  | ADR | Status | Scope |
18
18
  | --- | --- | --- |
19
- | [0003: Automatic API endpoint resolution](client/0003-api-endpoint-resolution.md) | Accepted and implemented; live hosted verification pending | Read the name from the packaged API workflow, resolve through the SDK, cache the endpoint per process, and allow an explicit URL override. |
19
+ | [0003: Automatic API endpoint resolution](client/0003-api-endpoint-resolution.md) | Accepted and implemented; live hosted verification pending | Resolve the packaged API name within the SDK-owned Environment, cache per platform/Environment, and reserve URL overrides for local development. |
20
20
  | [0011: Local CLI workflow with reusable Admin](client/0011-cli-local-development-with-managed-admin.md) | Accepted; implemented | Download missing Admin source once, reuse ready dependencies, launch the installed API with Vite, and expose explicit bootstrap, application-owned migrations and local client connection. |
21
21
 
22
22
  ## API
@@ -112,9 +112,13 @@ checkout. After upgrading the client, rerun it to refresh the copied bundle.
112
112
 
113
113
  ## Connect to an API
114
114
 
115
- Authenticate through the SDK. With no explicit URL, the client reads the API
116
- deployment name from the workflow bundled with MetaTables, finds exactly one
117
- visible FastAPI release through the SDK, and caches its endpoint in this process:
115
+ Authenticate through the SDK. Hosted connections require no API URL. The client
116
+ reads the API deployment name from the workflow bundled with MetaTables and
117
+ selects exactly one release in the caller's resolved Organization Environment.
118
+ The SDK obtains that Environment from the registered consuming branch or the
119
+ authenticated runtime credential. This also applies when running on a developer
120
+ machine and connecting to a hosted API. The endpoint is cached per platform and
121
+ Environment in this process:
118
122
 
119
123
  ```bash
120
124
  mainsequence login
@@ -122,10 +126,10 @@ unset METATABLES_API_URL
122
126
  metatables --json meta-table detail TABLE_UID
123
127
  ```
124
128
 
125
- To select an explicit endpoint, set `METATABLES_API_URL`. It overrides discovery,
126
- including an already cached deployment. It is the base URL mounting `/meta-tables` and related
127
- routes. The checked-in API mounts them at its root. If a deployment adds a path
128
- prefix, include that prefix in the value:
129
+ `METATABLES_API_URL` is only for a local development API on `localhost` or a
130
+ loopback IP address. `--local` and `configure_local_client()` set it automatically
131
+ from the launcher's private connection file. A manual local URL overrides
132
+ discovery, including an already cached deployment, and can include a path prefix:
129
133
 
130
134
  ```bash
131
135
  export METATABLES_API_URL=http://127.0.0.1:18473
@@ -134,9 +138,19 @@ export METATABLES_API_URL=http://127.0.0.1:18473
134
138
  The name comes from `.mainsequence/workflows/metatables-api.yaml` in the
135
139
  MetaTables repository, packaged unchanged with installed clients. No deployment
136
140
  UID or name variable is needed in consuming projects. Missing or ambiguous
137
- deployments fail clearly. Apply the workflow before using hosted discovery;
141
+ deployments **within the selected Environment** fail clearly. The same name in
142
+ other Environments is expected and requires no configuration. A lone deployment
143
+ in another Environment is never used as a fallback. Apply the workflow in the
144
+ intended Environment before using hosted discovery;
138
145
  having the Python package installed does not create a deployment.
139
146
 
147
+ Remove existing hosted `METATABLES_API_URL` values; non-loopback overrides are
148
+ rejected. If the SDK cannot resolve the caller's Environment, fix the consuming
149
+ branch registration or runtime context. If no deployment matches, apply the API
150
+ workflow in that Environment; if several match within it, remove the duplicates.
151
+ Discovery also requires authorized SDK reads of the candidate releases' owning
152
+ branch metadata to verify their Environments.
153
+
140
154
  Call `metatables.endpoint.reset_api_endpoint()` or restart the process to resolve
141
155
  again. This rereads the workflow in editable installs; a wheel uses its packaged
142
156
  snapshot. Renamed deployment declarations require the matching package build.
@@ -144,7 +158,7 @@ See [client ADR 0003](../adr/client/0003-api-endpoint-resolution.md).
144
158
 
145
159
  The client uses SDK-issued release access for automatically discovered deployments,
146
160
  separate from the platform session. SDK request handling renews rejected release
147
- credentials for the same target without repeating name discovery. Explicit URLs
161
+ credentials for the same target without repeating name discovery. Local URLs
148
162
  retain the existing SDK session behavior. The
149
163
  platform ingress supplies the caller proof consumed by the API. Direct callers
150
164
  cannot replace that proof with an unsigned user UID.
@@ -156,7 +170,8 @@ Git source facts remain required; platform branch registration is unnecessary.
156
170
  ## Keep the scopes explicit
157
171
 
158
172
  Use SDK configuration for platform authentication and repository identity. Use
159
- automatic deployment discovery or `METATABLES_API_URL` for table operations. The API selects the effective DataSource. The client discovers its storage capabilities and
173
+ Environment-scoped discovery for hosted table operations and the local development
174
+ connection for a local API. The API selects the effective DataSource. The client discovers its storage capabilities and
160
175
  dialect through `/runtime-context/`. Never point the SDK session
161
176
  at the MetaTables URL to make table requests work.
162
177
 
@@ -10,20 +10,38 @@ authorize the caller; the selected engine backend executes the database operatio
10
10
  Use `metatables.compiled_sql.v1.compile_sqlalchemy_statement(...)` to compile a
11
11
  SQLAlchemy Core statement with bound parameters. A request selects one DataSource;
12
12
  the database applies your Reader and Writer grants to every table it touches.
13
- [The query example](../examples/query.py) selects account rows by name:
13
+ Omit source and dialect configuration for the normal application path:
14
14
 
15
15
  ```python
16
- from metatables.examples.query import find_accounts
16
+ from sqlalchemy import String, column, select, table
17
17
 
18
- result = find_accounts("runtime-data-source-uuid", "Savings")
18
+ from metatables import MetaTable
19
+ from metatables.compiled_sql.v1 import compile_sqlalchemy_statement
20
+
21
+ accounts = table("ledger_account", column("name", String))
22
+ operation = compile_sqlalchemy_statement(
23
+ select(accounts).where(accounts.c.name == "Savings"), operation="select"
24
+ )
25
+ result = MetaTable.execute_operation(operation)
19
26
  ```
20
27
 
21
- The compiler can obtain the DataSource and dialect from the API runtime context.
28
+ The client discovers the MetaTables deployment in the caller's Environment. The
29
+ compiler obtains the DataSource UID, dialect and parameter style together from
30
+ that API's fresh runtime context. No URL or DataSource UID is needed in the
31
+ application. The API operator configures and initializes the runtime in Settings.
32
+ An absent, unavailable or malformed runtime source raises the public
33
+ `metatables.DataSourceResolutionError`; it never selects another source as a fallback.
34
+
22
35
  For offline compilation, supply both `data_source_uid=` and `dialect=`. PostgreSQL
23
36
  and MySQL use `pyformat`, SQL Server uses ordered `qmark`, and SQLite uses named
24
37
  parameters. The API checks the wire dialect and the runtime binding. There is no
25
38
  list of declared table scopes and no SQL parser in the API.
26
39
 
40
+ If only a UID is supplied, it must match the runtime source before the compiler
41
+ can infer its dialect. A different UID cannot borrow the runtime's dialect.
42
+ Supplying a UID and dialect offline creates a payload; it does not authorize
43
+ execution against another source. See the explicit [query example](../examples/query.py).
44
+
27
45
  For applications still passing `scope_tables` or importing the removed scope
28
46
  classes, follow [upgrade a legacy application](upgrade-legacy-app.md). Remove the
29
47
  scope machinery instead of recreating it as per-query client checks.
@@ -48,6 +66,28 @@ an explicit commit inside a write batch can persist writes before a later error.
48
66
  Use the supported table operations when an operation needs their transaction and
49
67
  journal guarantees. See [database access](../security/index.md#sql-and-schema-boundary).
50
68
 
69
+ ## Read another registered source
70
+
71
+ Keep the same API connection and runtime default. An administrator first
72
+ [imports the source's tables or views](register-existing-tables.md); Readers and
73
+ Writers then select an imported MetaTable and use its registered source:
74
+
75
+ ```python
76
+ from metatables import MetaTable
77
+
78
+ external_table = MetaTable.get_by_uid("imported-table-uuid")
79
+ page = external_table.read_rows(columns=["symbol"], limit=100)
80
+ ```
81
+
82
+ Use `iter_rows()` to consume bounded pages incrementally. These operations honor
83
+ table and namespace grants, source availability and read-only access. They do
84
+ not change the catalog, runtime DataSource selection or write destination.
85
+ The current external reader accepts structured columns, predicates and ordering;
86
+ it does not accept SQL or joins. `run_query()` and `execute_operation()` against
87
+ another source return HTTP 409 with `data_source_not_selected_runtime`, rather
88
+ than HTTP 503 suggesting an outage. General external SQL requires a separate
89
+ permission model; `operation="select"` alone does not establish that boundary.
90
+
51
91
  ## Metadata and search
52
92
 
53
93
  `MetaTable.filter_by_body(...)` supports catalog filtering and pagination.
@@ -90,6 +90,10 @@ namespace grants. These application grants do not create roles or permissions in
90
90
  the external database. Runtime SQL security can remain uninitialized while
91
91
  external imports and reads work. Arbitrary SQL remains restricted to the selected
92
92
  runtime DataSource and its database-enforced caller permissions.
93
+ `read_rows()` and `iter_rows()` derive the source from the imported MetaTable;
94
+ callers do not replace the API URL or the runtime default to read another source.
95
+ An external UID passed to a SQL endpoint returns the explicit
96
+ `data_source_not_selected_runtime` conflict (HTTP 409).
93
97
 
94
98
  For SQLite runtime views, bounded reads allow only the approved view's output.
95
99
  Arbitrary SQL still requires grants on its underlying tables: SQLite's view-origin
@@ -88,7 +88,16 @@ def execute_repository_operation(operation, *, context):
88
88
  ```
89
89
 
90
90
  The compiler resolves missing DataSource or dialect values from the selected API
91
- runtime. A MetaTable UID is not a DataSource UID. For offline compilation supply
91
+ runtime. Leave `context.data_source_uid` as `None` for the automatic path: the
92
+ Environment selects the API deployment, and its runtime supplies the source and
93
+ dialect together. No application URL or source setting is needed. Missing or
94
+ malformed source metadata raises `metatables.DataSourceResolutionError`.
95
+ An explicit UID must match that runtime when its dialect is inferred; another
96
+ source cannot inherit the runtime dialect. Optional external reads use imported
97
+ MetaTables' `read_rows()`/`iter_rows()` under existing grants; arbitrary SQL remains
98
+ runtime-bound. See [query and mutate](query-and-mutate.md).
99
+
100
+ A MetaTable UID is not a DataSource UID. For offline compilation supply
92
101
  both `data_source_uid` and `dialect`. For example, this exercises the replacement
93
102
  compiler above without registration, credentials or a running API:
94
103
 
@@ -89,7 +89,7 @@ today's definitions.
89
89
 
90
90
  ## Runs in Admin
91
91
 
92
- **Runs** lists recorded attempts by default. Use **Attempts → Root invocations**
92
+ **Runs** lists recorded attempts by default. Use **Root invocations only**
93
93
  to restrict history to roots. The compact history on the left identifies each
94
94
  run by date/time, source updater, outcome indicator, and duration. Selecting a row
95
95
  shows that Run's UID, timestamps, outcome and duration on the right. The updater
@@ -5,14 +5,16 @@ implement a second platform HTTP client or token exchange.
5
5
 
6
6
  | Setting | Consumer | Purpose |
7
7
  | --- | --- | --- |
8
- | `METATABLES_API_URL` | Python client / CLI | Explicit base URL; unset/empty selects automatic discovery from the packaged API workflow. |
8
+ | `METATABLES_API_URL` | Python client / CLI | Local development only: loopback HTTP(S) base URL, set automatically by `--local` or `configure_local_client()`. Unset/empty resolves the packaged API deployment in the caller's SDK-owned Environment. Hosted URL overrides are rejected. |
9
9
  | `local_mode_available` in `configuration.yaml` | API / launcher | Enables developer Local/Hosted selection; strict boolean, default false. |
10
10
  | `METATABLES_LOCAL_TOKEN` | Local launcher and client | Private ASCII token of at least 40 characters. |
11
11
  | `METATABLES_LOCAL_ALLOWED_ORIGINS` | Local API | Comma-separated exact loopback HTTP(S) origins with explicit ports; empty by default. |
12
12
  | `METATABLES_LOCAL_STORAGE_DIR` | Local API | Root for the checkout's local runtime SQLite file, shared across Git branches; defaults to `~/.local/share/metatables`. |
13
13
 
14
- Client discovery uses the name derived from the API automatic-deployment file,
15
- not a deployment-name environment variable. It caches only the resolved endpoint
14
+ Client discovery uses the name derived from the API automatic-deployment file
15
+ and the caller's resolved Organization Environment. Identical names in other
16
+ Environments do not require URL configuration or renaming. The cache is scoped
17
+ to the platform and Environment and retains only the resolved endpoint
16
18
  and target identity; `/runtime-context/` continues to supply fresh DataSource
17
19
  state. See [client connection](../client/installation-and-connection.md).
18
20
 
@@ -14,8 +14,9 @@ In Admin, open **Runs**. The left-hand list shows all recorded attempts by defau
14
14
  including dependency attempts and older records without a captured graph. Each
15
15
  entry shows its timestamp, outcome and duration; dependency attempts are indented
16
16
  under their invocation's root when both are on the page. Select one to inspect its
17
- invocation and logs. Choose **Root invocations** in the **Attempts** filter to
18
- restrict the list explicitly, or filter by updater, outcome or start-time interval.
17
+ invocation and logs. The filters head the list: updater, outcome, a start-time
18
+ range (last hour, 24 hours, 7 days or a custom local-time range) and **Root
19
+ invocations only**. **Clear filters** keeps the selected run.
19
20
  The URL keeps these filters and the selected run. On narrow screens, the list
20
21
  appears above the run.
21
22
  Use **Hide history** to give the run the full width; **Show history** restores
@@ -22,6 +22,7 @@ Import application APIs from `metatables`. This list is generated from `metatabl
22
22
  | `DEFAULT_ALEMBIC_VERSION_TABLE_NAME` | `metatables` | constant |
23
23
  | `DEFAULT_PLATFORM_MANAGED_PROVISIONING` | `metatables` | constant |
24
24
  | `DataSource` | `metatables.models` | class |
25
+ | `DataSourceResolutionError` | `metatables.runtime_contract` | class |
25
26
  | `LastUpdateIndexTimePayload` | `metatables.models` | class |
26
27
  | `LastUpdateMultiIndexStatsPayload` | `metatables.models` | class |
27
28
  | `ManagedMetaTableCollectionCreateRow` | `metatables.models` | class |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence-metatable"
7
- version = "0.1.6.dev7"
7
+ version = "0.1.7.dev9"
8
8
  description = "Main Sequence MetaTables Python client and standalone API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -23,10 +23,11 @@ SDK_MODULES = frozenset({
23
23
  })
24
24
  SHARED_MODULES = frozenset({'metatables.local_connection', 'metatables.local_files', 'metatables.sdk_compat', 'metatables.update_configuration_contract',
25
25
  'metatables.transfer_contract', 'metatables.runtime_contract', 'metatables.log_contract', 'metatables.local_run_logs'})
26
- # Read-only platform provenance for the initialization descriptor. These exact
27
- # identifiers are allowed only at the SDK admission/display boundary; catalog
26
+ # Read-only platform provenance for initialization and endpoint discovery. These exact
27
+ # identifiers are allowed only at the SDK admission/display/discovery boundary; catalog
28
28
  # models, constraints and storage policy remain forbidden from owning them.
29
29
  DISPLAY_PROVENANCE = {
30
+ "src/metatables/endpoint.py": {"environment_uid", "organization_environment_uid", "resolve_organization_environment_uid"},
30
31
  "src/metatables/cli/local.py": {"sdk_session_environment", "vite_environment", "api_environment"},
31
32
  "src/metatables/sdk_compat.py": {"is_organization_admin"},
32
33
  'src/metatables/api/app/auth/boundary.py': {'environment_uid', 'organization_environment_uid', 'is_organization_admin'},
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.6.dev7
3
+ Version: 0.1.7.dev9
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
@@ -419,6 +419,7 @@ tests/contracts/capabilities.json
419
419
  tests/contracts/client_signatures.json
420
420
  tests/contracts/database_operations.json
421
421
  tests/contracts/test_bounded_transfer.py
422
+ tests/contracts/test_compiler_runtime_source.py
422
423
  tests/contracts/test_relation_batching.py
423
424
  tests/contracts/test_relation_import.py
424
425
  tests/contracts/test_storage_layouts.py