mainsequence-metatable 0.1.5.dev6__tar.gz → 0.1.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.agents/skills/client/metatables-local-development/SKILL.md +2 -2
  2. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.agents/skills/client/metatables-meta-tables/SKILL.md +4 -4
  3. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.agents/skills/client/metatables-migrations/SKILL.md +3 -3
  4. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +4 -4
  5. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +1 -1
  6. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/MANIFEST.in +3 -2
  7. {mainsequence_metatable-0.1.5.dev6/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.6}/PKG-INFO +2 -2
  8. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/README.md +1 -1
  9. mainsequence_metatable-0.1.6/alembic.ini +3 -0
  10. mainsequence_metatable-0.1.6/api/metatables/main.py +5 -0
  11. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +7 -0
  12. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0004-approved-application-migrations.md +1 -1
  13. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0007-database-enforced-table-access.md +8 -0
  14. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0008-mysql-mssql-table-workflows.md +12 -5
  15. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0010-import-external-tables-and-views.md +17 -8
  16. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0013-application-owned-migrations.md +1 -1
  17. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/client/0003-api-endpoint-resolution.md +96 -48
  18. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +10 -4
  19. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/index.md +1 -1
  20. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/build-an-updater.md +1 -1
  21. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/installation-and-connection.md +25 -10
  22. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/query-and-mutate.md +44 -4
  23. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/quickstart.md +1 -1
  24. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/read-existing-time-index-tables.md +1 -1
  25. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/register-existing-tables.md +4 -0
  26. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/tutorial.md +11 -11
  27. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/upgrade-legacy-app.md +10 -1
  28. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/architecture.md +1 -1
  29. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/contributing/architecture-and-boundaries.md +16 -8
  30. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/contributing/documentation.md +2 -2
  31. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/contributing/testing.md +1 -1
  32. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/README.md +1 -1
  33. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/data_sources/README.md +1 -1
  34. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/README.md +3 -3
  35. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/__main__.py +2 -2
  36. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/migrations/__init__.py +4 -4
  37. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/migrations/env.py +1 -1
  38. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/scripts/setup_metatables.py +2 -2
  39. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/README.md +7 -7
  40. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/docs}/examples/tutorial/__main__.py +2 -3
  41. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/docs}/examples/tutorial/migrations/__init__.py +5 -5
  42. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/migrations/env.py +1 -1
  43. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/catalog-migrations.md +2 -2
  44. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/configuration.md +5 -3
  45. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/hosted-runtime.md +13 -7
  46. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/reference/python.md +1 -0
  47. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/pyproject.toml +10 -10
  48. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/build_reference.py +5 -4
  49. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_boundaries.py +21 -14
  50. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_client_api_coverage.py +2 -2
  51. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_distribution_sources.py +15 -17
  52. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_docs.py +2 -2
  53. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/test_postgresql.py +1 -1
  54. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/mainsequence_metatable.egg-info}/PKG-INFO +2 -2
  55. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src}/mainsequence_metatable.egg-info/SOURCES.txt +214 -212
  56. mainsequence_metatable-0.1.6/src/mainsequence_metatable.egg-info/top_level.txt +1 -0
  57. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/__init__.py +1 -0
  58. mainsequence_metatable-0.1.5.dev6/scripts/build_package.py → mainsequence_metatable-0.1.6/src/metatables/_build.py +7 -0
  59. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/_skill_bundle.py +1 -1
  60. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/auth/boundary.py +3 -3
  61. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/auth/local_actor.py +7 -5
  62. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/bootstrap.py +28 -23
  63. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/credential_admin.py +12 -12
  64. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/development.py +7 -7
  65. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/main.py +54 -47
  66. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/column_search.py +6 -6
  67. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/contract_validation.py +5 -5
  68. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/data_sources.py +19 -13
  69. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/managed_finalize.py +16 -16
  70. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/migration_connection.py +11 -11
  71. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/namespaces.py +9 -9
  72. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/run_logs.py +8 -8
  73. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/runtime_context.py +7 -7
  74. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/schema_graph.py +5 -5
  75. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/security.py +12 -12
  76. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_cascade.py +11 -11
  77. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_crud.py +8 -8
  78. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_delete.py +13 -13
  79. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_filter.py +6 -6
  80. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_import.py +14 -11
  81. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_introspection.py +15 -13
  82. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_patch.py +16 -13
  83. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_registration.py +18 -15
  84. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_response.py +3 -3
  85. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_search_document.py +6 -6
  86. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_sql.py +19 -10
  87. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/table_update_pipeline.py +5 -5
  88. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/time_index_delete.py +12 -12
  89. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/time_index_reads.py +18 -13
  90. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/time_index_stats.py +5 -5
  91. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_batch.py +15 -10
  92. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_chunk_insert.py +22 -17
  93. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_constants.py +2 -2
  94. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_crud.py +12 -12
  95. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_details.py +8 -8
  96. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_graph.py +9 -9
  97. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_index_statistics.py +17 -14
  98. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_registration.py +10 -10
  99. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_runs.py +10 -10
  100. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/routes/update_statistics.py +10 -7
  101. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/runtime.py +21 -15
  102. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/runtime_control.py +8 -3
  103. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/source_passwords.py +4 -1
  104. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/source_registrations.py +12 -9
  105. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/access.py +4 -4
  106. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/runtime.py +7 -4
  107. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_cascade_delete.py +6 -3
  108. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_connection.py +7 -5
  109. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_introspection.py +7 -5
  110. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_table_delete.py +7 -4
  111. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_tables.py +7 -4
  112. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_time_index.py +5 -5
  113. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_time_index_delete.py +6 -6
  114. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_time_index_queries.py +6 -6
  115. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_time_index_stats.py +7 -4
  116. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/postgresql_time_index_write.py +7 -7
  117. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/source_validation.py +3 -3
  118. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/sqlite_connection.py +4 -4
  119. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/sqlite_introspection.py +6 -4
  120. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/table_cursor.py +1 -1
  121. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/catalog.py +8 -6
  122. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/contracts.py +1 -1
  123. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/hosted.py +3 -3
  124. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/hosted_access.py +3 -3
  125. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/migration_connection.py +1 -1
  126. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/native.py +15 -11
  127. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/operations.py +7 -7
  128. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/postgresql_access.py +4 -4
  129. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/registry.py +14 -10
  130. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/relation_tables.py +5 -5
  131. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/relational.py +10 -8
  132. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/restricted_sql.py +7 -4
  133. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/sqlite_access.py +4 -4
  134. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/contracts/values.py +1 -1
  135. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/catalog_rules.py +2 -2
  136. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/catalog_data_sources.py +6 -6
  137. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/credential_keys.py +1 -1
  138. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/credential_store.py +1 -1
  139. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/data_source_provider.py +1 -1
  140. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/local_credentials.py +3 -3
  141. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/local_workspace.py +1 -1
  142. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/runtime_binding.py +3 -3
  143. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/runtime_data_sources.py +2 -2
  144. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/source_validation.py +1 -1
  145. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/env.py +5 -2
  146. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0001_initial.py +1 -1
  147. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0002_security_model.py +1 -1
  148. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0004_historical_run_graphs.py +1 -1
  149. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0005_database_access.py +1 -1
  150. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0006_local_credentials.py +1 -1
  151. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0007_external_relation_names.py +1 -1
  152. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0008_upload_receipts.py +1 -1
  153. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/bootstrap_migrations.py +6 -6
  154. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/catalog_schema.py +2 -2
  155. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/create_table.py +14 -10
  156. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/finalize_managed.py +3 -3
  157. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/import_relations.py +17 -10
  158. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/introspect_table.py +10 -10
  159. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/read_time_index.py +7 -7
  160. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/register_catalog.py +14 -10
  161. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/cascade.py +1 -1
  162. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/catalog.py +6 -6
  163. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/database.py +5 -5
  164. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/grants.py +4 -4
  165. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/labels.py +2 -2
  166. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/locking.py +1 -1
  167. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/models.py +3 -3
  168. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/physical_operations.py +3 -3
  169. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/projections.py +2 -2
  170. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/run_graphs.py +3 -3
  171. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/schema_graph.py +5 -5
  172. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/table_body_filter.py +5 -5
  173. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/table_queries.py +4 -4
  174. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/table_response.py +3 -3
  175. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/update_graph.py +3 -3
  176. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/update_pipeline.py +4 -4
  177. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/updates.py +4 -4
  178. mainsequence_metatable-0.1.6/src/metatables/api/metatables/main.py +8 -0
  179. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/app.py +3 -3
  180. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/local.py +4 -4
  181. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/project.py +1 -1
  182. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/compiled_sql/v1.py +16 -5
  183. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/endpoint.py +50 -15
  184. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/README.md +3 -3
  185. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/data_sources/README.md +4 -4
  186. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/README.md +5 -5
  187. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/__main__.py +2 -2
  188. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/migrations/__init__.py +4 -4
  189. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/migrations/env.py +1 -1
  190. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/scripts/setup_metatables.py +2 -2
  191. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/README.md +8 -8
  192. {mainsequence_metatable-0.1.5.dev6/docs → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/__main__.py +2 -3
  193. {mainsequence_metatable-0.1.5.dev6/docs → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/__init__.py +5 -5
  194. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/env.py +1 -1
  195. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/models.py +4 -2
  196. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/runtime_context.py +1 -4
  197. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/runtime_contract.py +28 -0
  198. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_caller_assertions.py +1 -1
  199. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_data_source_identity.py +7 -7
  200. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_development_client.py +2 -2
  201. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_hosted_environment_target.py +5 -5
  202. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_local_mode.py +19 -19
  203. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_platform_fact_cache.py +4 -4
  204. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_runtime_bootstrap.py +27 -27
  205. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_runtime_scaffold.py +6 -6
  206. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_runtime_selection.py +19 -19
  207. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_runtime_storage_binding.py +44 -21
  208. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/auth/test_source_passwords.py +2 -2
  209. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/catalog/test_catalog_foundation.py +4 -4
  210. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/catalog/test_contract_projection.py +8 -5
  211. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/catalog/test_database_config.py +1 -1
  212. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/catalog/test_index_statistics.py +4 -1
  213. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/catalog/test_migration.py +5 -5
  214. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/conftest.py +1 -1
  215. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/capabilities.json +1 -0
  216. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/test_bounded_transfer.py +12 -12
  217. mainsequence_metatable-0.1.6/tests/contracts/test_compiler_runtime_source.py +139 -0
  218. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/test_relation_batching.py +16 -8
  219. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/test_relation_import.py +7 -3
  220. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/test_storage_layouts.py +1 -1
  221. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/test_table_contracts.py +1 -1
  222. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/Dockerfile +0 -1
  223. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/conftest.py +21 -21
  224. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_api_contract.py +1 -1
  225. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_application_migration.py +1 -1
  226. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_bootstrap_recovery.py +8 -8
  227. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_catalog_contract.py +14 -6
  228. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_credential_catalog.py +4 -4
  229. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_physical_contract.py +16 -16
  230. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_relation_import.py +22 -22
  231. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_runtime_bootstrap.py +12 -10
  232. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_sql_security.py +14 -14
  233. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/test_update_client.py +19 -15
  234. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_operations/test_physical_operations.py +3 -3
  235. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_operations/test_postgresql_operations.py +8 -8
  236. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_operations/test_runtime_and_temporal.py +11 -8
  237. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/documentation/test_project_checks.py +21 -6
  238. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_api_endpoint.py +167 -17
  239. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_application_owned_migrations.py +1 -1
  240. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_catalog_outage.py +6 -6
  241. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_api_contract.py +4 -4
  242. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_package.py +16 -12
  243. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_data_source_registry.py +24 -24
  244. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_local_actor_client_api.py +8 -8
  245. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_local_cli_workflow.py +9 -3
  246. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_local_client_selection.py +3 -3
  247. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_managed_finalize_client_api.py +15 -12
  248. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_namespaces_admin_http.py +8 -8
  249. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_remaining_client_routes.py +31 -25
  250. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_run_graphs.py +12 -12
  251. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_run_logs.py +8 -8
  252. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_runtime_transition.py +4 -4
  253. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_sdk_local_startup.py +2 -2
  254. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_sqlite_runtime.py +18 -18
  255. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_delete_client_api.py +13 -11
  256. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_filter_client_api.py +8 -8
  257. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_introspection_client_api.py +13 -10
  258. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_patch_client_api.py +9 -9
  259. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_search_document_api.py +8 -8
  260. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_stats_api.py +8 -8
  261. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_update_pipeline.py +9 -9
  262. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_table_updates_http.py +9 -9
  263. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_time_index_delete_client_api.py +16 -11
  264. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_time_index_reads_client_api.py +14 -11
  265. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_update_batch_client_api.py +9 -9
  266. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_update_chunk_insert_client_api.py +17 -12
  267. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_update_dependency_priority_client_api.py +11 -11
  268. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_update_index_statistics_client_api.py +14 -12
  269. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_update_registration_client_api.py +8 -8
  270. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/examples/test_documented_examples.py +6 -6
  271. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/examples/test_postgresql_examples.py +4 -4
  272. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/examples/test_setup_launch.py +13 -13
  273. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/examples/test_tutorial.py +14 -9
  274. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_credential_store.py +17 -14
  275. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_data_source_rules.py +1 -1
  276. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_local_data_sources.py +4 -4
  277. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_postgresql_connection.py +9 -6
  278. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_postgresql_sql.py +1 -1
  279. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_postgresql_tables.py +9 -6
  280. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_postgresql_time_index_queries.py +18 -11
  281. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_source_validation.py +3 -3
  282. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_sqlite_operations.py +19 -17
  283. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/labels/test_labels.py +16 -6
  284. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/operations/test_create_table_operation.py +8 -8
  285. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/operations/test_create_table_postgres.py +11 -8
  286. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/operations/test_physical_operation_journal.py +4 -4
  287. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/operations/test_register_catalog.py +13 -5
  288. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/operations/test_search_documents.py +1 -1
  289. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/packaging/test_client_skills.py +1 -1
  290. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/packaging/test_distribution_sources.py +21 -5
  291. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/packaging/test_editable_build.py +10 -4
  292. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/packaging/test_installed_distribution.py +63 -14
  293. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_governed_sql_scope.py +2 -2
  294. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_local_actor_membership.py +3 -3
  295. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_migration_boundary.py +2 -2
  296. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_namespace_grants.py +5 -5
  297. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_security_api.py +14 -14
  298. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_table_body_filter.py +7 -7
  299. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_table_grants.py +5 -5
  300. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/permissions/test_table_queries.py +6 -6
  301. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/uv.lock +1 -1
  302. mainsequence_metatable-0.1.5.dev6/alembic.ini +0 -3
  303. mainsequence_metatable-0.1.5.dev6/api/metatables/main.py +0 -8
  304. mainsequence_metatable-0.1.5.dev6/mainsequence_metatable.egg-info/top_level.txt +0 -3
  305. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/.mainsequence/workflows/metatables-api.yaml +0 -0
  306. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/LICENSE +0 -0
  307. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/compose.database-tests.yml +0 -0
  308. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  309. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  310. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  311. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  312. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  313. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0009-shared-credential-store.md +0 -0
  314. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  315. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/authentication-and-errors.md +0 -0
  316. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/data-sources.md +0 -0
  317. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/openapi.json +0 -0
  318. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/overview.md +0 -0
  319. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/reference.md +0 -0
  320. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/tables-and-migrations.md +0 -0
  321. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/api/time-index-and-updates.md +0 -0
  322. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/assets/branding/metatables.svg +0 -0
  323. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/assets/diagrams/local-client-experience.svg +0 -0
  324. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/bounded-transfers.md +0 -0
  325. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/define-and-migrate-tables.md +0 -0
  326. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/client/local-storage.md +0 -0
  327. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/data-sources.md +0 -0
  328. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/identity-and-scope.md +0 -0
  329. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/permissions-namespaces-labels.md +0 -0
  330. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/runs-and-execution-graphs.md +0 -0
  331. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  332. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/concepts/time-index-tables-and-updates.md +0 -0
  333. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/contributing/database-backends.md +0 -0
  334. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/contributing/releasing.md +0 -0
  335. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/__init__.py +0 -0
  336. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/bounded_reader.py +0 -0
  337. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/data_sources/mssql.json +0 -0
  338. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/data_sources/mysql.json +0 -0
  339. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/data_sources/postgresql.json +0 -0
  340. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/data_sources/register.py +0 -0
  341. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/external_table.py +0 -0
  342. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/__init__.py +0 -0
  343. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/migrations/script.py.mako +0 -0
  344. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  345. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/local_app/tables.py +0 -0
  346. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/query.py +0 -0
  347. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/quickstart.py +0 -0
  348. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/reader.py +0 -0
  349. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/scripts/__init__.py +0 -0
  350. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tables.py +0 -0
  351. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/__init__.py +0 -0
  352. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/data/README.md +0 -0
  353. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  354. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/frames.py +0 -0
  355. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/migrations/registry.py +0 -0
  356. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  357. {mainsequence_metatable-0.1.5.dev6/api/app → mainsequence_metatable-0.1.6/docs/examples/tutorial/migrations/versions}/__init__.py +0 -0
  358. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  359. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  360. {mainsequence_metatable-0.1.5.dev6/api/app/routes → mainsequence_metatable-0.1.6/docs/examples/tutorial/migrations/versions/metatables_market_tutorial}/__init__.py +0 -0
  361. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/operations.py +0 -0
  362. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/tables.py +0 -0
  363. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/tutorial/updaters.py +0 -0
  364. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/examples/updater.py +0 -0
  365. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/index.md +0 -0
  366. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/local-runtime.md +0 -0
  367. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/recovery-and-observability.md +0 -0
  368. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/run-history.md +0 -0
  369. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/operations/run-logs.md +0 -0
  370. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/reference/capabilities.md +0 -0
  371. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/reference/cli.md +0 -0
  372. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/security/index.md +0 -0
  373. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/security/ownership-and-sharing.md +0 -0
  374. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/docs/security/permissions.md +0 -0
  375. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/mkdocs.yml +0 -0
  376. {mainsequence_metatable-0.1.5.dev6/api/backend/operations → mainsequence_metatable-0.1.6/scripts}/__init__.py +0 -0
  377. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_examples_debug.py +0 -0
  378. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/check_project.py +0 -0
  379. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/dev_release_version.py +0 -0
  380. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/scripts/test_databases.py +0 -0
  381. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/setup.cfg +0 -0
  382. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src}/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  383. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src}/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  384. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src}/mainsequence_metatable.egg-info/requires.txt +0 -0
  385. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/_admin_source.json +0 -0
  386. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/__init__.py +0 -0
  387. {mainsequence_metatable-0.1.5.dev6/docs/examples/tutorial/migrations/versions → mainsequence_metatable-0.1.6/src/metatables/api/app}/__init__.py +0 -0
  388. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/auth/__init__.py +0 -0
  389. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/auth/caller_assertions.py +0 -0
  390. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/configuration.py +0 -0
  391. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/development_client.py +0 -0
  392. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/platform_cache.py +0 -0
  393. {mainsequence_metatable-0.1.5.dev6/docs/examples/tutorial/migrations/versions/metatables_market_tutorial → mainsequence_metatable-0.1.6/src/metatables/api/app/routes}/__init__.py +0 -0
  394. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/app/transfer.py +0 -0
  395. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/__init__.py +0 -0
  396. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/__init__.py +0 -0
  397. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/__init__.py +0 -0
  398. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  399. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  400. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  401. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  402. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/adapters/maintenance/validation.py +0 -0
  403. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/catalog_ddl.py +0 -0
  404. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/catalog_types.py +0 -0
  405. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/pages.py +0 -0
  406. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/backends/streaming.py +0 -0
  407. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/contracts/__init__.py +0 -0
  408. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/contracts/relation_import.py +0 -0
  409. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/contracts/storage_layouts.py +0 -0
  410. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/contracts/table_contracts.py +0 -0
  411. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/__init__.py +0 -0
  412. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/data_source_rules.py +0 -0
  413. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/index_statistics.py +0 -0
  414. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/label_rules.py +0 -0
  415. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/permission_rules.py +0 -0
  416. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/domain/update_constants.py +0 -0
  417. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/__init__.py +0 -0
  418. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/platform_principals.py +0 -0
  419. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/integrations/run_logs.py +0 -0
  420. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/__init__.py +0 -0
  421. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/script.py.mako +0 -0
  422. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  423. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/migrations/versions/__init__.py +0 -0
  424. {mainsequence_metatable-0.1.5.dev6/examples/tutorial/migrations/versions → mainsequence_metatable-0.1.6/src/metatables/api/backend/operations}/__init__.py +0 -0
  425. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/operations/search_documents.py +0 -0
  426. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/__init__.py +0 -0
  427. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/sqlite_types.py +0 -0
  428. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/persistence/upload_receipts.py +0 -0
  429. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/backend/presentation/data_source_summary.py +0 -0
  430. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/metatables/__init__.py +0 -0
  431. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/api/metatables/configuration.yaml +0 -0
  432. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/__init__.py +0 -0
  433. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/admin_install.py +0 -0
  434. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/filters.py +0 -0
  435. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/migrations.py +0 -0
  436. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/cli/skills.py +0 -0
  437. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/compiled_sql/__init__.py +0 -0
  438. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/compiled_sql/mssql.py +0 -0
  439. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/dtype_codec.py +0 -0
  440. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/__init__.py +0 -0
  441. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/bounded_reader.py +0 -0
  442. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/data_sources/mssql.json +0 -0
  443. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/data_sources/mysql.json +0 -0
  444. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/data_sources/postgresql.json +0 -0
  445. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/data_sources/register.py +0 -0
  446. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/external_table.py +0 -0
  447. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/__init__.py +0 -0
  448. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/migrations/script.py.mako +0 -0
  449. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  450. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/local_app/tables.py +0 -0
  451. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/query.py +0 -0
  452. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/quickstart.py +0 -0
  453. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/reader.py +0 -0
  454. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/scripts/__init__.py +0 -0
  455. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tables.py +0 -0
  456. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/__init__.py +0 -0
  457. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/data/README.md +0 -0
  458. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  459. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/frames.py +0 -0
  460. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/registry.py +0 -0
  461. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/script.py.mako +0 -0
  462. {mainsequence_metatable-0.1.5.dev6/examples/tutorial/migrations/versions/metatables_market_tutorial → mainsequence_metatable-0.1.6/src/metatables/examples/tutorial/migrations/versions}/__init__.py +0 -0
  463. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  464. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  465. {mainsequence_metatable-0.1.5.dev6/scripts → mainsequence_metatable-0.1.6/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial}/__init__.py +0 -0
  466. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/operations.py +0 -0
  467. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/tables.py +0 -0
  468. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/tutorial/updaters.py +0 -0
  469. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6/src/metatables}/examples/updater.py +0 -0
  470. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/future_registry.py +0 -0
  471. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/hashing.py +0 -0
  472. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/instrumentation.py +0 -0
  473. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/local_connection.py +0 -0
  474. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/local_files.py +0 -0
  475. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/local_run_logs.py +0 -0
  476. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/log_contract.py +0 -0
  477. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/__init__.py +0 -0
  478. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/alembic.py +0 -0
  479. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/connection.py +0 -0
  480. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/env.py +0 -0
  481. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/provider.py +0 -0
  482. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/registry.py +0 -0
  483. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/runner.py +0 -0
  484. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/scaffold.py +0 -0
  485. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/templates/__init__.py +0 -0
  486. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/templates/env.py.mako +0 -0
  487. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/templates/script.py.mako +0 -0
  488. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/migrations/tls.py +0 -0
  489. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/pydantic_metadata.py +0 -0
  490. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/run_logging.py +0 -0
  491. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/runtime.py +0 -0
  492. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/schema_names.py +0 -0
  493. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/sdk_compat.py +0 -0
  494. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/sqlalchemy_contracts.py +0 -0
  495. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/time_index_table_refs.py +0 -0
  496. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/transfer.py +0 -0
  497. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/transfer_contract.py +0 -0
  498. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/transport.py +0 -0
  499. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/update_configuration_contract.py +0 -0
  500. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/__init__.py +0 -0
  501. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/configuration.py +0 -0
  502. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/dependencies.py +0 -0
  503. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/managers.py +0 -0
  504. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/namespacing.py +0 -0
  505. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/runner.py +0 -0
  506. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/updaters.py +0 -0
  507. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/updaters/utils.py +0 -0
  508. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/src/metatables/upload.py +0 -0
  509. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/client_signatures.json +0 -0
  510. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/contracts/database_operations.json +0 -0
  511. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/Dockerfile.dockerignore +0 -0
  512. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/__init__.py +0 -0
  513. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/provider/__init__.py +0 -0
  514. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/provider/env.py +0 -0
  515. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  516. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_admin_installation.py +0 -0
  517. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_api_coverage.py +0 -0
  518. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_migration_scaffold.py +0 -0
  519. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_migration_tls.py +0 -0
  520. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_signatures.py +0 -0
  521. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_client_value_behaviors.py +0 -0
  522. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/e2e/test_public_imports.py +0 -0
  523. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/integrations/test_local_run_logs.py +0 -0
  524. {mainsequence_metatable-0.1.5.dev6 → mainsequence_metatable-0.1.6}/tests/packaging/test_dev_release_version.py +0 -0
