mainsequence-metatable 0.1.2.dev4__tar.gz → 0.1.4__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 (514) hide show
  1. mainsequence_metatable-0.1.4/.agents/skills/client/metatables-local-development/SKILL.md +165 -0
  2. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/.agents/skills/client/metatables-meta-tables/SKILL.md +23 -1
  3. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/.agents/skills/client/metatables-migrations/SKILL.md +17 -3
  4. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +21 -0
  5. {mainsequence_metatable-0.1.2.dev4/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.4}/PKG-INFO +10 -5
  6. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/README.md +6 -2
  7. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/development.py +5 -1
  8. mainsequence_metatable-0.1.4/api/app/development_client.py +10 -0
  9. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/main.py +10 -0
  10. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/runtime_context.py +6 -1
  11. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/time_index_delete.py +2 -4
  12. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/time_index_reads.py +2 -2
  13. mainsequence_metatable-0.1.4/api/app/routes/update_chunk_insert.py +256 -0
  14. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_index_statistics.py +6 -3
  15. mainsequence_metatable-0.1.4/api/app/transfer.py +124 -0
  16. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/access.py +27 -8
  17. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_time_index.py +7 -5
  18. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_time_index_queries.py +7 -3
  19. mainsequence_metatable-0.1.4/api/backend/backends/adapters/table_cursor.py +40 -0
  20. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/catalog.py +17 -0
  21. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/contracts.py +1 -0
  22. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/hosted.py +26 -2
  23. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/hosted_access.py +18 -1
  24. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/operations.py +12 -2
  25. mainsequence_metatable-0.1.4/api/backend/backends/pages.py +41 -0
  26. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/postgresql_access.py +14 -0
  27. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/relation_tables.py +13 -7
  28. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/relational.py +31 -5
  29. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/restricted_sql.py +49 -20
  30. mainsequence_metatable-0.1.4/api/backend/backends/streaming.py +65 -0
  31. mainsequence_metatable-0.1.4/api/backend/migrations/versions/0008_upload_receipts.py +32 -0
  32. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/read_time_index.py +15 -15
  33. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/models.py +19 -0
  34. mainsequence_metatable-0.1.4/api/backend/persistence/upload_receipts.py +69 -0
  35. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0007-database-enforced-table-access.md +5 -0
  36. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0008-mysql-mssql-table-workflows.md +5 -0
  37. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0010-import-external-tables-and-views.md +5 -0
  38. mainsequence_metatable-0.1.4/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +428 -0
  39. mainsequence_metatable-0.1.4/docs/adr/client/0011-cli-local-development-with-managed-admin.md +298 -0
  40. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/index.md +2 -0
  41. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/authentication-and-errors.md +4 -0
  42. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/openapi.json +314 -2
  43. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/reference.md +2 -0
  44. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/time-index-and-updates.md +7 -2
  45. mainsequence_metatable-0.1.4/docs/assets/diagrams/local-client-experience.svg +91 -0
  46. mainsequence_metatable-0.1.4/docs/client/bounded-transfers.md +153 -0
  47. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/build-an-updater.md +4 -0
  48. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/define-and-migrate-tables.md +11 -3
  49. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/installation-and-connection.md +72 -28
  50. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/query-and-mutate.md +4 -0
  51. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/read-existing-time-index-tables.md +4 -0
  52. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/permissions-namespaces-labels.md +4 -0
  53. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/contributing/database-backends.md +1 -1
  54. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/contributing/documentation.md +1 -0
  55. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/contributing/releasing.md +14 -7
  56. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/contributing/testing.md +19 -4
  57. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/README.md +7 -1
  58. mainsequence_metatable-0.1.4/docs/examples/bounded_reader.py +12 -0
  59. mainsequence_metatable-0.1.4/docs/examples/local_app/README.md +55 -0
  60. mainsequence_metatable-0.1.4/docs/examples/local_app/__init__.py +1 -0
  61. mainsequence_metatable-0.1.4/docs/examples/local_app/__main__.py +40 -0
  62. mainsequence_metatable-0.1.4/docs/examples/local_app/migrations/__init__.py +21 -0
  63. mainsequence_metatable-0.1.4/docs/examples/local_app/migrations/env.py +4 -0
  64. mainsequence_metatable-0.1.4/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +22 -0
  65. mainsequence_metatable-0.1.4/docs/examples/local_app/tables.py +20 -0
  66. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/catalog-migrations.md +4 -0
  67. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/configuration.md +4 -0
  68. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/hosted-runtime.md +4 -0
  69. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/local-runtime.md +34 -10
  70. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/recovery-and-observability.md +6 -0
  71. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/run-history.md +11 -8
  72. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/operations/run-logs.md +1 -1
  73. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/reference/capabilities.md +11 -2
  74. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/reference/cli.md +7 -3
  75. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/reference/python.md +4 -0
  76. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/security/index.md +1 -1
  77. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/README.md +7 -1
  78. mainsequence_metatable-0.1.4/examples/bounded_reader.py +12 -0
  79. mainsequence_metatable-0.1.4/examples/local_app/README.md +53 -0
  80. mainsequence_metatable-0.1.4/examples/local_app/__init__.py +1 -0
  81. mainsequence_metatable-0.1.4/examples/local_app/__main__.py +40 -0
  82. mainsequence_metatable-0.1.4/examples/local_app/migrations/__init__.py +21 -0
  83. mainsequence_metatable-0.1.4/examples/local_app/migrations/env.py +4 -0
  84. mainsequence_metatable-0.1.4/examples/local_app/migrations/versions/metatables_local_example/0001.py +22 -0
  85. mainsequence_metatable-0.1.4/examples/local_app/tables.py +20 -0
  86. mainsequence_metatable-0.1.4/examples/tutorial/migrations/script.py.mako +28 -0
  87. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4/mainsequence_metatable.egg-info}/PKG-INFO +10 -5
  88. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mainsequence_metatable.egg-info/SOURCES.txt +42 -0
  89. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mainsequence_metatable.egg-info/requires.txt +3 -2
  90. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mkdocs.yml +4 -0
  91. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/pyproject.toml +6 -3
  92. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/build_reference.py +1 -1
  93. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_boundaries.py +4 -3
  94. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_distribution_sources.py +3 -0
  95. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/__init__.py +4 -0
  96. mainsequence_metatable-0.1.4/src/metatables/_admin_source.json +5 -0
  97. mainsequence_metatable-0.1.4/src/metatables/cli/admin_install.py +199 -0
  98. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/cli/app.py +106 -31
  99. mainsequence_metatable-0.1.4/src/metatables/cli/local.py +311 -0
  100. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/cli/migrations.py +21 -20
  101. mainsequence_metatable-0.1.4/src/metatables/cli/project.py +52 -0
  102. mainsequence_metatable-0.1.2.dev4/api/app/development_client.py → mainsequence_metatable-0.1.4/src/metatables/local_connection.py +44 -13
  103. mainsequence_metatable-0.1.4/src/metatables/local_files.py +44 -0
  104. mainsequence_metatable-0.1.4/src/metatables/migrations/templates/script.py.mako +28 -0
  105. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/models.py +160 -192
  106. mainsequence_metatable-0.1.4/src/metatables/runtime.py +38 -0
  107. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/runtime_context.py +1 -1
  108. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/runtime_contract.py +4 -0
  109. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/time_index_table_refs.py +11 -1
  110. mainsequence_metatable-0.1.4/src/metatables/transfer.py +40 -0
  111. mainsequence_metatable-0.1.4/src/metatables/transfer_contract.py +134 -0
  112. mainsequence_metatable-0.1.4/src/metatables/transport.py +200 -0
  113. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/managers.py +3 -0
  114. mainsequence_metatable-0.1.4/src/metatables/upload.py +108 -0
  115. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_runtime_bootstrap.py +8 -8
  116. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/catalog/test_migration.py +2 -2
  117. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/capabilities.json +116 -7
  118. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/client_signatures.json +28 -12
  119. mainsequence_metatable-0.1.4/tests/contracts/test_bounded_transfer.py +293 -0
  120. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_catalog_contract.py +1 -1
  121. mainsequence_metatable-0.1.4/tests/e2e/test_admin_installation.py +136 -0
  122. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_api_contract.py +0 -92
  123. mainsequence_metatable-0.1.4/tests/e2e/test_local_cli_workflow.py +123 -0
  124. mainsequence_metatable-0.1.4/tests/e2e/test_local_client_selection.py +67 -0
  125. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_remaining_client_routes.py +1 -0
  126. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_run_graphs.py +23 -0
  127. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_time_index_delete_client_api.py +1 -1
  128. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_time_index_reads_client_api.py +1 -1
  129. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_update_chunk_insert_client_api.py +25 -6
  130. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_update_index_statistics_client_api.py +1 -1
  131. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/examples/test_documented_examples.py +17 -0
  132. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/packaging/test_client_skills.py +1 -0
  133. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/packaging/test_installed_distribution.py +21 -1
  134. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/uv.lock +205 -175
  135. mainsequence_metatable-0.1.2.dev4/api/app/routes/update_chunk_insert.py +0 -147
  136. mainsequence_metatable-0.1.2.dev4/api/backend/backends/adapters/table_cursor.py +0 -14
  137. mainsequence_metatable-0.1.2.dev4/src/metatables/transport.py +0 -73
  138. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/.mainsequence/workflows/metatables-api.yaml +0 -0
  139. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/LICENSE +0 -0
  140. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/MANIFEST.in +0 -0
  141. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/alembic.ini +0 -0
  142. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/__init__.py +0 -0
  143. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/__init__.py +0 -0
  144. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/auth/__init__.py +0 -0
  145. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/auth/boundary.py +0 -0
  146. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/auth/caller_assertions.py +0 -0
  147. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/auth/local_actor.py +0 -0
  148. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/bootstrap.py +0 -0
  149. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/configuration.py +0 -0
  150. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/credential_admin.py +0 -0
  151. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/platform_cache.py +0 -0
  152. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/__init__.py +0 -0
  153. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/application_migrations.py +0 -0
  154. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/column_search.py +0 -0
  155. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/contract_validation.py +0 -0
  156. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/data_sources.py +0 -0
  157. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/managed_finalize.py +0 -0
  158. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/migration_connection.py +0 -0
  159. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/namespaces.py +0 -0
  160. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/run_logs.py +0 -0
  161. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/schema_graph.py +0 -0
  162. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/security.py +0 -0
  163. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_cascade.py +0 -0
  164. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_crud.py +0 -0
  165. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_delete.py +0 -0
  166. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_filter.py +0 -0
  167. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_import.py +0 -0
  168. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_introspection.py +0 -0
  169. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_patch.py +0 -0
  170. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_registration.py +0 -0
  171. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_response.py +0 -0
  172. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_search_document.py +0 -0
  173. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_sql.py +0 -0
  174. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/table_update_pipeline.py +0 -0
  175. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/time_index_stats.py +0 -0
  176. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_batch.py +0 -0
  177. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_constants.py +0 -0
  178. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_crud.py +0 -0
  179. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_details.py +0 -0
  180. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_graph.py +0 -0
  181. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_registration.py +0 -0
  182. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_runs.py +0 -0
  183. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/routes/update_statistics.py +0 -0
  184. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/runtime.py +0 -0
  185. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/runtime_control.py +0 -0
  186. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/source_passwords.py +0 -0
  187. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/app/source_registrations.py +0 -0
  188. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/__init__.py +0 -0
  189. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/__init__.py +0 -0
  190. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/__init__.py +0 -0
  191. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  192. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  193. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  194. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  195. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  196. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/maintenance/validation.py +0 -0
  197. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  198. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_connection.py +0 -0
  199. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  200. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  201. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_tables.py +0 -0
  202. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  203. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  204. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  205. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/source_validation.py +0 -0
  206. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/sqlite_connection.py +0 -0
  207. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  208. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/catalog_ddl.py +0 -0
  209. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/catalog_types.py +0 -0
  210. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/native.py +0 -0
  211. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/registry.py +0 -0
  212. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/backends/sqlite_access.py +0 -0
  213. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/contracts/__init__.py +0 -0
  214. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/contracts/relation_import.py +0 -0
  215. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/contracts/storage_layouts.py +0 -0
  216. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/contracts/table_contracts.py +0 -0
  217. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/contracts/values.py +0 -0
  218. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/__init__.py +0 -0
  219. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/catalog_rules.py +0 -0
  220. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/data_source_rules.py +0 -0
  221. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/index_statistics.py +0 -0
  222. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/label_rules.py +0 -0
  223. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/permission_rules.py +0 -0
  224. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/domain/update_constants.py +0 -0
  225. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/__init__.py +0 -0
  226. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/catalog_data_sources.py +0 -0
  227. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/credential_keys.py +0 -0
  228. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/credential_store.py +0 -0
  229. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/data_source_provider.py +0 -0
  230. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/local_credentials.py +0 -0
  231. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/local_workspace.py +0 -0
  232. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/platform_principals.py +0 -0
  233. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/run_logs.py +0 -0
  234. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/runtime_binding.py +0 -0
  235. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/runtime_data_sources.py +0 -0
  236. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/integrations/source_validation.py +0 -0
  237. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/__init__.py +0 -0
  238. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/env.py +0 -0
  239. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/script.py.mako +0 -0
  240. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0001_initial.py +0 -0
  241. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0002_security_model.py +0 -0
  242. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  243. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  244. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0005_database_access.py +0 -0
  245. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  246. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  247. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/migrations/versions/__init__.py +0 -0
  248. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/__init__.py +0 -0
  249. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/bootstrap_migrations.py +0 -0
  250. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/catalog_schema.py +0 -0
  251. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/create_table.py +0 -0
  252. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/finalize_managed.py +0 -0
  253. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/import_relations.py +0 -0
  254. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/introspect_table.py +0 -0
  255. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/register_catalog.py +0 -0
  256. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/operations/search_documents.py +0 -0
  257. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/__init__.py +0 -0
  258. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/cascade.py +0 -0
  259. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/catalog.py +0 -0
  260. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/database.py +0 -0
  261. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/grants.py +0 -0
  262. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/labels.py +0 -0
  263. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/locking.py +0 -0
  264. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/physical_operations.py +0 -0
  265. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/projections.py +0 -0
  266. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/run_graphs.py +0 -0
  267. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/schema_graph.py +0 -0
  268. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/sqlite_types.py +0 -0
  269. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/table_body_filter.py +0 -0
  270. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/table_queries.py +0 -0
  271. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/table_response.py +0 -0
  272. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/update_graph.py +0 -0
  273. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/update_pipeline.py +0 -0
  274. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/persistence/updates.py +0 -0
  275. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/backend/presentation/data_source_summary.py +0 -0
  276. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/metatables/__init__.py +0 -0
  277. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/metatables/configuration.yaml +0 -0
  278. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/api/metatables/main.py +0 -0
  279. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/compose.database-tests.yml +0 -0
  280. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
  281. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  282. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  283. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  284. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  285. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  286. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  287. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/api/0009-shared-credential-store.md +0 -0
  288. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  289. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/data-sources.md +0 -0
  290. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/overview.md +0 -0
  291. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/api/tables-and-migrations.md +0 -0
  292. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/assets/branding/metatables.svg +0 -0
  293. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/local-storage.md +0 -0
  294. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/quickstart.md +0 -0
  295. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/register-existing-tables.md +0 -0
  296. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/client/tutorial.md +0 -0
  297. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/architecture.md +0 -0
  298. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/data-sources.md +0 -0
  299. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/identity-and-scope.md +0 -0
  300. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/runs-and-execution-graphs.md +0 -0
  301. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  302. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/concepts/time-index-tables-and-updates.md +0 -0
  303. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/contributing/architecture-and-boundaries.md +0 -0
  304. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/__init__.py +0 -0
  305. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/data_sources/README.md +0 -0
  306. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/data_sources/mssql.json +0 -0
  307. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/data_sources/mysql.json +0 -0
  308. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/data_sources/postgresql.json +0 -0
  309. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/data_sources/register.py +0 -0
  310. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/external_table.py +0 -0
  311. {mainsequence_metatable-0.1.2.dev4/docs/examples/tutorial → mainsequence_metatable-0.1.4/docs/examples/local_app}/migrations/script.py.mako +0 -0
  312. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/query.py +0 -0
  313. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/quickstart.py +0 -0
  314. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/reader.py +0 -0
  315. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/scripts/__init__.py +0 -0
  316. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/scripts/setup_metatables.py +0 -0
  317. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tables.py +0 -0
  318. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/README.md +0 -0
  319. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/__init__.py +0 -0
  320. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/__main__.py +0 -0
  321. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/data/README.md +0 -0
  322. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  323. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/frames.py +0 -0
  324. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/__init__.py +0 -0
  325. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/env.py +0 -0
  326. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/registry.py +0 -0
  327. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4/docs}/examples/tutorial/migrations/script.py.mako +0 -0
  328. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  329. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  330. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  331. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/operations.py +0 -0
  332. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/tables.py +0 -0
  333. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/tutorial/updaters.py +0 -0
  334. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/examples/updater.py +0 -0
  335. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/index.md +0 -0
  336. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/security/ownership-and-sharing.md +0 -0
  337. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/docs/security/permissions.md +0 -0
  338. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/__init__.py +0 -0
  339. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/data_sources/README.md +0 -0
  340. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/data_sources/mssql.json +0 -0
  341. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/data_sources/mysql.json +0 -0
  342. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/data_sources/postgresql.json +0 -0
  343. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/data_sources/register.py +0 -0
  344. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/external_table.py +0 -0
  345. {mainsequence_metatable-0.1.2.dev4/src/metatables/migrations/templates → mainsequence_metatable-0.1.4/examples/local_app/migrations}/script.py.mako +0 -0
  346. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/query.py +0 -0
  347. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/quickstart.py +0 -0
  348. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/reader.py +0 -0
  349. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/scripts/__init__.py +0 -0
  350. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/scripts/setup_metatables.py +0 -0
  351. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tables.py +0 -0
  352. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/README.md +0 -0
  353. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/__init__.py +0 -0
  354. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/__main__.py +0 -0
  355. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/data/README.md +0 -0
  356. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  357. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/frames.py +0 -0
  358. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/__init__.py +0 -0
  359. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/env.py +0 -0
  360. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/registry.py +0 -0
  361. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/versions/__init__.py +0 -0
  362. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  363. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  364. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/operations.py +0 -0
  365. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/tables.py +0 -0
  366. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/tutorial/updaters.py +0 -0
  367. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/examples/updater.py +0 -0
  368. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  369. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  370. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/mainsequence_metatable.egg-info/top_level.txt +0 -0
  371. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/__init__.py +0 -0
  372. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/build_package.py +0 -0
  373. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_client_api_coverage.py +0 -0
  374. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_docs.py +0 -0
  375. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_examples_debug.py +0 -0
  376. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/check_project.py +0 -0
  377. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/dev_release_version.py +0 -0
  378. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/test_databases.py +0 -0
  379. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/scripts/test_postgresql.py +0 -0
  380. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/setup.cfg +0 -0
  381. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/_skill_bundle.py +0 -0
  382. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/cli/__init__.py +0 -0
  383. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/cli/filters.py +0 -0
  384. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/cli/skills.py +0 -0
  385. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/compiled_sql/__init__.py +0 -0
  386. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/compiled_sql/mssql.py +0 -0
  387. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/compiled_sql/v1.py +0 -0
  388. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/dtype_codec.py +0 -0
  389. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/endpoint.py +0 -0
  390. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/future_registry.py +0 -0
  391. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/hashing.py +0 -0
  392. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/instrumentation.py +0 -0
  393. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/local_run_logs.py +0 -0
  394. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/log_contract.py +0 -0
  395. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/__init__.py +0 -0
  396. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/alembic.py +0 -0
  397. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/env.py +0 -0
  398. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/provider.py +0 -0
  399. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/registry.py +0 -0
  400. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/scaffold.py +0 -0
  401. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/templates/__init__.py +0 -0
  402. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/templates/env.py.mako +0 -0
  403. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/migrations/tls.py +0 -0
  404. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/pydantic_metadata.py +0 -0
  405. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/run_logging.py +0 -0
  406. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/schema_names.py +0 -0
  407. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/sdk_compat.py +0 -0
  408. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/sqlalchemy_contracts.py +0 -0
  409. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/update_configuration_contract.py +0 -0
  410. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/__init__.py +0 -0
  411. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/configuration.py +0 -0
  412. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/dependencies.py +0 -0
  413. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/namespacing.py +0 -0
  414. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/runner.py +0 -0
  415. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/updaters.py +0 -0
  416. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/src/metatables/updaters/utils.py +0 -0
  417. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_caller_assertions.py +0 -0
  418. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_data_source_identity.py +0 -0
  419. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_development_client.py +0 -0
  420. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_hosted_environment_target.py +0 -0
  421. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_local_mode.py +0 -0
  422. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_platform_fact_cache.py +0 -0
  423. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_runtime_scaffold.py +0 -0
  424. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_runtime_selection.py +0 -0
  425. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_runtime_storage_binding.py +0 -0
  426. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/auth/test_source_passwords.py +0 -0
  427. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/catalog/test_catalog_foundation.py +0 -0
  428. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/catalog/test_contract_projection.py +0 -0
  429. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/catalog/test_database_config.py +0 -0
  430. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/catalog/test_index_statistics.py +0 -0
  431. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/conftest.py +0 -0
  432. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/database_operations.json +0 -0
  433. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/test_relation_batching.py +0 -0
  434. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/test_relation_import.py +0 -0
  435. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/test_storage_layouts.py +0 -0
  436. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/contracts/test_table_contracts.py +0 -0
  437. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/Dockerfile +0 -0
  438. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/Dockerfile.dockerignore +0 -0
  439. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/__init__.py +0 -0
  440. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/conftest.py +0 -0
  441. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/provider/__init__.py +0 -0
  442. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/provider/env.py +0 -0
  443. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  444. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_api_contract.py +0 -0
  445. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_application_migration.py +0 -0
  446. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  447. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_credential_catalog.py +0 -0
  448. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_physical_contract.py +0 -0
  449. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_relation_import.py +0 -0
  450. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  451. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_sql_security.py +0 -0
  452. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_backend/test_update_client.py +0 -0
  453. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_operations/test_physical_operations.py +0 -0
  454. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_operations/test_postgresql_operations.py +0 -0
  455. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  456. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/documentation/test_project_checks.py +0 -0
  457. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_api_endpoint.py +0 -0
  458. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_catalog_outage.py +0 -0
  459. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_api_coverage.py +0 -0
  460. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_migration_scaffold.py +0 -0
  461. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_migration_tls.py +0 -0
  462. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_package.py +0 -0
  463. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_signatures.py +0 -0
  464. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_client_value_behaviors.py +0 -0
  465. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_data_source_registry.py +0 -0
  466. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_local_actor_client_api.py +0 -0
  467. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  468. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_namespaces_admin_http.py +0 -0
  469. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_public_imports.py +0 -0
  470. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_run_logs.py +0 -0
  471. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_runtime_transition.py +0 -0
  472. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_sdk_local_startup.py +0 -0
  473. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_sqlite_runtime.py +0 -0
  474. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_delete_client_api.py +0 -0
  475. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_filter_client_api.py +0 -0
  476. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_introspection_client_api.py +0 -0
  477. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_patch_client_api.py +0 -0
  478. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_search_document_api.py +0 -0
  479. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_stats_api.py +0 -0
  480. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_update_pipeline.py +0 -0
  481. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_table_updates_http.py +0 -0
  482. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_update_batch_client_api.py +0 -0
  483. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  484. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/e2e/test_update_registration_client_api.py +0 -0
  485. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/examples/test_postgresql_examples.py +0 -0
  486. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/examples/test_setup_launch.py +0 -0
  487. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/examples/test_tutorial.py +0 -0
  488. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_credential_store.py +0 -0
  489. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_data_source_rules.py +0 -0
  490. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_local_data_sources.py +0 -0
  491. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_local_run_logs.py +0 -0
  492. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_postgresql_connection.py +0 -0
  493. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_postgresql_sql.py +0 -0
  494. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_postgresql_tables.py +0 -0
  495. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  496. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_source_validation.py +0 -0
  497. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/integrations/test_sqlite_operations.py +0 -0
  498. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/labels/test_labels.py +0 -0
  499. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/operations/test_create_table_operation.py +0 -0
  500. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/operations/test_create_table_postgres.py +0 -0
  501. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/operations/test_physical_operation_journal.py +0 -0
  502. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/operations/test_register_catalog.py +0 -0
  503. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/operations/test_search_documents.py +0 -0
  504. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/packaging/test_dev_release_version.py +0 -0
  505. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/packaging/test_distribution_sources.py +0 -0
  506. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/packaging/test_editable_build.py +0 -0
  507. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_governed_sql_scope.py +0 -0
  508. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_local_actor_membership.py +0 -0
  509. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_migration_boundary.py +0 -0
  510. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_namespace_grants.py +0 -0
  511. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_security_api.py +0 -0
  512. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_table_body_filter.py +0 -0
  513. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_table_grants.py +0 -0
  514. {mainsequence_metatable-0.1.2.dev4 → mainsequence_metatable-0.1.4}/tests/permissions/test_table_queries.py +0 -0
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: metatables-local-development
3
+ description: "Develop and test applications using the installed MetaTables client against local SQLite before returning to the intended environment database. Covers project/API/Admin setup, runtime verification, isolated fixtures, approved migrations and switching back after verification. Excludes MetaTables client/API implementation and hosted frontend deployment."
4
+ ---
5
+
6
+ # Local-first MetaTables application development
7
+
8
+ Use local SQLite by default when building or changing a consuming application's
9
+ tables, migration providers, queries or producers. Exercise the application
10
+ through the same MetaTables API/client used with the environment database. Keep
11
+ development fixtures and test writes in the local runtime, then return to the
12
+ intended environment as part of the requested workflow. Respect an explicitly
13
+ requested target or backend-specific test scope.
14
+
15
+ In a copied skill, resolve the `docs/` and `examples/` paths below relative to
16
+ this skill's `references/` directory. In the MetaTables source checkout, resolve
17
+ them from the repository root. Read `docs/operations/local-runtime.md` for runtime
18
+ selection and persistence, and `docs/client/installation-and-connection.md` when
19
+ installing or troubleshooting. `examples/local_app/README.md` provides a complete
20
+ installed-package migration/write/read example.
21
+
22
+ ## Select local storage deliberately
23
+
24
+ Three controls have different meanings:
25
+
26
+ - `local_mode_available: true` permits local development; it does not select the
27
+ current database. `metatables init --local` prepares this configuration.
28
+ - `metatables serve --local` starts the API in Local mode. Add `--admin` to run
29
+ the existing Vite development frontend. Admin Settings can subsequently switch
30
+ that running API to Hosted without changing its loopback address.
31
+ - Global `metatables --local ...` and `configure_local_client()` select the
32
+ project's running API connection. They do not force its database back to Local.
33
+
34
+ Before migrations or a batch of test writes, inspect the API's actual runtime.
35
+ A loopback URL, a local token, a test namespace or an updater hash is not proof of
36
+ storage isolation. Require `local_mode: true`; after initialization also require
37
+ `dialect: sqlite` and the expected local runtime DataSource. If these disagree,
38
+ stop the mutating work and select Local in Settings or restart with `serve --local`.
39
+ Do not retry against automatic hosted discovery when a local connection fails.
40
+
41
+ ## Establish the development loop
42
+
43
+ 1. Work in the consuming application's Git checkout, with its commit and origin
44
+ remote. Use the Python environment containing MetaTables and the application's
45
+ installed provider code. Reuse its existing configuration and SDK login.
46
+ 2. For initial setup, run:
47
+
48
+ ```bash
49
+ mainsequence login
50
+ metatables init --local
51
+ metatables serve --local --admin
52
+ ```
53
+
54
+ Omit `--admin` for CLI-only work. The API is included in the Python package;
55
+ a MetaTables source checkout is unnecessary. Admin runs through Vite. Its
56
+ pinned source downloads only when missing, and ready dependencies are reused.
57
+ Use `--admin-path` for an already prepared checkout. Follow the installation
58
+ guide for Node/npm requirements and repository access; do not clone on each run.
59
+ 3. In another terminal in the same project, inspect `metatables --local runtime
60
+ status`. Confirm Local and review the selected SQLite candidate before any
61
+ initialization. If system migrations are needed, explicitly run
62
+ `metatables --local runtime initialize`, then inspect status again.
63
+ Starting the API does not initialize or migrate a database.
64
+ 4. Author and review application migrations using the
65
+ [migrations skill](../metatables-migrations/SKILL.md). Approve the installed
66
+ provider in configuration and apply its head to the verified local runtime:
67
+
68
+ ```bash
69
+ metatables init --local --provider ledger=ledger.migrations:migration
70
+ metatables --local migrations upgrade --provider ledger
71
+ ```
72
+
73
+ Substitute the application's own alias and module. Execution takes an approved
74
+ alias; authoring takes a Python reference. System initialization and application
75
+ migration history remain separate.
76
+ 5. Build application contracts/queries with the
77
+ [table skill](../metatables-meta-tables/SKILL.md), or producers/readers with the
78
+ [updater skill](../metatables-time-index-table-updates/SKILL.md). Use small,
79
+ deterministic local inputs, run the relevant application checks, and inspect
80
+ actual rows and update results through the API.
81
+
82
+ ## Keep verification local and reproducible
83
+
84
+ Make local integration-test setup select the connection before constructing
85
+ clients, resolving table bindings, or creating updaters. Fail before writes when
86
+ the selected runtime is wrong. A consuming application's test setup can use:
87
+
88
+ ```python
89
+ from metatables import configure_local_client, get_runtime_status
90
+
91
+ configure_local_client()
92
+ state = get_runtime_status()
93
+ source = state.get("data_source") or {}
94
+ bootstrap = state.get("bootstrap") or {}
95
+ if not (
96
+ state.get("local_mode") is True
97
+ and state.get("dialect") == "sqlite"
98
+ and source.get("class_type") == "sqlite"
99
+ and source.get("uid")
100
+ and bootstrap.get("active") is True
101
+ and bootstrap.get("status") == "ready"
102
+ and not state.get("data_source_error")
103
+ ):
104
+ raise RuntimeError("Tests require an initialized local SQLite runtime.")
105
+ local_source_uid = source["uid"]
106
+ ```
107
+
108
+ Resolve each test output in that runtime and check its DataSource UID against
109
+ `local_source_uid`. Keep fixtures, migration providers and writable dependencies
110
+ there too. Local mode does not isolate unrelated HTTP calls, external connections,
111
+ or writes explicitly targeting another registered DataSource: replace those
112
+ side effects with fixtures or controlled test dependencies. SDK identity checks
113
+ still use the configured platform session.
114
+
115
+ Run pure contract/frame checks first, then the smallest useful API integration
116
+ case: apply the reviewed provider, seed a small fixture, execute the query or
117
+ producer, read and assert its output, and repeat to verify the intended incremental
118
+ or idempotent behavior. For a persistence claim, restart and read existing rows
119
+ before seeding again. Recheck runtime state after any restart or mode/source change;
120
+ do not switch modes while tests or producers are running.
121
+
122
+ Local storage persists across launches and Git branches of the checkout. A new
123
+ branch does not create a fresh test database. Use identifiable fixtures and clean
124
+ up only the rows owned by the test. When a fresh database is necessary, select a
125
+ separate temporary SQLite file through Settings and initialize it explicitly;
126
+ restore the previous selection afterwards. Do not delete or replace a developer's
127
+ existing database just to obtain a clean test run.
128
+
129
+ SQLite verifies portable application behavior, not PostgreSQL/MySQL/MSSQL-specific
130
+ SQL, Timescale features, database roles or every concurrency behavior. Report that
131
+ limit and use the intended engine in an isolated test database when the task
132
+ requires those checks. Do not use the shared environment database as the default
133
+ integration-test fixture.
134
+
135
+ ## Finish verification and switch back
136
+
137
+ Record what passed, the runtime/DataSource used, and any engine-specific work still
138
+ unverified. Carry forward the reviewed application code and migration revisions;
139
+ local rows, catalog UIDs, credentials and fixture data are not promoted by a switch.
140
+
141
+ When returning to the environment is part of the requested workflow:
142
+
143
+ 1. Finish local tests and stop active writers. In Admin **Settings → Runtime mode**,
144
+ inspect the displayed hosted environment and choose the intended registered
145
+ DataSource. Use **Switch to Hosted**. This changes the API worker and selected
146
+ database; it does not copy or merge the local database. Leave local capability
147
+ enabled if the developer needs to switch back later.
148
+ 2. Re-read runtime status and verify `local_mode: false`, the intended verified
149
+ hosted environment, the expected DataSource and readiness. The same local
150
+ connection command still reaches this supervised API; its `--local` flag alone
151
+ does not prove SQLite. If the switch fails and the old worker is restored,
152
+ report the actual mode instead of claiming the switch succeeded.
153
+ 3. Restart application/test client processes and resolve catalog bindings again.
154
+ Do not reuse local table UIDs or already-bound updater instances against the
155
+ environment database. Apply reviewed revisions or perform environment writes
156
+ only within the user's requested scope; passing local tests is not itself a
157
+ request to seed fixtures, run backfills or migrate that database.
158
+
159
+ If the user instead wants to connect to a separately deployed API, follow the
160
+ installation guide's hosted endpoint selection. Restore prior connection settings
161
+ and start a fresh client process without `configure_local_client()`; remove only
162
+ transport overrides introduced for local work. Do not redirect the SDK platform
163
+ endpoint, invent `serve --hosted`, or use an environment-variable runtime toggle.
164
+ A task limited to local development can finish with verified local results and
165
+ clear remaining steps, without switching the runtime or modifying hosted data.
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
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.
19
19
 
