mainsequence-metatable 0.1.45__tar.gz → 0.1.46.dev73__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 (606) hide show
  1. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/client/metatables-meta-tables/SKILL.md +9 -7
  2. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/client/metatables-migrations/SKILL.md +26 -28
  3. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/client/metatables-table-discovery/SKILL.md +1 -1
  4. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +1 -1
  5. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +2 -2
  6. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +81 -24
  7. {mainsequence_metatable-0.1.45/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.46.dev73}/PKG-INFO +4 -4
  8. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/README.md +1 -1
  9. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0002-application-administration-and-table-ownership.md +5 -0
  10. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0007-database-enforced-table-access.md +5 -0
  11. mainsequence_metatable-0.1.46.dev73/docs/adr/api/0024-namespace-and-table-access-roles.md +365 -0
  12. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/index.md +1 -0
  13. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/authentication-and-errors.md +1 -1
  14. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/openapi.json +351 -143
  15. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/overview.md +1 -1
  16. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/reference.md +10 -6
  17. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/tables-and-migrations.md +13 -9
  18. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/time-index-and-updates.md +5 -5
  19. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/assets/diagrams/namespace-access.svg +10 -10
  20. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/define-and-migrate-tables.md +1 -1
  21. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/deploy-application-migrations.md +50 -37
  22. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/query-and-mutate.md +5 -4
  23. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/register-existing-tables.md +3 -3
  24. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/tutorial.md +2 -2
  25. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/architecture.md +1 -1
  26. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/identity-and-scope.md +2 -2
  27. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/permissions-namespaces-labels.md +20 -19
  28. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/contributing/database-backends.md +2 -2
  29. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/README.md +1 -1
  30. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/index.md +3 -3
  31. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/catalog-migrations.md +1 -1
  32. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/hosted-runtime.md +2 -2
  33. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/reference/capabilities.md +14 -12
  34. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/reference/python.md +1 -0
  35. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/security/index.md +51 -44
  36. mainsequence_metatable-0.1.46.dev73/docs/security/ownership-and-sharing.md +231 -0
  37. mainsequence_metatable-0.1.46.dev73/docs/security/permissions.md +173 -0
  38. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/mkdocs.yml +1 -0
  39. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/pyproject.toml +3 -3
  40. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73/src/mainsequence_metatable.egg-info}/PKG-INFO +4 -4
  41. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/mainsequence_metatable.egg-info/SOURCES.txt +3 -0
  42. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/mainsequence_metatable.egg-info/requires.txt +2 -2
  43. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/__init__.py +1 -0
  44. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/auth/boundary.py +23 -2
  45. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/auth/team_membership.py +2 -2
  46. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/access_map.py +6 -7
  47. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/managed_finalize.py +2 -2
  48. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/migration_connection.py +2 -2
  49. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/namespaces.py +47 -6
  50. mainsequence_metatable-0.1.46.dev73/src/metatables/api/app/routes/security.py +385 -0
  51. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_delete.py +1 -1
  52. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_patch.py +4 -3
  53. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_registration.py +2 -2
  54. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_sql.py +2 -2
  55. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/time_index_delete.py +1 -1
  56. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/time_index_reads.py +1 -1
  57. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/time_index_stats.py +1 -1
  58. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/timescale_policies.py +2 -2
  59. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_batch.py +1 -1
  60. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_chunk_insert.py +4 -4
  61. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_crud.py +4 -4
  62. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_details.py +2 -2
  63. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_graph.py +1 -1
  64. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_index_statistics.py +2 -2
  65. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_registration.py +1 -1
  66. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_runs.py +5 -5
  67. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_statistics.py +1 -1
  68. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/access.py +23 -8
  69. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +1 -1
  70. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +1 -1
  71. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -1
  72. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/operations.py +2 -1
  73. mainsequence_metatable-0.1.46.dev73/src/metatables/api/backend/backends/pages.py +56 -0
  74. mainsequence_metatable-0.1.46.dev73/src/metatables/api/backend/domain/access_roles.py +186 -0
  75. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/permission_rules.py +7 -0
  76. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/platform_principals.py +17 -0
  77. mainsequence_metatable-0.1.46.dev73/src/metatables/api/backend/migrations/versions/0014_access_roles.py +57 -0
  78. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/create_table.py +1 -1
  79. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/import_relations.py +4 -4
  80. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/introspect_table.py +2 -2
  81. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/read_time_index.py +1 -1
  82. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/register_catalog.py +60 -34
  83. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/grants.py +55 -25
  84. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/impact.py +7 -6
  85. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/models.py +29 -22
  86. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/run_graphs.py +4 -3
  87. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/table_queries.py +2 -2
  88. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/table_response.py +4 -3
  89. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/README.md +1 -1
  90. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/__init__.py +9 -4
  91. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/runner.py +40 -37
  92. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/models.py +112 -36
  93. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_local_mode.py +13 -6
  94. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_runtime_bootstrap.py +8 -8
  95. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_runtime_selection.py +1 -1
  96. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_runtime_storage_binding.py +1 -1
  97. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_team_membership.py +6 -3
  98. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_migration.py +6 -5
  99. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/capabilities.json +140 -107
  100. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_bounded_transfer.py +35 -6
  101. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_catalog_contract.py +2 -2
  102. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_relation_import.py +8 -1
  103. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_sql_security.py +4 -4
  104. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_update_client.py +2 -4
  105. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_application_owned_migrations.py +104 -31
  106. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_data_source_registry.py +1 -1
  107. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_local_actor_client_api.py +2 -4
  108. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_managed_finalize_client_api.py +4 -8
  109. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_managed_finalize_unchanged.py +1 -2
  110. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_namespaces_admin_http.py +2 -3
  111. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_run_graphs.py +4 -2
  112. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_run_logs.py +7 -3
  113. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_runtime_upgrade.py +3 -3
  114. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_sqlite_runtime.py +7 -4
  115. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_delete_client_api.py +3 -6
  116. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_filter_client_api.py +1 -2
  117. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_introspection_client_api.py +2 -4
  118. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_patch_client_api.py +2 -3
  119. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_search_api.py +4 -5
  120. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_search_document_api.py +1 -2
  121. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_search_scale.py +2 -1
  122. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_stats_api.py +1 -2
  123. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_update_pipeline.py +2 -4
  124. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_table_updates_http.py +2 -4
  125. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_time_index_delete_client_api.py +1 -2
  126. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_time_index_reads_client_api.py +1 -2
  127. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_timescale_policies_client_api.py +1 -2
  128. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_update_batch_client_api.py +1 -2
  129. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_update_chunk_insert_client_api.py +2 -1
  130. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_update_dependency_priority_client_api.py +6 -12
  131. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_update_index_statistics_client_api.py +1 -2
  132. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_update_registration_client_api.py +1 -2
  133. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_create_table_operation.py +1 -2
  134. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_create_table_postgres.py +1 -2
  135. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_register_catalog.py +58 -36
  136. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_access_map.py +9 -9
  137. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_deployment_security.py +1 -1
  138. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_namespace_grants.py +12 -16
  139. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_security_api.py +146 -141
  140. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_security_check.py +3 -3
  141. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_table_body_filter.py +1 -2
  142. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_table_grants.py +13 -21
  143. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_table_queries.py +2 -3
  144. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/uv.lock +9 -9
  145. mainsequence_metatable-0.1.45/docs/security/ownership-and-sharing.md +0 -248
  146. mainsequence_metatable-0.1.45/docs/security/permissions.md +0 -163
  147. mainsequence_metatable-0.1.45/src/metatables/api/app/routes/security.py +0 -321
  148. mainsequence_metatable-0.1.45/src/metatables/api/backend/backends/pages.py +0 -41
  149. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
  150. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  151. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
  152. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/discover-tables/SKILL.md +0 -0
  153. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
  154. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
  155. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
  156. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/.mainsequence/workflows/metatables-api.yaml +0 -0
  157. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/LICENSE +0 -0
  158. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/MANIFEST.in +0 -0
  159. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/alembic.ini +0 -0
  160. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/api/metatables/main.py +0 -0
  161. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/compose.database-tests.yml +0 -0
  162. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/agent/0019-metatables-analyst-agent.md +0 -0
  163. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
  164. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
  165. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
  166. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  167. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  168. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  169. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  170. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  171. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  172. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0009-shared-credential-store.md +0 -0
  173. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  174. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  175. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  176. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  177. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
  178. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0016-impact-preflight.md +0 -0
  179. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0017-hosted-request-identity.md +0 -0
  180. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
  181. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0018-table-search.md +0 -0
  182. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
  183. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/api/0023-daily-security-check.md +0 -0
  184. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  185. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  186. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/api/data-sources.md +0 -0
  187. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/assets/branding/metatables.svg +0 -0
  188. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/assets/diagrams/local-client-experience.svg +0 -0
  189. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/bounded-transfers.md +0 -0
  190. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/build-an-updater.md +0 -0
  191. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/installation-and-connection.md +0 -0
  192. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/local-storage.md +0 -0
  193. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/quickstart.md +0 -0
  194. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/read-existing-time-index-tables.md +0 -0
  195. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/client/upgrade-legacy-app.md +0 -0
  196. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/data-sources.md +0 -0
  197. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/runs-and-execution-graphs.md +0 -0
  198. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  199. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/concepts/time-index-tables-and-updates.md +0 -0
  200. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/contributing/architecture-and-boundaries.md +0 -0
  201. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/contributing/documentation.md +0 -0
  202. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/contributing/releasing.md +0 -0
  203. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/contributing/testing.md +0 -0
  204. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/README.md +0 -0
  205. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/__init__.py +0 -0
  206. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/bounded_reader.py +0 -0
  207. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/data_sources/README.md +0 -0
  208. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/data_sources/mssql.json +0 -0
  209. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/data_sources/mysql.json +0 -0
  210. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/data_sources/postgresql.json +0 -0
  211. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/data_sources/register.py +0 -0
  212. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/external_table.py +0 -0
  213. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/README.md +0 -0
  214. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/__init__.py +0 -0
  215. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/__main__.py +0 -0
  216. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/migrations/__init__.py +0 -0
  217. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/migrations/env.py +0 -0
  218. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/migrations/script.py.mako +0 -0
  219. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  220. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/local_app/tables.py +0 -0
  221. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/query.py +0 -0
  222. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/quickstart.py +0 -0
  223. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/reader.py +0 -0
  224. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/scripts/__init__.py +0 -0
  225. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/scripts/setup_metatables.py +0 -0
  226. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tables.py +0 -0
  227. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/__init__.py +0 -0
  228. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/__main__.py +0 -0
  229. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/data/README.md +0 -0
  230. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  231. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/frames.py +0 -0
  232. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/__init__.py +0 -0
  233. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/env.py +0 -0
  234. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/registry.py +0 -0
  235. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  236. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  237. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  238. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  239. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  240. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/operations.py +0 -0
  241. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/tables.py +0 -0
  242. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/tutorial/updaters.py +0 -0
  243. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/examples/updater.py +0 -0
  244. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/configuration.md +0 -0
  245. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/local-runtime.md +0 -0
  246. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/recovery-and-observability.md +0 -0
  247. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/run-history.md +0 -0
  248. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/operations/run-logs.md +0 -0
  249. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/docs/reference/cli.md +0 -0
  250. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/__init__.py +0 -0
  251. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/build_reference.py +0 -0
  252. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_boundaries.py +0 -0
  253. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_client_api_coverage.py +0 -0
  254. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_distribution_sources.py +0 -0
  255. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_docs.py +0 -0
  256. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_examples_debug.py +0 -0
  257. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/check_project.py +0 -0
  258. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/dev_release_version.py +0 -0
  259. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/test_databases.py +0 -0
  260. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/scripts/test_postgresql.py +0 -0
  261. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/setup.cfg +0 -0
  262. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  263. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  264. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  265. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/_admin_source.json +0 -0
  266. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/_build.py +0 -0
  267. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/_skill_bundle.py +0 -0
  268. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/analysis.py +0 -0
  269. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/analyst/__init__.py +0 -0
  270. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/__init__.py +0 -0
  271. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/__init__.py +0 -0
  272. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/auth/__init__.py +0 -0
  273. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/auth/local_actor.py +0 -0
  274. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/bootstrap.py +0 -0
  275. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/configuration.py +0 -0
  276. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/connection_count.py +0 -0
  277. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/credential_admin.py +0 -0
  278. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/development.py +0 -0
  279. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/development_client.py +0 -0
  280. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/error_logging.py +0 -0
  281. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/main.py +0 -0
  282. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/mcp.py +0 -0
  283. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/platform_cache.py +0 -0
  284. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/__init__.py +0 -0
  285. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/caller.py +0 -0
  286. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/column_search.py +0 -0
  287. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/contract_validation.py +0 -0
  288. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/data_sources.py +0 -0
  289. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/run_logs.py +0 -0
  290. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/runtime_context.py +0 -0
  291. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/schema_graph.py +0 -0
  292. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_cascade.py +0 -0
  293. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_crud.py +0 -0
  294. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_filter.py +0 -0
  295. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_import.py +0 -0
  296. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_introspection.py +0 -0
  297. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_response.py +0 -0
  298. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_search.py +0 -0
  299. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_search_document.py +0 -0
  300. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  301. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/routes/update_constants.py +0 -0
  302. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/runtime.py +0 -0
  303. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/runtime_control.py +0 -0
  304. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/runtime_database.py +0 -0
  305. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/source_passwords.py +0 -0
  306. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/app/transfer.py +0 -0
  307. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/__init__.py +0 -0
  308. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/__init__.py +0 -0
  309. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  310. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  311. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  312. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  313. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  314. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  315. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  316. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  317. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  318. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  319. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  320. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  321. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  322. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  323. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  324. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  325. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  326. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  327. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/batch_inspection.py +0 -0
  328. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/catalog.py +0 -0
  329. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  330. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  331. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/connection_pool.py +0 -0
  332. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/contracts.py +0 -0
  333. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/hosted.py +0 -0
  334. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  335. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  336. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/native.py +0 -0
  337. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  338. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/registry.py +0 -0
  339. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  340. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/relational.py +0 -0
  341. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  342. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  343. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/streaming.py +0 -0
  344. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/backends/timescale.py +0 -0
  345. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/contracts/__init__.py +0 -0
  346. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  347. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  348. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  349. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/contracts/values.py +0 -0
  350. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/__init__.py +0 -0
  351. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  352. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  353. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  354. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/label_rules.py +0 -0
  355. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/domain/update_constants.py +0 -0
  356. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/__init__.py +0 -0
  357. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  358. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  359. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  360. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  361. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  362. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  363. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  364. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  365. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  366. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/security_check_job.py +0 -0
  367. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  368. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/__init__.py +0 -0
  369. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/env.py +0 -0
  370. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  371. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  372. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  373. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  374. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  375. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  376. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  377. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  378. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  379. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
  380. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
  381. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
  382. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
  383. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/0013_security_check.py +0 -0
  384. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  385. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/__init__.py +0 -0
  386. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  387. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/bootstrap_timing.py +0 -0
  388. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  389. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  390. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/operations/security_check.py +0 -0
  391. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/__init__.py +0 -0
  392. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/cascade.py +0 -0
  393. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/catalog.py +0 -0
  394. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/database.py +0 -0
  395. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/labels.py +0 -0
  396. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/locking.py +0 -0
  397. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  398. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/projections.py +0 -0
  399. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  400. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  401. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  402. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  403. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  404. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/updates.py +0 -0
  405. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  406. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  407. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/__init__.py +0 -0
  408. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/documents.py +0 -0
  409. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/embeddings.py +0 -0
  410. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/index.py +0 -0
  411. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/ranking.py +0 -0
  412. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/text.py +0 -0
  413. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/backend/search/worker.py +0 -0
  414. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/metatables/__init__.py +0 -0
  415. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/metatables/configuration.yaml +0 -0
  416. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/metatables/main.py +0 -0
  417. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/api/request_timing.py +0 -0
  418. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/__init__.py +0 -0
  419. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/admin_install.py +0 -0
  420. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/app.py +0 -0
  421. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/filters.py +0 -0
  422. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/local.py +0 -0
  423. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/migrations.py +0 -0
  424. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/project.py +0 -0
  425. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/cli/skills.py +0 -0
  426. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/compiled_sql/__init__.py +0 -0
  427. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/compiled_sql/mssql.py +0 -0
  428. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/compiled_sql/v1.py +0 -0
  429. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/dtype_codec.py +0 -0
  430. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/endpoint.py +0 -0
  431. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/README.md +0 -0
  432. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/__init__.py +0 -0
  433. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/bounded_reader.py +0 -0
  434. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/data_sources/README.md +0 -0
  435. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/data_sources/mssql.json +0 -0
  436. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/data_sources/mysql.json +0 -0
  437. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/data_sources/postgresql.json +0 -0
  438. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/data_sources/register.py +0 -0
  439. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/external_table.py +0 -0
  440. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/README.md +0 -0
  441. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/__init__.py +0 -0
  442. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/__main__.py +0 -0
  443. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  444. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/migrations/env.py +0 -0
  445. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  446. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  447. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/local_app/tables.py +0 -0
  448. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/query.py +0 -0
  449. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/quickstart.py +0 -0
  450. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/reader.py +0 -0
  451. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/scripts/__init__.py +0 -0
  452. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  453. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tables.py +0 -0
  454. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/__init__.py +0 -0
  455. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/__main__.py +0 -0
  456. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/data/README.md +0 -0
  457. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  458. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/frames.py +0 -0
  459. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  460. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  461. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  462. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  463. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  464. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  465. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  466. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  467. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/operations.py +0 -0
  468. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/tables.py +0 -0
  469. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/tutorial/updaters.py +0 -0
  470. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/examples/updater.py +0 -0
  471. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/future_registry.py +0 -0
  472. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/hashing.py +0 -0
  473. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/instrumentation.py +0 -0
  474. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/local_connection.py +0 -0
  475. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/local_files.py +0 -0
  476. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/local_run_logs.py +0 -0
  477. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/log_contract.py +0 -0
  478. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/alembic.py +0 -0
  479. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/connection.py +0 -0
  480. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/env.py +0 -0
  481. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/provider.py +0 -0
  482. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/registry.py +0 -0
  483. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/scaffold.py +0 -0
  484. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/sqlite.py +0 -0
  485. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/templates/__init__.py +0 -0
  486. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/templates/env.py.mako +0 -0
  487. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/templates/script.py.mako +0 -0
  488. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/migrations/tls.py +0 -0
  489. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/pydantic_metadata.py +0 -0
  490. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/run_logging.py +0 -0
  491. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/runtime.py +0 -0
  492. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/runtime_context.py +0 -0
  493. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/runtime_contract.py +0 -0
  494. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/schema_names.py +0 -0
  495. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/sdk_compat.py +0 -0
  496. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/sqlalchemy_contracts.py +0 -0
  497. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/storage_layout_contract.py +0 -0
  498. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/time_index_table_refs.py +0 -0
  499. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/transfer.py +0 -0
  500. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/transfer_contract.py +0 -0
  501. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/transport.py +0 -0
  502. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/update_configuration_contract.py +0 -0
  503. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/__init__.py +0 -0
  504. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/configuration.py +0 -0
  505. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/dependencies.py +0 -0
  506. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/managers.py +0 -0
  507. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/namespacing.py +0 -0
  508. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/runner.py +0 -0
  509. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/updaters.py +0 -0
  510. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/updaters/utils.py +0 -0
  511. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/src/metatables/upload.py +0 -0
  512. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/analyst/test_agent_surface.py +0 -0
  513. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/analyst/test_api_search.py +0 -0
  514. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/analyst/test_mcp.py +0 -0
  515. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/analyst/test_tools.py +0 -0
  516. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_bootstrap_failure_cause.py +0 -0
  517. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_caller_endpoint.py +0 -0
  518. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_data_source_identity.py +0 -0
  519. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_development_client.py +0 -0
  520. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_hosted_agent.py +0 -0
  521. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_hosted_environment_target.py +0 -0
  522. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_platform_fact_cache.py +0 -0
  523. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_request_identity.py +0 -0
  524. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_runtime_database.py +0 -0
  525. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_runtime_scaffold.py +0 -0
  526. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/auth/test_source_passwords.py +0 -0
  527. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_catalog_foundation.py +0 -0
  528. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_contract_projection.py +0 -0
  529. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_database_config.py +0 -0
  530. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_index_statistics.py +0 -0
  531. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/catalog/test_schema_validation.py +0 -0
  532. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/conftest.py +0 -0
  533. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/client_signatures.json +0 -0
  534. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/database_operations.json +0 -0
  535. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_compiler_runtime_source.py +0 -0
  536. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_relation_batching.py +0 -0
  537. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_relation_import.py +0 -0
  538. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_runtime_contract_compat.py +0 -0
  539. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_storage_layouts.py +0 -0
  540. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/contracts/test_table_contracts.py +0 -0
  541. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/Dockerfile +0 -0
  542. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/Dockerfile.dockerignore +0 -0
  543. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/__init__.py +0 -0
  544. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/conftest.py +0 -0
  545. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/provider/__init__.py +0 -0
  546. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/provider/env.py +0 -0
  547. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  548. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_api_contract.py +0 -0
  549. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_application_migration.py +0 -0
  550. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  551. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_credential_catalog.py +0 -0
  552. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_physical_contract.py +0 -0
  553. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  554. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_operations/test_physical_operations.py +0 -0
  555. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_operations/test_postgresql_operations.py +0 -0
  556. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  557. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/documentation/test_project_checks.py +0 -0
  558. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_admin_installation.py +0 -0
  559. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_api_endpoint.py +0 -0
  560. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_catalog_outage.py +0 -0
  561. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_api_contract.py +0 -0
  562. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_api_coverage.py +0 -0
  563. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_migration_scaffold.py +0 -0
  564. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_migration_tls.py +0 -0
  565. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_package.py +0 -0
  566. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_signatures.py +0 -0
  567. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_client_value_behaviors.py +0 -0
  568. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_local_cli_workflow.py +0 -0
  569. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_local_client_selection.py +0 -0
  570. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_migration_metadata_and_downgrade.py +0 -0
  571. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_public_imports.py +0 -0
  572. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_remaining_client_routes.py +0 -0
  573. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/e2e/test_sdk_local_startup.py +0 -0
  574. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/examples/test_documented_examples.py +0 -0
  575. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/examples/test_postgresql_examples.py +0 -0
  576. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/examples/test_setup_launch.py +0 -0
  577. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/examples/test_tutorial.py +0 -0
  578. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_batch_introspection.py +0 -0
  579. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_connection_reuse.py +0 -0
  580. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_credential_store.py +0 -0
  581. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_data_source_rules.py +0 -0
  582. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_local_data_sources.py +0 -0
  583. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_local_run_logs.py +0 -0
  584. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_postgresql_connection.py +0 -0
  585. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_postgresql_sql.py +0 -0
  586. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_postgresql_tables.py +0 -0
  587. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  588. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_request_timing.py +0 -0
  589. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_serving_policy.py +0 -0
  590. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_source_validation.py +0 -0
  591. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/integrations/test_sqlite_operations.py +0 -0
  592. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/labels/test_labels.py +0 -0
  593. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_bootstrap_lock.py +0 -0
  594. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_physical_operation_journal.py +0 -0
  595. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_search_documents.py +0 -0
  596. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/operations/test_timescale_policies.py +0 -0
  597. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/packaging/test_client_skills.py +0 -0
  598. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/packaging/test_dev_release_version.py +0 -0
  599. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/packaging/test_distribution_sources.py +0 -0
  600. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/packaging/test_editable_build.py +0 -0
  601. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/packaging/test_installed_distribution.py +0 -0
  602. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_governed_sql_scope.py +0 -0
  603. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_incremental_security.py +0 -0
  604. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_local_actor_membership.py +0 -0
  605. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_migration_boundary.py +0 -0
  606. {mainsequence_metatable-0.1.45 → mainsequence_metatable-0.1.46.dev73}/tests/permissions/test_workload_principals.py +0 -0