@@ -12,11 +12,11 @@ development fixtures and test writes in the local runtime, then return to the
12
12
  intended environment as part of the requested workflow. Respect an explicitly
13
13
  requested target or backend-specific test scope.
14
14
 
15
- In a copied skill, resolve the `docs/` and `examples/` paths below relative to
15
+ In a copied skill, resolve the `docs/` and `src/metatables/examples/` paths below relative to
16
16
  this skill's `references/` directory. In the MetaTables source checkout, resolve
17
17
  them from the repository root. Read `docs/operations/local-runtime.md` for runtime
18
18
  selection and persistence, and `docs/client/installation-and-connection.md` when
19
- installing or troubleshooting. `examples/local_app/README.md` provides a complete
19
+ installing or troubleshooting. `src/metatables/examples/local_app/README.md` provides a complete
20
20
  installed-package migration/write/read example.
21
21
 
22
22
  ## Select local storage deliberately
@@ -12,7 +12,7 @@ client. It covers application-facing models and workflows. Client-library
12
12
  implementation, this repository's development/release tooling, and API internals
13
13
  have separate ownership.
14
14
 
15
- In a copied skill, resolve the `docs/` and `examples/` paths below relative to
15
+ In a copied skill, resolve the `docs/` and `src/metatables/examples/` paths below relative to
16
16
  this skill's `references/` directory. The client CLI bundles the matching version's