20
+ For application development and mutation tests, use the
21
+ [local development skill](../metatables-local-development/SKILL.md) to select and
22
+ verify local SQLite before writing, then return to the intended environment after
23
+ verification within the requested scope.
24
+
20
25
  Use the installed `metatables` client. The API catalog resource, the client
21
26
  resource model, and a SQLAlchemy authoring class have different responsibilities.
22
27
  Read `docs/concepts/architecture.md` and
@@ -28,7 +33,8 @@ identity and Git source facts use SDK imports. Table operations use the client's
28
33
  `METATABLES_API_URL`; the API selects the effective DataSource. See
29
34
  `docs/client/installation-and-connection.md`. Local development runs the same API
30
35
  with SQLite behind it; ordinary clients never open local table files. Local
31
- workspaces use one SQLite database for system and user tables per checkout/branch.
36
+ workspaces use one persistent SQLite database for system and user tables per
37
+ checkout; Git branches share it.
32
38
  Settings explicitly initializes or selects the runtime DataSource in both modes;
33
39
  startup never runs Alembic. See `docs/operations/catalog-migrations.md`.
34
40
 
@@ -104,3 +110,19 @@ against the actual workflow. Run relevant behavior tests and the example tests.
104
110
  State whether validation used local contracts, a disposable database, or a