@@ -109,7 +109,7 @@ revisions; do not recompute identity from columns or rewrite applied history.
109
109
  Read `docs/client/query-and-mutate.md` and `src/metatables/examples/query.py`. Use
110
110
  `compile_sqlalchemy_statement` with bound parameters. The request sends SQL and
111
111
  selects one DataSource; the API executes as the authenticated user, and the
112
- selected database backend enforces Reader/Writer permissions on the tables
112
+ selected database backend enforces the caller's roles (`data_viewer` reads, `data_writer` and above write) on the tables
113
113
  actually touched. The API does not parse SQL for authorization. The compiler can
114
114
  resolve DataSource and dialect from the selected runtime; supply both explicitly
115
115
  for offline compilation. Preserve execution mode, row limits and timeouts.
@@ -129,14 +129,16 @@ to the separate migration-provider workflow.
129
129
  To find tables, use `MetaTable.search` as described in the
130
130
  [table discovery skill](../metatables-table-discovery/SKILL.md). Legacy convenience
131
131
  sharing/label actions are not supported API workflows.
132
- Use `get_access`, `set_access` and `revoke_access` for supported Reader/Writer
133
- sharing. Labels can be changed through the documented table PATCH path. Authorization is
134
- owned by the API catalog; see `docs/concepts/permissions-namespaces-labels.md`.
132
+ Use `get_access`, `grant_role`, `revoke_role`, `allowed_actions` and `explain` on a
133
+ table or `Namespace` for roles (`metadata_viewer`, `data_viewer`, `data_writer`,
134
+ `editor`, `owner`); `Namespace.create(name)` makes the caller its owner. Labels can be
135
+ changed through the documented table PATCH path. Authorization is owned by the API
136
+ catalog; see `docs/security/ownership-and-sharing.md`.
135
137
 