17
17
  guides and examples there, including their linked documents. In the MetaTables
18
18
  source checkout, read the same paths from the repository root.
@@ -51,7 +51,7 @@ contract. Preserve the user's existing authorization and scope.
51
51
  evolution.
52
52
  - Existing externally owned tables use `register_external_sqlalchemy_model` with
53
53
  their actual physical binding. Registration does not create the physical table;
54
- see `docs/client/register-existing-tables.md` and `examples/external_table.py`.
54
+ see `docs/client/register-existing-tables.md` and `src/metatables/examples/external_table.py`.
55
55
  - `backend_managed` is a separate low-level API provisioning intent. Do not use it
56
56
  as a substitute for ordinary managed application-table migrations.
57
57
 
@@ -62,7 +62,7 @@ are fingerprints, not table identity. See `docs/concepts/identity-and-scope.md`.
62
62
 
63
63
  ## SQLAlchemy contract rules
64
64
 
65
- Use `examples/tables.py` as the tested pattern. Declare an explicit
65
+ Use `src/metatables/examples/tables.py` as the tested pattern. Declare an explicit
66
66
  application-prefixed physical name with `schema_table_name(app, concept)`, a
67
67
  stable logical identifier, and an intention-rich `__metatable_description__`.
68
68
  Give columns useful `info={"label": ..., "description": ...}` metadata. Explain