105
111
  configured service. Never claim an end-to-end deployment result from an import
106
112
  check. Preserve published contracts unless the task authorizes their evolution.
113
+
114
+ ## Bounded transfers and recovery
115
+
116
+ Read `docs/client/bounded-transfers.md` for transfer contract v1. Prefer
117
+ `MetaTable.iter_rows()` for structured relation batches and
118
+ `TimeIndexTableRef.iter_batches()` for typed time-index frames. Existing complete
119
+ DataFrame readers have row, serialized-byte, and elapsed-time budgets; increase
120
+ client collection budgets deliberately or narrow the selection. Offset pages do
121
+ not provide a snapshot, and iterators do not prefetch.
122
+
123
+ Uploads remain sequential, with at most 10,000 rows and byte checks per chunk.
124
+ Each chunk commits independently. Preserve an explicit operation UUID and input
125
+ for restart recovery. On an uncertain outcome, inspect `upload_receipt()` before
126
+ resubmitting; do not assign a fresh key to bypass uncertainty. Administrator
127
+ reconciliation requires verified physical evidence. This workflow uses the Main
128
+ Sequence API and has no Artifact or temporary-URL dependency.
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
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.
19
19
 
20
+ For application development and mutation tests, use the
21
+ [local development skill](../metatables-local-development/SKILL.md) to select and
22
+ verify local SQLite before writing, then return to the intended environment after
23
+ verification within the requested scope.
24
+
20
25
  Read `docs/client/define-and-migrate-tables.md`,