136
138
  Updater output rollback uses `TimeIndexMetaTable.delete_after_date` with an
137
139
  inclusive time cutoff and explicit dimension/coordinate scope when appropriate.
138
140
  A null cutoff requires a scope. Do not replace that workflow with ad hoc SQL.
139
- Deletion/cascade requires edit access, relevant protection checks, and explicit
141
+ Deletion/cascade requires `tables.delete` (`editor`), relevant protection checks, and explicit
140
142
  cascade intent; it is not an administrator-role bypass or migration repair.
141
143
 
142
144
  Before a destructive action, or to show impact in an application UI, call
@@ -144,12 +146,12 @@ Before a destructive action, or to show impact in an application UI, call
144
146
  The API returns whether the caller may run it, every blocker, and a graph of
145
147
  affected tables, foreign-key effects and reading updates; render that result
146
148
  rather than re-deriving foreign-key or permission rules in the client. Cascading
147
- foreign keys are allowed. Write on a table depends only on its own grants; the
149
+ foreign keys are allowed. Write on a table depends only on its own roles; the
148
150
  cascade effects in the result are information, never a reason the action is blocked.
149
151
 
150
152
  On a TimescaleDB DataSource, time-index tables are hypertables. Their compression
151
153
  and retention policies are set only through `TimeIndexMetaTable.set_timescale_policies`