@@ -84,7 +84,7 @@ revisions; do not recompute identity from columns or rewrite applied history.
84
84
 
85
85
  ## Queries and mutations
86
86
 
87
- Read `docs/client/query-and-mutate.md` and `examples/query.py`. Use
87
+ Read `docs/client/query-and-mutate.md` and `src/metatables/examples/query.py`. Use
88
88
  `compile_sqlalchemy_statement` with bound parameters. The request sends SQL and
89
89
  selects one DataSource; the API executes as the authenticated user, and the
90
90
  selected database backend enforces Reader/Writer permissions on the tables
@@ -16,7 +16,7 @@ For upgrading older client imports, SQL scopes or provider integration, use the
16
16
  [legacy upgrade skill](../metatables-upgrade-legacy-app/SKILL.md). This skill
17
17
  covers authoring and running application schema revisions.
18
18
 
19
- In a copied skill, resolve the `docs/` and `examples/` paths below relative to
19
+ In a copied skill, resolve the `docs/` and `src/metatables/examples/` paths below relative to
20
20
  this skill's `references/` directory. The client CLI bundles the matching version's
21
21
  guides and examples there, including their linked documents. In the MetaTables
22
22
  source checkout, read the same paths from the repository root.
@@ -28,7 +28,7 @@ verification within the requested scope.
28
28
 