21
26
  `docs/concepts/table-contracts-and-lifecycle.md`, and the tested
22
27
  `examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
@@ -76,9 +81,18 @@ revision for every later schema change.
76
81
 
77
82
  ## Execute through the approved runtime
78
83
 
79
- Client-side `current`, `upgrade`, `downgrade`, direct migration connections, and
80
- database autogeneration are unsupported. `--sqlalchemy-url` does not bypass that
81
- boundary.
84
+ Direct client-side Alembic execution, `current`, `downgrade`, migration
85
+ connections and database autogeneration are unsupported. `--sqlalchemy-url` does
86
+ not bypass that boundary. The supported upgrade command executes inside the API.
87
+ After verifying Local mode and the selected DataSource, use:
88
+
89
+ ```bash
90
+ metatables --local migrations upgrade --provider ledger
91
+ ```
92
+
93
+ `ledger` is the approved alias, not a Python provider reference. Only `head` is
94
+ supported. The global `--local` selects the running project's API connection;
95
+ inspect runtime status because Admin can switch that API to Hosted.
82
96
 
83
97
  The API applies a provider through `POST /application-migrations/upgrade/`, which
84
98
  accepts only an alias listed in its `application_migration_providers`. The
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
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.
19
19
 
20
+ For application development and mutation tests, use the
21
+ [local development skill](../metatables-local-development/SKILL.md) to select and
22
+ verify local SQLite before writing, then return to the intended environment after
23
+ verification within the requested scope.
24
+
20
25
  Read `docs/client/build-an-updater.md`,
21
26
  `docs/concepts/time-index-tables-and-updates.md`, and the tested
22
27
  `examples/updater.py`. Use `docs/client/read-existing-time-index-tables.md` and
@@ -101,3 +106,19 @@ actually exercised: pure frame logic, disposable storage, or a configured API.
101
106
  Do not claim a scheduling/release workflow from producer tests. If a published
102
107
  contract decision remains unknown, resolve that decision while continuing any
103
108
  independent authorized work.
109
+
110
+ ## Bounded transfers and recovery
111
+
112
+ Read `docs/client/bounded-transfers.md` for transfer contract v1. Prefer
113
+ `MetaTable.iter_rows()` for structured relation batches and
114
+ `TimeIndexTableRef.iter_batches()` for typed time-index frames. Existing complete
115
+ DataFrame readers have row, serialized-byte, and elapsed-time budgets; increase
116
+ client collection budgets deliberately or narrow the selection. Offset pages do
117
+ not provide a snapshot, and iterators do not prefetch.
118
+
119
+ Uploads remain sequential, with at most 10,000 rows and byte checks per chunk.
120
+ Each chunk commits independently. Preserve an explicit operation UUID and input
121
+ for restart recovery. On an uncertain outcome, inspect `upload_receipt()` before
122
+ resubmitting; do not assign a fresh key to bypass uncertainty. Administrator
123
+ reconciliation requires verified physical evidence. This workflow uses the Main
124
+ Sequence API and has no Artifact or temporary-URL dependency.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.2.dev4
3
+ Version: 0.1.4
4
4
  Summary: Main Sequence MetaTables Python client and standalone API
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: mainsequence[server]<9,>=8.1.25
17
+ Requires-Dist: mainsequence[server]<10,>=9.0.1
18
18
  Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
@@ -27,13 +27,14 @@ Requires-Dist: opentelemetry-exporter-otlp
27
27
  Requires-Dist: opentelemetry-sdk
28
28
  Requires-Dist: pandas
29
29
  Requires-Dist: psutil
30
+ Requires-Dist: platformdirs<5,>=4
30
31
  Requires-Dist: psycopg2-binary<3,>=2.9
31
32
  Requires-Dist: pyodbc<6,>=5
32
33
  Requires-Dist: pydantic<3,>=2.11
33
34
  Requires-Dist: pyyaml
34
35
  Requires-Dist: requests>=2.33.0
35
36
  Requires-Dist: sqlalchemy<3,>=2.1
36
- Requires-Dist: psycopg[binary]<4,>=3.2
37
+ Requires-Dist: psycopg[binary]==3.3.6
37
38
  Requires-Dist: structlog
38
39
  Requires-Dist: tqdm<5,>=4.66
39
40
  Requires-Dist: typer<1,>=0.12
@@ -86,7 +87,7 @@ through Settings; startup never runs Alembic.
86
87
 
87
88
  ## Start here
88
89
 
89
- - [Install and connect](docs/client/installation-and-connection.md), including the current local SDK prerequisite.
90
+ - [Install and connect](docs/client/installation-and-connection.md), including the complete local CLI workflow.
90
91
  - [Understand the concepts](docs/concepts/architecture.md) and [identity and scope](docs/concepts/identity-and-scope.md).
91
92
  - [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
92
93
  - [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
@@ -109,6 +110,10 @@ Copy the installed client's skills into a consuming application explicitly:
109
110
  metatables copy-metatables-skills --path /path/to/application
110
111
  ```