152
- (Writer) and read with `get_timescale_policies`. Do not add policies to table
154
+ (`tables.update`, `editor`) and read with `get_timescale_policies`. Do not add policies to table
153
155
  contracts or Alembic revisions; to keep them in code, call the client from a
154
156
  bootstrap Job. Retention permanently drops older chunks, including backfills.
155
157
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: metatables-migrations
3
- description: "Create and evolve managed application tables through Alembic migration providers with the installed MetaTables Python client. Covers provider scope and placement, scaffolding, revision authoring, local execution, the deployment-workflow migration Job for hosted runtimes, the Team that owns an application's tables in each Environment, and reservation or finalization failures. Excludes API catalog migrations, client-library implementation, API/server changes and repository tooling."
3
+ description: "Create and evolve managed application tables through Alembic migration providers with the installed MetaTables Python client. Covers provider scope and placement, scaffolding, revision authoring, local execution, the deployment-workflow migration Job for hosted runtimes, the namespace and roles that give the Job access in each Environment, and reservation or finalization failures. Excludes API catalog migrations, client-library implementation, API/server changes and repository tooling."
4
4
  ---
5
5
 
6
6
  # MetaTables client application migrations
@@ -46,17 +46,15 @@ migrations. Read `docs/client/deploy-application-migrations.md`.
46
46
  1. **Develop locally.** Author the revision and apply it to verified local SQLite