29
29
  Read `docs/client/define-and-migrate-tables.md`,
30
30
  `docs/concepts/table-contracts-and-lifecycle.md`, and the tested
31
- `examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
31
+ `src/metatables/examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
32
32
  models, select a provider, author and apply a revision with the client, then
33
33
  finalize catalog bindings through the API. Use the
34
34
  [table skill](../metatables-meta-tables/SKILL.md) for contract design.
@@ -106,7 +106,7 @@ and finalizes contracts through the API. Treat connection material as private.
106
106
 
107
107
  Use the application's setup entry point when available. Python code can call
108
108
  `metatables.upgrade_application("ledger.migrations:migration")`;
109
- `examples/scripts/setup_metatables.py` shows the pattern. Remove the retired
109
+ `src/metatables/examples/scripts/setup_metatables.py` shows the pattern. Remove the retired
110
110
  `application_migration_providers` setting and use Python references instead of aliases.
111
111
  Application migration histories remain separate from API system migrations.
112
112
 
@@ -12,7 +12,7 @@ client. It covers application-facing models and workflows. Client-library
12
12
  implementation, this repository's development/release tooling, and API internals
13
13
  have separate ownership.
14
14
 
15
- In a copied skill, resolve the `docs/` and `examples/` paths below relative to
15
+ In a copied skill, resolve the `docs/` and `src/metatables/examples/` paths below relative to
16
16
  this skill's `references/` directory. The client CLI bundles the matching version's