111
112
 
113
+ The local development skill guides application work through local SQLite setup,
114
+ verified test writes, and an explicit switch back to the intended environment.
115
+ The other skills cover table contracts, application migrations and producers.
116
+
112
117
  The command uses the Main Sequence SDK helper, writes to
113
118
  `.agents/skills/metatables/`, and records the client version. It works without
114
119
  login or an API. Use `--dry-run` to preview the copy, or put global `--json` before
@@ -117,7 +122,7 @@ for refresh behavior and the bundled references.
117
122
 
118
123
  ## Development
119
124
 
120
- Python 3.13 or newer is required. After installing the compatible local SDK:
125
+ Python 3.13 or newer is required. The package selects the published compatible SDK:
121
126
 
122
127
  ```bash
123
128
  python -m pip install -e '.[dev,docs]'
@@ -32,7 +32,7 @@ through Settings; startup never runs Alembic.
32
32
 
33
33
  ## Start here
34
34
 
35
- - [Install and connect](docs/client/installation-and-connection.md), including the current local SDK prerequisite.
35
+ - [Install and connect](docs/client/installation-and-connection.md), including the complete local CLI workflow.
36
36
  - [Understand the concepts](docs/concepts/architecture.md) and [identity and scope](docs/concepts/identity-and-scope.md).
37
37
  - [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
38
38
  - [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
@@ -55,6 +55,10 @@ Copy the installed client's skills into a consuming application explicitly:
55
55
  metatables copy-metatables-skills --path /path/to/application
56
56
  ```