47
47
  with the [local development skill](../metatables-local-development/SKILL.md).
48
48
  2. **Commit the revision with the code that needs it.**
49
- 3. **Give a Team the tables.** Before the first hosted migration in each
50
- Environment, the application's tables need an owning Team: one platform Team
51
- per Environment (for example `ledger-development`), whose members are the
52
- migration Job's workload User and the workload User of every resource that
53
- reads or writes the tables. An Organization admin creates, in that
54
- Environment, each namespace the provider registers tables in, and grants the
55
- Team Writer on it. Recommend one namespace per application, owned by its Team;
56
- it is not required (see "Namespaces and applications" in
57
- `docs/security/ownership-and-sharing.md`).
58
- Tell the user these steps; they are made in the platform and in MetaTables
59
- Security, not in the repository.
49
+ 3. **Give the Job access.** Before the first hosted migration in each
50
+ Environment, a person (no admin needed) creates each namespace the provider
51
+ creates tables in, with `Namespace.create(name)` or the Admin, and becomes its
52
+ `owner`. As owner they grant `editor` to the migration Job's workload User and
53
+ `data_writer` to resources that only read and write rows, directly or through a
54
+ Team they belong to that contains those workloads. Recommend one namespace per
55
+ application; it is not required (see "Namespaces and applications" in
56
+ `docs/security/ownership-and-sharing.md`). Tell the user these steps; they are
57
+ made in MetaTables (and, for a Team, the platform), not in the repository.
60
58
  4. **Deploy.** The application's `.mainsequence/workflows/` file declares a
61
59
  migration Job that calls `upgrade_application` for each provider, in
62
60
  dependency order, from the candidate image. The Job and every resource that
@@ -78,13 +76,14 @@ Rules:
78
76
  during and after a failed rollout. Add first; drop or rename in a later release.
79
77
  - Redeploying an older image does not roll back the schema. Downgrade is never a
80
78
  deployment step.