17
17
  guides and examples there, including their linked documents. In the MetaTables
18
18
  source checkout, read the same paths from the repository root.
@@ -24,8 +24,8 @@ verification within the requested scope.
24
24
 
25
25
  Read `docs/client/build-an-updater.md`,
26
26
  `docs/concepts/time-index-tables-and-updates.md`, and the tested
27
- `examples/updater.py`. Use `docs/client/read-existing-time-index-tables.md` and
28
- `examples/reader.py` for consumers that only need existing output.
27
+ `src/metatables/examples/updater.py`. Use `docs/client/read-existing-time-index-tables.md` and
28
+ `src/metatables/examples/reader.py` for consumers that only need existing output.
29
29
 
30
30
  The storage contract is a `PlatformTimeIndexMetaTable` SQLAlchemy class. The
31
31
  producer is a `TimeIndexTableUpdater`; the API record is `TimeIndexTableUpdate`.
@@ -41,7 +41,7 @@ choices, first-run/backfill bounds, and whether identity must be preserved from
41
41
  the task and existing code. Clarify only unresolved choices that change the
42
42
  published contract. Keep storage description, namespace, identifier, cadence,
43
43
  columns, and FK/index metadata on the authoring model, not the updater config.
44
- Use intention-rich table and column descriptions; see `examples/tables.py`.
44
+ Use intention-rich table and column descriptions; see `src/metatables/examples/tables.py`.
45
45
 