57
57
 
58
+ The local development skill guides application work through local SQLite setup,
59
+ verified test writes, and an explicit switch back to the intended environment.
60
+ The other skills cover table contracts, application migrations and producers.
61
+
58
62
  The command uses the Main Sequence SDK helper, writes to
59
63
  `.agents/skills/metatables/`, and records the client version. It works without
60
64
  login or an API. Use `--dry-run` to preview the copy, or put global `--json` before
@@ -63,7 +67,7 @@ for refresh behavior and the bundled references.
63
67
 
64
68
  ## Development
65
69
 
66
- Python 3.13 or newer is required. After installing the compatible local SDK:
70
+ Python 3.13 or newer is required. The package selects the published compatible SDK:
67
71
 
68
72
  ```bash
69
73
  python -m pip install -e '.[dev,docs]'
@@ -52,7 +52,11 @@ class DevelopmentSupervisor:
52
52
  self.previous = None
53
53
  self.ready = False
54
54
  self.rolling_back = False
55
- self.start(self.mode)
55
+ try:
56
+ self.start(self.mode)
57
+ except BaseException:
58
+ self.close()
59
+ raise
56
60
 
57
61
  def start(self, mode, *, error=None):
58
62
  DeploymentConfiguration.load(self.configuration).require_development()
@@ -0,0 +1,10 @@
1
+ """Compatibility imports for existing local example/debug launchers."""
2
+
3
+ from metatables.local_connection import (
4
+ CLIENT_FILE,
5
+ clear_development_client,
6
+ configure_development_client,
7
+ publish_development_client,
8
+ )
9
+
10
+ __all__ = ["CLIENT_FILE", "clear_development_client", "configure_development_client", "publish_development_client"]
@@ -124,6 +124,16 @@ def create_app(config: RuntimeConfig | None = None) -> FastAPI:
124
124
  } or error.code.endswith("outcome_unknown")
125
125
  return JSONResponse(status_code=503 if unavailable else 400,
126
126
  content={"detail": {"code": error.code, "detail": error.detail}})
127
+ from api.app.transfer import TransferMiddleware
128
+ from metatables.transfer_contract import TransferDeadlineError, TransferError
129
+
130
+ service.add_middleware(TransferMiddleware)
131
+
132
+ @service.exception_handler(TransferError)
133
+ async def transfer_error(request, error):
134
+ return JSONResponse(status_code=408 if isinstance(error, TransferDeadlineError) else 413,
135
+ content={"detail": {"code": str(error)}})
136
+
127
137
  service.state.runtime = RuntimeState(config=selected)
128
138
  from api.app.runtime_control import RuntimeControl
129
139
  service.state.runtime_control = RuntimeControl(None, selected.configuration_path, None)
@@ -54,10 +54,11 @@ def developer_hosted_environment(cache: PlatformCache[UUID, HostedEnvironment])
54
54
  return HostedEnvironment(uid=None, status="unavailable")
55
55
 
56
56
 
57
- @router.get("/runtime-context/", response_model=RuntimeContext)
57
+ @router.get("/runtime-context/", response_model=RuntimeContext, response_model_exclude_unset=True)
58
58
  def runtime_context(
59
59
  request: Request, response: Response,
60
60
  caller: AdmittedCaller = Depends(admit_request),
61
+ transfer_contract: int | None = None,
61
62
  ):
62
63
  state = request.app.state.runtime
63
64
  from api.app.configuration import DeploymentConfiguration
@@ -69,6 +70,8 @@ def runtime_context(
69
70
  environment_target = environment
70
71
  if state.config.local_mode and state.config.developer_mode and deployment.local_mode_available and control is not None and control.shutdown is not None:
71
72
  environment_target = developer_hosted_environment(state.environment_cache)
73
+ from metatables.transfer_contract import DEFAULT_LIMITS
74
+
72
75
  result = {
73
76
  "credential_store": state.credential_store.descriptor(),
74
77
  "application_migrations_available": bool(getattr(deployment, "application_migration_providers", {})),
@@ -90,6 +93,8 @@ def runtime_context(
90
93
  "data_source": None, "dialect": None, "paramstyle": None,
91
94
  "default_schema": None,
92
95
  }
96
+ if transfer_contract == 1:
97
+ result["transfer_limits"] = DEFAULT_LIMITS.model_dump()
93
98
  response.headers["Cache-Control"] = "no-store"
94
99
  if state.bootstrap is not None and not state.bootstrap.active:
95
100
  result["data_source_error"] = "runtime_not_initialized"
@@ -29,7 +29,6 @@ from api.backend.domain.permission_rules import TrustedActorFacts
29
29
  from api.backend.integrations.data_source_provider import DataSourceProvider
30
30
  from api.backend.integrations.runtime_data_sources import DataSourceIntegrationError
31
31
  from api.backend.persistence.grants import GrantRepository
32
- from api.backend.persistence.locking import lock_catalog
33
32
  from api.backend.persistence.models import MetaTable, MetaTableColumn, TimeIndexTable
34
33
 
35
34
  router = APIRouter(prefix="/time-index-meta-tables", tags=["TimeIndexMetaTables"])
@@ -64,9 +63,8 @@ def delete_after_date(
64
63
  )
65
64
  if payload.after_date is None and not scoped:
66
65
  raise HTTPException(status_code=422, detail="after_date or a dimension scope is required.")
67
- lock_catalog(session)
68
- table = session.get(MetaTable, table_uid, with_for_update=True)
69
- specialization = session.get(TimeIndexTable, table_uid, with_for_update=True)
66
+ table = session.get(MetaTable, table_uid)
67
+ specialization = session.get(TimeIndexTable, table_uid)
70
68
  if (
71
69
  table is None or specialization is None or table.provisioning_status != 'active' or (not GrantRepository(session).may_access_table(table_uid=table_uid, actor=actor, edit=True))
72
70
  ):
@@ -45,7 +45,7 @@ class RangeRead(DimensionSelection):
45
45
  less_or_equal: bool | None = True
46
46
  columns: list[str] | None = Field(default=None, max_length=128)
47
47
  offset: int = Field(default=0, ge=0, le=1_000_000)
48
- limit: int = Field(default=500, ge=1, le=14_000)
48
+ limit: int = Field(default=500, ge=1, le=10_000)
49
49
  table_update_uid: UUID | None = None
50
50
 
51
51
 
@@ -87,7 +87,7 @@ def _read(
87
87
  table.data_source_uid,
88
88
  )
89
89
  from api.backend.backends.operations import caller_table_source
90
- source = caller_table_source(source, session, actor)
90
+ source = caller_table_source(source, session, actor, table_uid=table_uid)
91
91
  params: dict[str, Any] = {
92
92
  "source": source,
93
93
  "physical_schema": table.physical_schema,