81
- - Tables belong to the Team, never to one workload User. Workload Users change
82
- with each Environment and each recreated Job; a new one needs Team membership
83
- only. Do not ask for direct table grants to a workload User, and do not run the
84
- Job as an Organization admin to get around a refusal.
85
- - A table registered in a namespace the caller already writes gets no grant of
86
- its own; the namespace's Writers own it. The Team needs Writer on every
87
- namespace the provider uses.
79
+ - Tables belong to their namespace's roles, never to one workload User. A table
80
+ created in a namespace gets no binding of its own. Workloads cannot create tables
81
+ outside a namespace (`namespace_required`). Workload Users change with each
82
+ Environment and each recreated Job: a direct role needs granting again, a Team
83
+ only membership. Do not run the Job as an Organization admin to get around a
84
+ refusal.
85
+ - The Job needs `editor` on every namespace the provider uses; resources that only
86
+ read and write rows need `data_writer`.
88
87
 
89
88
  ## Source and runtime context
90
89
 
@@ -182,7 +181,7 @@ branch on `op.get_bind().dialect.name`.
182
181
  The client imports and executes application revisions, using the connection
183
182
  resolved for the selected environment. Environment operators supply the database
184
183
  login's DDL privileges. MetaTables does not mint migration roles or sandbox DDL.
185
- API Writer checks govern connection admission and provider catalog operations.
184
+ API `tables.migrate` checks govern connection admission and provider catalog operations.
186
185
  The client reserves catalog entries, runs Alembic, closes its physical connection,
187
186
  and finalizes contracts through the API. Treat connection material as private.
188
187
 
@@ -252,13 +251,12 @@ Read `docs/operations/recovery-and-observability.md`.
252
251
  another install overwrote it. Move the provider under an application-owned