46
46
  Migrate and bind the output class before constructing the producer. Pass explicit
47
47
  `config` and `output_table`; do not create/register tables inside `update()`.
@@ -14,7 +14,7 @@ in the MainSequence SDK.
14
14
 
15
15
  Read `docs/client/upgrade-legacy-app.md` for the conversion table and before/after
16
16
  repository compiler examples. In a copied skill, resolve the `docs/` and
17
- `examples/` paths here relative to this skill's `references/` directory. In the
17
+ `src/metatables/examples/` paths here relative to this skill's `references/` directory. In the
18
18
  MetaTables source checkout, resolve them from the repository root.
19
19
 
20
20
  Use `docs/client/installation-and-connection.md` to establish the target package
@@ -1,8 +1,9 @@
1
1
  include alembic.ini mkdocs.yml uv.lock compose.database-tests.yml
2
2
  include .mainsequence/workflows/metatables-api.yaml
3
- include api/metatables/configuration.yaml
3
+ include api/metatables/main.py
4
+ include src/metatables/api/metatables/configuration.yaml
4
5
  recursive-include docs *.md *.json *.py *.csv *.mako *.svg
5
- recursive-include examples *.md *.json *.py *.csv *.mako
6
+ recursive-include src/metatables/examples *.md *.json *.py *.csv *.mako
6
7
  recursive-include scripts *.py
7
8
  recursive-include tests *.py *.json Dockerfile Dockerfile.dockerignore
8
9
  graft .agents/skills/client
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.5.dev6
3
+ Version: 0.1.6
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
@@ -100,7 +100,7 @@ through Settings; startup never runs Alembic.
100
100
  The [documentation index](docs/index.md) separates client, API, operations, and
101
101
  contributor guides. The [capability reference](docs/reference/capabilities.md)
102
102
  records implemented and unavailable operations, including inherited methods and
103
- CLI commands. Runnable guide assets live in [examples](examples/README.md).
103
+ CLI commands. Runnable guide assets live in [examples](src/metatables/examples/README.md).
104
104
 
105
105
  ## Client skills
106
106
 
@@ -45,7 +45,7 @@ through Settings; startup never runs Alembic.
45
45
  The [documentation index](docs/index.md) separates client, API, operations, and
46
46
  contributor guides. The [capability reference](docs/reference/capabilities.md)
47
47
  records implemented and unavailable operations, including inherited methods and
48
- CLI commands. Runnable guide assets live in [examples](examples/README.md).
48
+ CLI commands. Runnable guide assets live in [examples](src/metatables/examples/README.md).
49
49
 
50
50
  ## Client skills
51
51
 
@@ -0,0 +1,3 @@
1
+ [alembic]
2
+ script_location = src/metatables/api/backend/migrations
3
+
@@ -0,0 +1,5 @@
1
+ """Hosted workflow entrypoint; the server is installed as metatables.api."""
2
+
3
+ from metatables.api.metatables.main import app
4
+
5
+ __all__ = ["app"]
@@ -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.
@@ -50,7 +50,7 @@ remain explicit Settings operations.
50
50
 
51
51
  ## Example integration
52
52
 
53
- `examples/scripts/setup_metatables.py` only reserves, upgrades and finalizes the
53
+ `src/metatables/examples/scripts/setup_metatables.py` only reserves, upgrades and finalizes the
54
54
  tutorial provider. Every data-dependent tutorial command calls it first. VS Code
55
55
  launches then seed instruments and run producers through `--prepare-data` before
56
56
  the requested example. Offline preview and endpoint-only connect skip preparation.
@@ -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
 
@@ -46,7 +53,7 @@ ownership and unknown-outcome reconciliation. Local verification is complete; ho
46
53
 
47
54
  `POST /data-sources/` accepts `mysql` and `mssql`, and validation opens their
48
55
  connections and runs `SELECT 1`. At the time of the original decision, the
49
- static feature registry declared no table support for either. The physical operations in `api/backend/integrations/`
56
+ static feature registry declared no table support for either. The physical operations in `src/metatables/api/backend/integrations/`
50
57
  use PostgreSQL or SQLite connections, SQL and introspection; they cannot act on
51
58
  the registered MySQL or MSSQL source.
52
59
 
@@ -172,14 +179,14 @@ engine matrices in routes, Admin and documentation.
172
179
 
173
180
  Refactor the current SQLite and PostgreSQL paths into this contract before
174
181
  adding MySQL and MSSQL implementations. In particular, remove engine decisions
175
- from `api/app/bootstrap.py`, `api/app/routes/application_migrations.py`,
176
- `api/app/routes/table_sql.py`, `api/app/routes/runtime_context.py`, and
177
- `api/backend/integrations/source_validation.py`; route existing SQLite and
182
+ from `src/metatables/api/app/bootstrap.py`, `src/metatables/api/app/routes/application_migrations.py`,
183
+ `src/metatables/api/app/routes/table_sql.py`, `src/metatables/api/app/routes/runtime_context.py`, and
184
+ `src/metatables/api/backend/integrations/source_validation.py`; route existing SQLite and
178
185
  PostgreSQL work through the bound backend in this first step, before implementing
179
186
  MySQL or MSSQL table support. During the refactor, retain the existing MySQL/MSSQL
180
187
  connection probes without pretending they satisfy the full backend contract.
181
188
  Move the branches in `postgresql_*`