253
252
  module (see [Provider placement](#provider-placement)), preserving its provider
254
253
  identity and applied revision history. Do not edit files in `site-packages`.
255
- - If reservation fails with `namespace_not_writable` or `table_not_editable`
256
- (403), the caller lacks Writer through the owning Team. Add the
257
- `caller_user_uid` from the error to the Team with Writer on the namespace, or,
258
- when the namespace or Team is missing, set them up as in step 3. A table
259
- registered before the Team existed may have only a retired workload User as
260
- Writer; an Organization admin grants the Team Writer on its namespace. Do not
261
- change code or physical names to get around it.
254
+ - If reservation fails with `namespace_not_found` (403), create the namespace and
255
+ grant the Job `editor`, as in step 3. With `namespace_access_required`, an owner
256
+ the error lists grants the `caller_user_uid` `editor` on the namespace, or adds it
257
+ to a Team that holds it. With `namespace_required`, set the table's namespace.
258
+ With `table_not_editable`, an owner of the table or its namespace grants `editor`.
259
+ Do not change code or physical names to get around it.
262
260
  - If reservation fails otherwise, compare provider scope and physical identities
263
261
  before changing code. Do not create a second catalog row for the same table.
264
262
  - If Alembic succeeds but finalization fails, physical DDL may already be
@@ -296,5 +294,5 @@ Read `docs/operations/recovery-and-observability.md`.
296
294
  Verify provider scope and placement, revision content, the selected environment
297
295
  connection, repeat execution, and final active bindings. Check that the deployment
298
296
  workflow runs the migration Job before every resource that uses the tables, and
299
- that each Environment has its owning Team with the Job's workload User. Report
297
+ that each Environment's namespaces grant the Job's workload User `editor`. Report
300
298
  separately what was checked offline and what was exercised against a configured API.
@@ -154,7 +154,7 @@ key, the time index and the identity dimensions.
154
154
  table is published.
155
155
  - `__metatable_namespace__` is the owning application or source, not a SQL schema.
156
156
  Its description (one or two sentences about the application or source) is
157
- written once by the namespace's Writer; do not repeat it in table descriptions.
157
+ written once by someone with `editor` on the namespace; do not repeat it in table descriptions.
158
158
 
159
159
  ### Time-index tables, in addition
160
160
 
@@ -1,7 +1,7 @@
1
1
  schema=1
2
2
  library_name=ms-tau-sdk
3
3
  namespace=ms_tau_sdk
4
- pinned_version=2.0.16
4
+ pinned_version=2.0.18
5
5
  skills_path=src/ms_tau_sdk/agent_skills
6
6
  skills=tau_a2a_runtime_adapter,tau_local_development,tau_project_customization,tau_repository_integration,tau_security_and_access
7
7
  command=ms-tau skills sync --path .
@@ -161,7 +161,7 @@ async def revenue_by_region(tool_call_id, arguments, signal=None, on_update=None
161
161
  - `current_requester()` returns the person the turn serves, with `uid` and
162
162
  `await in_teams(team_uids, *, max_age_seconds=None)`, or `None`. `in_teams()` answers while the
163
163
  person is the verified caller of the turn's request (see `tau_security_and_access`, "Checking the
164
- person's teams"); `team_uids` is deprecated. The platform names that person when the turn
164
+ person's teams"); the person carries no team list. The platform names that person when the turn
165
165
  starts, whoever called; it is `None` when the platform names nobody, in local mode, and in code
166
166
  outside a turn. Only it names the requester: never take a person's UID from tool arguments, the
167
167
  prompt, history, or a header.
@@ -184,7 +184,7 @@ Rules for tools that act for the requester:
184
184
  a URL, and never sets `Authorization` or an `X-MainSequence-*` header.
185
185
  - A delegated call uses the person's ordinary permissions, including administrative ones; any other
186
186
  call uses the Agent's own. Each operation decides what it needs. Never infer write permission
187
- from view access.
187
+ from read access.
188
188
  - Return to the model only business results, such as rows, numbers, and names. Never return the
189
189
  response object, its headers, a token, a proof, or a raw error body.
190
190
  - Keep nothing for another turn or another person. The delegation ends with the turn, and a task
@@ -163,8 +163,9 @@ What makes it safe:
163
163
 
164
164
  - No tool takes a Secret value or a Secret name from the model. The name is built from
165
165
  `current_requester().uid`, so prompt injection cannot point the tool at another Secret.
166
- - `delegation="required"` reads the Secret as the person. The platform returns it only if the
167
- person can view it; the name is a lookup key, not the protection.
166
+ - `delegation="required"` reads the Secret as the person. The platform returns the value only if
167
+ the person holds `value_reader`, `editor` or `owner` on it; the name is a lookup key, not the
168
+ protection.
168
169
  - The value exists only inside one call. It never goes into the result, `details`, a log, an
169
170
  exception message, a file or a cache for the next turn. It travels in a header, never in a URL,
170
171
  because URLs reach logs. Errors from the outside call are caught, and the provider's raw body is
@@ -178,19 +179,19 @@ What makes it safe:
178
179
 
179
180
  A delegated read returns anything the person can view in the Agent's Environment: what they
180
181
  created and what others shared with them, directly or through a team. This holds for Secrets and
181
- other shared resources. Ordinary Teams use explicit membership: the creator is added once and
182
- can be removed; current Organization admins are protected writer members. Removing the admin
183
- role keeps membership and writer access but ends protection. Only Organization admins manage
184
- membership, and managing a workload that created a Team does not grant Team control. A Team's
185
- members still receive the resources shared with it. The Full directory remains unchanged.
186
- See the SDK Security and access guide's **Teams and membership** section for platform rollout.
187
- The platform enforces sharing; which of those objects a tool uses is part of
188
- the tool's design. For Secrets, the naming convention states that design:
182
+ other shared resources. A team's members receive what is shared with it, and `in_teams()` answers
183
+ membership. Who can see and manage a team is decided separately, by the `viewer`,
184
+ `membership_manager`, `editor` and `owner` policies on it: any person can create a team and
185
+ becomes its owner and first member, members can see the team and leave it, and Organization admins
186
+ manage every team from their role, without being members. No membership is protected. See the SDK
187
+ Security and access guide's **Teams and membership** section. The platform enforces sharing;
188
+ which of those objects a tool uses is part of the tool's design. For Secrets, the naming
189
+ convention states that design:
189
190
 
190
191
  - **A personal credential:** a name tied to the person, such as `QUOTES_API_KEY__<person uid>`.
191
192
  The person decides whether to share it.
192
- - **A team credential:** a name the team agrees on, shared with the team for view. The tool reads
193
- it for any member.
193
+ - **A team credential:** a name the team agrees on, with `value_reader` attached to the team. The
194
+ tool reads it for any member.
194
195
  - **Someone else's Secret shared with the person:** valid whenever the tool is meant to use it.
195
196
 
196
197
  Whoever can edit a Secret decides its value, so the tool uses whatever value they set. Granting or
@@ -199,13 +200,68 @@ decision people make through sharing, not one the platform makes for them.
199
200
 
200
201
  How sharing works:
201
202
 
202
- - The creator of a Secret can always view and edit it, and cannot be removed from it. People who
203
- can edit a Secret can share it, for view or for edit, with people and teams.
204
- - Most people can share only within the teams they belong to; Organization admins can share
205
- across their Organization.
206
- - `GET /api/v1/secrets/<uid>/can-view/` and `can-edit/` list the people and teams with access. A
207
- tool can use them when its design needs to, for example to refuse a team key where it expects a
208
- personal one. That is a choice of the tool, not a platform rule.
203
+ - Policies on a Secret decide access: `reader` sees that it exists and its name, never its value;
204
+ `value_reader` also reads the current value; `editor` also reads earlier values, sets a new value,
205
+ deletes it and sees who has access; `owner` also decides who has access. The creator becomes its
206
+ owner, and Organization admins hold every policy on their Organization's Secrets from their role.
207
+ - Owners attach and detach these policies for people, teams and workloads; whoever manages a
208
+ workload can also give it a policy they hold, and anyone can remove their own. No policy is
209
+ protected: an owner can remove the creator's. Nobody gives a policy with more than they hold, and
210
+ people other than Organization admins give access only to people who share an active team with
211
+ them, to teams they belong to and to workloads they can view.
212
+ - `GET /api/v1/secrets/<uid>/access/` lists who holds which policy, for editors and owners, and
213
+ `GET /api/v1/secrets/<uid>/access/me/` answers what the caller may do with it. A tool can use
214
+ them when its design needs to, for example to refuse a team key where it expects a personal one.
215
+ That is a choice of the tool, not a platform rule.
216
+
217
+ ## Model providers
218
+
219
+ The model a session runs on uses a provider credential or custom endpoint that the session owner
220
+ may use; a delegated child session uses its parent's owner. A policy that only the Agent's workload
221
+ holds does not count in a person's session. Policies on the record decide who may use it, held
222
+ directly or through a team:
223
+
224
+ - `user` uses it: a credential is selected and delivered to sessions and workloads, including local
225
+ Tau, and a custom endpoint receives their requests.
226
+ - `editor` also refreshes, reconnects or revokes a credential, or changes or deletes an endpoint,
227
+ and sees who has access; `owner` also decides who has access.
228
+ - The credential's person and the endpoint's creator hold `owner`, and Organization admins hold
229
+ every action on their Organization's records. Owners give and remove the policies in Command
230
+ Center's provider settings or through `/api/v1/model-provider-credentials/<uid>/access/` and
231
+ `/api/v1/custom-model-providers/<uid>/access/`; a refused change answers `403` `missing_action`
232
+ with the `granting_policies` that would allow it.
233
+
234
+ Holding `user` delivers the credential, or the endpoint's stored authentication, to the holder's own
235
+ runtime, including local Tau, where it can be copied; removing the policy stops later deliveries,
236
+ not copies already made. To let a team run an Agent on one credential, its owner gives the team
237
+ `user`.
238
+
239
+ ## Agents
240
+
241
+ Policies on an Agent decide who may talk to it and manage it, held directly or through a team:
242
+
243
+ - `user` talks to it and gives it Tasks, seeing only the Tasks they asked for; `viewer` also sees
244
+ every Task of the Agent with its requests and results; `operator` also stops any Task or
245
+ conversation run, other people's included; `editor` also configures it, moves it to a new runtime
246
+ build, deletes it, manages what its workload can reach and sees who has access; `owner` also
247
+ decides who has access.
248
+ - A conversation stays its owner's: no Agent policy, `owner` included, reads another person's
249
+ conversation (Organization admins can read it, never change it), and only a Task's requesters
250
+ continue it. On an Agent that acts for its requester, a Task is visible only to its requesters
251
+ and Organization admins.
252
+ - Whoever creates an Agent holds `owner`, and Organization admins hold every action on their
253
+ Organization's Agents. Owners give and remove the policies through
254
+ `/api/v1/agents/<uid>/access/`; a refused change answers `403` `missing_action` with the
255
+ `granting_policies` that would allow it, and an Agent the caller holds no policy on answers `404`.
256
+ - The release an Agent runs on takes no policy of its own: `viewer` and `operator` on the Agent see
257
+ it, and `editor` and `owner` change it.
258
+
259
+ A tool reaches Agents and their Tasks with the caller's policies: the person's in a delegated call,
260
+ the Agent's workload's otherwise. To send another Agent work without a delegation, the workload
261
+ needs its own policy on that Agent, declared under `access.agents` in its workflow file, usually
262
+ `policy: user`. Calling another application with `call_release()` needs a policy on its release
263
+ that includes calling it (`resource-releases.invoke`, which every release policy has), and the
264
+ platform checks it again on every call.
209
265
 
210
266
  ## Checking the person's teams
211
267
 
@@ -220,7 +276,9 @@ if person is None or REPORTS_TEAM_UID not in await person.in_teams([REPORTS_TEAM
220
276
  ```
221
277
 
222
278
  - `await in_teams(team_uids, *, max_age_seconds=None)` returns the subset of `team_uids` the
223
- person is an active member of, as a `frozenset`. Unknown and inactive teams are left out.
279
+ person is an active member of, as a `frozenset`. Unknown and inactive teams are left out, and so
280
+ is a team the person only manages: managing a team, also as an Organization admin, does not make
281
+ anyone a member.
224
282
  - On the turn's requester it answers only while that person is the verified caller of the request
225
283
  the turn runs in, such as a chat or A2A Message they sent. A turn with no such request raises
226
284
  `TauSDKError`: a Task attempt the platform dispatches, a turn that resumes a caller delivery, or
@@ -230,9 +288,7 @@ if person is None or REPORTS_TEAM_UID not in await person.in_teams([REPORTS_TEAM
230
288
  `0`: only within its request); set it in `harness_agent.spec.env_vars`. `max_age_seconds=0`
231
289
  always asks the platform: use it before a write that must see a removal at once.
232
290
  - A check the platform cannot answer raises `BackendError`; it never answers "not a member".
233
- - `team_uids` on the requester is deprecated and warns when read. It is empty when the turn does
234
- not know the person's teams, and raises when the caller's assertion carried no team list, as
235
- every assertion will once the platform stops signing them. Use `in_teams()`.
291
+ - The requester carries no team list; `in_teams()` is the only membership check.
236
292
 
237
293
  ## What never reaches the model
238
294
 
@@ -274,4 +330,5 @@ Patch the extension module's `current_requester` and `platform_client` with fake
274
330
  - Secret values stay inside one call, in headers, never in results, logs, errors, URLs or caches.
275
331
  - The naming convention says whose Secrets the tool uses, and the people sharing them know it.
276
332
  - A refused delegated call is reported, never retried as the Agent.
277
- - The Agent's workload holds no grants it does not need, and none on people's Secrets.
333
+ - The Agent's workload holds no grants it does not need, and none on people's Secrets; `user` is
334
+ enough on an Agent it only sends work to.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.45
3
+ Version: 0.1.46.dev73
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[mcp]<10,>=9.0.27
17
+ Requires-Dist: mainsequence[mcp]<10,>=9.0.29
18
18
  Requires-Dist: alembic<2,>=1.18
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: cryptography<51,>=46
@@ -51,7 +51,7 @@ Requires-Dist: twine<7,>=6; extra == "dev"
51
51
  Provides-Extra: docs
52
52
  Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
53
53
  Provides-Extra: agent
54
- Requires-Dist: ms-tau-sdk==2.0.16; extra == "agent"
54
+ Requires-Dist: ms-tau-sdk==2.0.18; extra == "agent"
55
55
  Provides-Extra: mysql
56
56
  Requires-Dist: PyMySQL[rsa]<1.2,>=1.1.1; extra == "mysql"
57
57
  Provides-Extra: mssql
@@ -93,7 +93,7 @@ through Settings; startup never runs Alembic.
93
93
 
94
94
  - [Install and connect](docs/client/installation-and-connection.md), including the complete local CLI workflow.
95
95
  - [Understand the concepts](docs/concepts/architecture.md) and [identity and scope](docs/concepts/identity-and-scope.md).
96
- - [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
96
+ - [Understand the security model](docs/security/index.md): administration, roles on namespaces and tables, and implementation status.
97
97
  - [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
98
98
  - [Define and migrate managed tables](docs/client/define-and-migrate-tables.md).
99
99
  - [Register existing tables](docs/client/register-existing-tables.md).
@@ -34,7 +34,7 @@ through Settings; startup never runs Alembic.
34
34
 
35
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
- - [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
37
+ - [Understand the security model](docs/security/index.md): administration, roles on namespaces and tables, and implementation status.
38
38
  - [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
39
39
  - [Define and migrate managed tables](docs/client/define-and-migrate-tables.md).
40
40
  - [Register existing tables](docs/client/register-existing-tables.md).
@@ -1,5 +1,10 @@
1
1
  # ADR 0002: Application administration and table ownership
2
2
 
3
+ > Amendment (2026-10-19): [ADR 0024](0024-namespace-and-table-access-roles.md) replaces Reader/Writer
4
+ > with roles (`metadata_viewer`, `data_viewer`, `data_writer`, `editor`, `owner`) checked as actions.
5
+ > Any person creates a namespace and owns it, namespace owners grant on it instead of
6
+ > Security, and Organization admins hold every action, data included.
7
+
3
8
  > Amendment (2026-10-01): [ADR 0013](0013-application-owned-migrations.md) establishes application-owned
4
9
  > client Alembic execution using the configured environment connection. Its DDL
5
10
  > privileges belong to the environment database role. It supersedes this ADR's
@@ -1,5 +1,10 @@
1
1
  # ADR 0007: Enforce table grants in the database
2
2
 
3
+ > Amendment (2026-10-19): [ADR 0024](0024-namespace-and-table-access-roles.md) keeps the two
4
+ > privilege sets: `data_viewer` maps to Reader's `SELECT`, `data_writer`, `editor` and `owner`
5
+ > to Writer's privileges, and `metadata_viewer` to none. An admin group role holds write
6
+ > privileges on every managed table; admins' login roles are its members.
7
+
3
8
  > Amendment (2026-10-01): [ADR 0013](0013-application-owned-migrations.md) establishes application-owned
4
9
  > client Alembic execution using the configured environment connection. Its DDL
5
10
  > privileges belong to the environment database role. It supersedes this ADR's