182
- physical helpers and `api/backend/database_operations/runtime.py` into adapter
189
+ physical helpers and `src/metatables/api/backend/database_operations/runtime.py` into adapter
183
190
  implementations or shared engine-neutral helpers. This refactor must preserve
184
191
  current SQLite and PostgreSQL behavior under the existing contract tests. It
185
192
  prevents the new engines from multiplying conditionals across every endpoint.
@@ -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
@@ -60,10 +69,10 @@ explicitly identified as belonging to the Vite application.
60
69
 
61
70
  | Area | Current evidence | Required change |
62
71
  | --- | --- | --- |
63
- | HTTP workflow | Generated OpenAPI has `POST /meta-tables/register/` and `POST /meta-tables/{uid}/introspect/`, but no import action. `api/app/routes/table_registration.py` requires one caller-authored contract. | One import operation with discovery, preview, selection, reconciliation, and structured results. |
64
- | Discovery | `TableBackend` in `api/backend/backends/contracts.py` introspects a known name. It has no relation discovery or batch introspection contract. | Add narrow discovery and read operations to this existing facet. |
72
+ | HTTP workflow | Generated OpenAPI has `POST /meta-tables/register/` and `POST /meta-tables/{uid}/introspect/`, but no import action. `src/metatables/api/app/routes/table_registration.py` requires one caller-authored contract. | One import operation with discovery, preview, selection, reconciliation, and structured results. |
73
+ | Discovery | `TableBackend` in `src/metatables/api/backend/backends/contracts.py` introspects a known name. It has no relation discovery or batch introspection contract. | Add narrow discovery and read operations to this existing facet. |
65
74
  | External source resolution | `CatalogDataSourceProvider.get()` calls `RuntimeStorageBinding.require_execution_source()`. A saved non-runtime source cannot be used by table operations. | Resolve sources according to the authorized operation; preserve the runtime restriction for managed DDL, migrations, and caller-written SQL. |
66
- | Restart invariants | `RuntimeBootstrap.inspect()` in `api/app/bootstrap.py` rejects any `MetaTable` or `PhysicalOperation` referencing another source. | Permit externally owned MetaTables on registered sources, while keeping physical mutation journals and managed tables bound to the runtime source. |
75
+ | Restart invariants | `RuntimeBootstrap.inspect()` in `src/metatables/api/app/bootstrap.py` rejects any `MetaTable` or `PhysicalOperation` referencing another source. | Permit externally owned MetaTables on registered sources, while keeping physical mutation journals and managed tables bound to the runtime source. |
67
76
  | View access | `postgresql_access.py` and `sqlite_access.py` require ordinary tables. `hosted.py` rejects MySQL objects other than base tables and MSSQL objects other than user tables. | Explicit view admission and read semantics. Changing an introspection query alone is insufficient. |
68
77
  | Physical metadata | `MetaTable.kind` distinguishes relational and time-index tables. Contract normalization preserves extra physical fields but does not validate `relation_kind` as a first-class invariant. | Validate physical relation kind independently of the existing logical kind. A view is a relational MetaTable. |
69
78
  | Names and types | `catalog_rules.py` and `table_contracts.py` impose an unqualified 63-character table-name rule; `models.py` stores `String(63)`. Some type validation retains PostgreSQL assumptions. | Preserve legal external identifiers and native types through adapter normalization, without truncation or executing catalog expressions. |
@@ -118,7 +127,7 @@ generic capability registry is introduced.
118
127
  ### 2. Extend the existing backend contract
119
128
 
120
129
  Add these conceptual operations to `DatabaseBackend.tables` in
121
- `api/backend/backends/contracts.py`; retain `backend_for(source)` as the only
130
+ `src/metatables/api/backend/backends/contracts.py`; retain `backend_for(source)` as the only
122
131
  engine dispatch point:
123
132
 
124
133
  ```text
@@ -556,11 +565,11 @@ availability.
556
565
 
557
566
  ## Implementation and verification record
558
567
 
559
- - Shared orchestration: `api/backend/operations/import_relations.py`; engine
568
+ - Shared orchestration: `src/metatables/api/backend/operations/import_relations.py`; engine
560
569
  discovery, read-only sessions and safe runtime-view validation:
561
- `api/backend/backends/relation_tables.py`, selected by the existing registry.
562
- - Published commands/results: `api/backend/contracts/relation_import.py` and
563
- `api/app/routes/table_import.py`. Existing introspect handles Writer refresh.
570
+ `src/metatables/api/backend/backends/relation_tables.py`, selected by the existing registry.
571
+ - Published commands/results: `src/metatables/api/backend/contracts/relation_import.py` and
572
+ `src/metatables/api/app/routes/table_import.py`. Existing introspect handles Writer refresh.
564
573
  - Migration `0007_external_relation_names` widens hosted physical names to 128
565
574
  characters. SQLite retains its descriptive legacy VARCHAR width without a table
566
575
  rebuild; SQLite does not enforce that width. Missing relation kinds read as table.
@@ -80,7 +80,7 @@ dropped tables. Revision files already applied remain immutable.
80
80
 
81
81
  ## MetaTables system migrations
82
82
 
83
- The API continues to own `api.backend.migrations`, `metatables_catalog_version`
83
+ The API continues to own `metatables.api.backend.migrations`, `metatables_catalog_version`
84
84
  and the explicit admin bootstrap/upgrade operation in Settings. Application
85
85
  migration commands do not invoke that operation. Applications must keep their
86
86
  physical names and version tables separate from reserved system objects.
@@ -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