mainsequence-metatable 0.1.46.dev73__tar.gz → 0.1.47__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 (602) hide show
  1. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/client/metatables-meta-tables/SKILL.md +1 -1
  2. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/client/metatables-migrations/SKILL.md +32 -14
  3. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +8 -0
  4. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.mainsequence/workflows/metatables-api.yaml +7 -7
  5. {mainsequence_metatable-0.1.46.dev73/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.47}/PKG-INFO +1 -1
  6. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0024-namespace-and-table-access-roles.md +6 -4
  7. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/index.md +1 -1
  8. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/deploy-application-migrations.md +58 -37
  9. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/hosted-runtime.md +1 -1
  10. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/security/ownership-and-sharing.md +8 -6
  11. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/pyproject.toml +1 -1
  12. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
  13. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/uv.lock +1 -1
  14. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
  15. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
  16. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
  17. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/discover-tables/SKILL.md +0 -0
  18. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +0 -0
  19. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
  20. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
  21. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +0 -0
  22. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
  23. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +0 -0
  24. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/LICENSE +0 -0
  25. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/MANIFEST.in +0 -0
  26. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/README.md +0 -0
  27. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/alembic.ini +0 -0
  28. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/api/metatables/main.py +0 -0
  29. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/compose.database-tests.yml +0 -0
  30. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/agent/0019-metatables-analyst-agent.md +0 -0
  31. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
  32. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
  33. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
  34. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
  35. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0004-approved-application-migrations.md +0 -0
  36. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
  37. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0006-historical-run-graphs.md +0 -0
  38. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
  39. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
  40. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
  41. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
  42. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0009-shared-credential-store.md +0 -0
  43. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
  44. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
  45. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0013-application-owned-migrations.md +0 -0
  46. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
  47. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
  48. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0016-impact-preflight.md +0 -0
  49. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0017-hosted-request-identity.md +0 -0
  50. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
  51. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0018-table-search.md +0 -0
  52. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
  53. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/api/0023-daily-security-check.md +0 -0
  54. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
  55. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
  56. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/authentication-and-errors.md +0 -0
  57. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/data-sources.md +0 -0
  58. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/openapi.json +0 -0
  59. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/overview.md +0 -0
  60. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/reference.md +0 -0
  61. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/tables-and-migrations.md +0 -0
  62. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/api/time-index-and-updates.md +0 -0
  63. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/assets/branding/metatables.svg +0 -0
  64. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/assets/diagrams/local-client-experience.svg +0 -0
  65. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/assets/diagrams/namespace-access.svg +0 -0
  66. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/bounded-transfers.md +0 -0
  67. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/build-an-updater.md +0 -0
  68. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/define-and-migrate-tables.md +0 -0
  69. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/installation-and-connection.md +0 -0
  70. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/local-storage.md +0 -0
  71. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/query-and-mutate.md +0 -0
  72. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/quickstart.md +0 -0
  73. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/read-existing-time-index-tables.md +0 -0
  74. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/register-existing-tables.md +0 -0
  75. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/tutorial.md +0 -0
  76. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/client/upgrade-legacy-app.md +0 -0
  77. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/architecture.md +0 -0
  78. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/data-sources.md +0 -0
  79. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/identity-and-scope.md +0 -0
  80. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/permissions-namespaces-labels.md +0 -0
  81. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/runs-and-execution-graphs.md +0 -0
  82. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
  83. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/concepts/time-index-tables-and-updates.md +0 -0
  84. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/contributing/architecture-and-boundaries.md +0 -0
  85. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/contributing/database-backends.md +0 -0
  86. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/contributing/documentation.md +0 -0
  87. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/contributing/releasing.md +0 -0
  88. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/contributing/testing.md +0 -0
  89. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/README.md +0 -0
  90. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/__init__.py +0 -0
  91. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/bounded_reader.py +0 -0
  92. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/data_sources/README.md +0 -0
  93. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/data_sources/mssql.json +0 -0
  94. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/data_sources/mysql.json +0 -0
  95. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/data_sources/postgresql.json +0 -0
  96. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/data_sources/register.py +0 -0
  97. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/external_table.py +0 -0
  98. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/README.md +0 -0
  99. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/__init__.py +0 -0
  100. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/__main__.py +0 -0
  101. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/migrations/__init__.py +0 -0
  102. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/migrations/env.py +0 -0
  103. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/migrations/script.py.mako +0 -0
  104. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  105. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/local_app/tables.py +0 -0
  106. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/query.py +0 -0
  107. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/quickstart.py +0 -0
  108. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/reader.py +0 -0
  109. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/scripts/__init__.py +0 -0
  110. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/scripts/setup_metatables.py +0 -0
  111. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tables.py +0 -0
  112. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/README.md +0 -0
  113. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/__init__.py +0 -0
  114. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/__main__.py +0 -0
  115. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/data/README.md +0 -0
  116. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  117. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/frames.py +0 -0
  118. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/__init__.py +0 -0
  119. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/env.py +0 -0
  120. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/registry.py +0 -0
  121. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/script.py.mako +0 -0
  122. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
  123. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  124. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  125. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  126. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/operations.py +0 -0
  127. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/tables.py +0 -0
  128. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/tutorial/updaters.py +0 -0
  129. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/examples/updater.py +0 -0
  130. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/index.md +0 -0
  131. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/catalog-migrations.md +0 -0
  132. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/configuration.md +0 -0
  133. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/local-runtime.md +0 -0
  134. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/recovery-and-observability.md +0 -0
  135. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/run-history.md +0 -0
  136. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/operations/run-logs.md +0 -0
  137. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/reference/capabilities.md +0 -0
  138. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/reference/cli.md +0 -0
  139. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/reference/python.md +0 -0
  140. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/security/index.md +0 -0
  141. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/docs/security/permissions.md +0 -0
  142. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/mkdocs.yml +0 -0
  143. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/__init__.py +0 -0
  144. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/build_reference.py +0 -0
  145. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_boundaries.py +0 -0
  146. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_client_api_coverage.py +0 -0
  147. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_distribution_sources.py +0 -0
  148. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_docs.py +0 -0
  149. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_examples_debug.py +0 -0
  150. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/check_project.py +0 -0
  151. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/dev_release_version.py +0 -0
  152. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/test_databases.py +0 -0
  153. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/scripts/test_postgresql.py +0 -0
  154. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/setup.cfg +0 -0
  155. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
  156. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
  157. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
  158. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
  159. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
  160. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/__init__.py +0 -0
  161. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/_admin_source.json +0 -0
  162. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/_build.py +0 -0
  163. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/_skill_bundle.py +0 -0
  164. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/analysis.py +0 -0
  165. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/analyst/__init__.py +0 -0
  166. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/__init__.py +0 -0
  167. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/__init__.py +0 -0
  168. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/auth/__init__.py +0 -0
  169. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/auth/boundary.py +0 -0
  170. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/auth/local_actor.py +0 -0
  171. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/auth/team_membership.py +0 -0
  172. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/bootstrap.py +0 -0
  173. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/configuration.py +0 -0
  174. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/connection_count.py +0 -0
  175. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/credential_admin.py +0 -0
  176. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/development.py +0 -0
  177. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/development_client.py +0 -0
  178. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/error_logging.py +0 -0
  179. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/main.py +0 -0
  180. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/mcp.py +0 -0
  181. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/platform_cache.py +0 -0
  182. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/__init__.py +0 -0
  183. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/access_map.py +0 -0
  184. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/caller.py +0 -0
  185. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/column_search.py +0 -0
  186. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/contract_validation.py +0 -0
  187. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/data_sources.py +0 -0
  188. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/managed_finalize.py +0 -0
  189. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/migration_connection.py +0 -0
  190. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/namespaces.py +0 -0
  191. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/run_logs.py +0 -0
  192. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/runtime_context.py +0 -0
  193. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/schema_graph.py +0 -0
  194. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/security.py +0 -0
  195. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_cascade.py +0 -0
  196. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_crud.py +0 -0
  197. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_delete.py +0 -0
  198. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_filter.py +0 -0
  199. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_import.py +0 -0
  200. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_introspection.py +0 -0
  201. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_patch.py +0 -0
  202. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_registration.py +0 -0
  203. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_response.py +0 -0
  204. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_search.py +0 -0
  205. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_search_document.py +0 -0
  206. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_sql.py +0 -0
  207. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
  208. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/time_index_delete.py +0 -0
  209. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/time_index_reads.py +0 -0
  210. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/time_index_stats.py +0 -0
  211. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/timescale_policies.py +0 -0
  212. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_batch.py +0 -0
  213. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
  214. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_constants.py +0 -0
  215. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_crud.py +0 -0
  216. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_details.py +0 -0
  217. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_graph.py +0 -0
  218. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
  219. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_registration.py +0 -0
  220. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_runs.py +0 -0
  221. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/routes/update_statistics.py +0 -0
  222. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/runtime.py +0 -0
  223. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/runtime_control.py +0 -0
  224. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/runtime_database.py +0 -0
  225. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/source_passwords.py +0 -0
  226. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/app/transfer.py +0 -0
  227. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/__init__.py +0 -0
  228. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/__init__.py +0 -0
  229. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/access.py +0 -0
  230. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
  231. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
  232. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
  233. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
  234. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
  235. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
  236. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
  237. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
  238. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
  239. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
  240. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
  241. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
  242. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
  243. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
  244. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
  245. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
  246. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
  247. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
  248. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
  249. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
  250. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
  251. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/batch_inspection.py +0 -0
  252. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/catalog.py +0 -0
  253. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
  254. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/catalog_types.py +0 -0
  255. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/connection_pool.py +0 -0
  256. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/contracts.py +0 -0
  257. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/hosted.py +0 -0
  258. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/hosted_access.py +0 -0
  259. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/migration_connection.py +0 -0
  260. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/native.py +0 -0
  261. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/operations.py +0 -0
  262. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/pages.py +0 -0
  263. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
  264. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/registry.py +0 -0
  265. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/relation_tables.py +0 -0
  266. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/relational.py +0 -0
  267. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
  268. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
  269. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/streaming.py +0 -0
  270. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/backends/timescale.py +0 -0
  271. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/contracts/__init__.py +0 -0
  272. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/contracts/relation_import.py +0 -0
  273. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
  274. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
  275. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/contracts/values.py +0 -0
  276. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/__init__.py +0 -0
  277. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/access_roles.py +0 -0
  278. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
  279. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
  280. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/index_statistics.py +0 -0
  281. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/label_rules.py +0 -0
  282. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/permission_rules.py +0 -0
  283. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/domain/update_constants.py +0 -0
  284. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/__init__.py +0 -0
  285. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
  286. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
  287. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/credential_store.py +0 -0
  288. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
  289. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
  290. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
  291. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
  292. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/run_logs.py +0 -0
  293. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
  294. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
  295. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/security_check_job.py +0 -0
  296. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/integrations/source_validation.py +0 -0
  297. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/__init__.py +0 -0
  298. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/env.py +0 -0
  299. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/script.py.mako +0 -0
  300. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
  301. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
  302. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
  303. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
  304. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
  305. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
  306. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
  307. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
  308. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
  309. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
  310. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
  311. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
  312. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0013_security_check.py +0 -0
  313. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/0014_access_roles.py +0 -0
  314. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
  315. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/__init__.py +0 -0
  316. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
  317. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/bootstrap_timing.py +0 -0
  318. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
  319. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/create_table.py +0 -0
  320. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
  321. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/import_relations.py +0 -0
  322. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/introspect_table.py +0 -0
  323. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/read_time_index.py +0 -0
  324. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/register_catalog.py +0 -0
  325. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/operations/security_check.py +0 -0
  326. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/__init__.py +0 -0
  327. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/cascade.py +0 -0
  328. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/catalog.py +0 -0
  329. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/database.py +0 -0
  330. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/grants.py +0 -0
  331. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/impact.py +0 -0
  332. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/labels.py +0 -0
  333. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/locking.py +0 -0
  334. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/models.py +0 -0
  335. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
  336. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/projections.py +0 -0
  337. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
  338. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
  339. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
  340. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
  341. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/table_queries.py +0 -0
  342. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/table_response.py +0 -0
  343. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/update_graph.py +0 -0
  344. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
  345. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/updates.py +0 -0
  346. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
  347. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
  348. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/__init__.py +0 -0
  349. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/documents.py +0 -0
  350. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/embeddings.py +0 -0
  351. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/index.py +0 -0
  352. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/ranking.py +0 -0
  353. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/text.py +0 -0
  354. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/backend/search/worker.py +0 -0
  355. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/metatables/__init__.py +0 -0
  356. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/metatables/configuration.yaml +0 -0
  357. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/metatables/main.py +0 -0
  358. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/api/request_timing.py +0 -0
  359. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/__init__.py +0 -0
  360. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/admin_install.py +0 -0
  361. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/app.py +0 -0
  362. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/filters.py +0 -0
  363. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/local.py +0 -0
  364. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/migrations.py +0 -0
  365. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/project.py +0 -0
  366. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/cli/skills.py +0 -0
  367. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/compiled_sql/__init__.py +0 -0
  368. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/compiled_sql/mssql.py +0 -0
  369. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/compiled_sql/v1.py +0 -0
  370. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/dtype_codec.py +0 -0
  371. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/endpoint.py +0 -0
  372. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/README.md +0 -0
  373. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/__init__.py +0 -0
  374. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/bounded_reader.py +0 -0
  375. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/data_sources/README.md +0 -0
  376. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/data_sources/mssql.json +0 -0
  377. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/data_sources/mysql.json +0 -0
  378. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/data_sources/postgresql.json +0 -0
  379. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/data_sources/register.py +0 -0
  380. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/external_table.py +0 -0
  381. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/README.md +0 -0
  382. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/__init__.py +0 -0
  383. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/__main__.py +0 -0
  384. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
  385. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/migrations/env.py +0 -0
  386. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
  387. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
  388. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/local_app/tables.py +0 -0
  389. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/query.py +0 -0
  390. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/quickstart.py +0 -0
  391. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/reader.py +0 -0
  392. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/scripts/__init__.py +0 -0
  393. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/scripts/setup_metatables.py +0 -0
  394. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tables.py +0 -0
  395. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/README.md +0 -0
  396. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/__init__.py +0 -0
  397. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/__main__.py +0 -0
  398. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/data/README.md +0 -0
  399. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
  400. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/frames.py +0 -0
  401. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
  402. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/env.py +0 -0
  403. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
  404. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
  405. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
  406. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
  407. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
  408. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
  409. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/operations.py +0 -0
  410. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/tables.py +0 -0
  411. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/tutorial/updaters.py +0 -0
  412. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/examples/updater.py +0 -0
  413. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/future_registry.py +0 -0
  414. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/hashing.py +0 -0
  415. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/instrumentation.py +0 -0
  416. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/local_connection.py +0 -0
  417. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/local_files.py +0 -0
  418. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/local_run_logs.py +0 -0
  419. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/log_contract.py +0 -0
  420. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/__init__.py +0 -0
  421. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/alembic.py +0 -0
  422. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/connection.py +0 -0
  423. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/env.py +0 -0
  424. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/provider.py +0 -0
  425. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/registry.py +0 -0
  426. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/runner.py +0 -0
  427. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/scaffold.py +0 -0
  428. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/sqlite.py +0 -0
  429. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/templates/__init__.py +0 -0
  430. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/templates/env.py.mako +0 -0
  431. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/templates/script.py.mako +0 -0
  432. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/migrations/tls.py +0 -0
  433. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/models.py +0 -0
  434. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/pydantic_metadata.py +0 -0
  435. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/run_logging.py +0 -0
  436. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/runtime.py +0 -0
  437. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/runtime_context.py +0 -0
  438. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/runtime_contract.py +0 -0
  439. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/schema_names.py +0 -0
  440. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/sdk_compat.py +0 -0
  441. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/sqlalchemy_contracts.py +0 -0
  442. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/storage_layout_contract.py +0 -0
  443. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/time_index_table_refs.py +0 -0
  444. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/transfer.py +0 -0
  445. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/transfer_contract.py +0 -0
  446. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/transport.py +0 -0
  447. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/update_configuration_contract.py +0 -0
  448. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/__init__.py +0 -0
  449. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/configuration.py +0 -0
  450. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/dependencies.py +0 -0
  451. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/managers.py +0 -0
  452. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/namespacing.py +0 -0
  453. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/runner.py +0 -0
  454. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/updaters.py +0 -0
  455. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/updaters/utils.py +0 -0
  456. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/src/metatables/upload.py +0 -0
  457. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/analyst/test_agent_surface.py +0 -0
  458. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/analyst/test_api_search.py +0 -0
  459. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/analyst/test_mcp.py +0 -0
  460. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/analyst/test_tools.py +0 -0
  461. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_bootstrap_failure_cause.py +0 -0
  462. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_caller_endpoint.py +0 -0
  463. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_data_source_identity.py +0 -0
  464. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_development_client.py +0 -0
  465. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_hosted_agent.py +0 -0
  466. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_hosted_environment_target.py +0 -0
  467. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_local_mode.py +0 -0
  468. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_platform_fact_cache.py +0 -0
  469. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_request_identity.py +0 -0
  470. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_runtime_bootstrap.py +0 -0
  471. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_runtime_database.py +0 -0
  472. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_runtime_scaffold.py +0 -0
  473. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_runtime_selection.py +0 -0
  474. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_runtime_storage_binding.py +0 -0
  475. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_source_passwords.py +0 -0
  476. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/auth/test_team_membership.py +0 -0
  477. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_catalog_foundation.py +0 -0
  478. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_contract_projection.py +0 -0
  479. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_database_config.py +0 -0
  480. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_index_statistics.py +0 -0
  481. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_migration.py +0 -0
  482. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/catalog/test_schema_validation.py +0 -0
  483. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/conftest.py +0 -0
  484. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/capabilities.json +0 -0
  485. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/client_signatures.json +0 -0
  486. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/database_operations.json +0 -0
  487. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_bounded_transfer.py +0 -0
  488. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_compiler_runtime_source.py +0 -0
  489. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_relation_batching.py +0 -0
  490. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_relation_import.py +0 -0
  491. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_runtime_contract_compat.py +0 -0
  492. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_storage_layouts.py +0 -0
  493. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/contracts/test_table_contracts.py +0 -0
  494. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/Dockerfile +0 -0
  495. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/Dockerfile.dockerignore +0 -0
  496. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/__init__.py +0 -0
  497. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/conftest.py +0 -0
  498. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/provider/__init__.py +0 -0
  499. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/provider/env.py +0 -0
  500. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
  501. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_api_contract.py +0 -0
  502. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_application_migration.py +0 -0
  503. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_bootstrap_recovery.py +0 -0
  504. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_catalog_contract.py +0 -0
  505. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_credential_catalog.py +0 -0
  506. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_physical_contract.py +0 -0
  507. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_relation_import.py +0 -0
  508. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_runtime_bootstrap.py +0 -0
  509. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_sql_security.py +0 -0
  510. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_backend/test_update_client.py +0 -0
  511. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_operations/test_physical_operations.py +0 -0
  512. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_operations/test_postgresql_operations.py +0 -0
  513. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/database_operations/test_runtime_and_temporal.py +0 -0
  514. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/documentation/test_project_checks.py +0 -0
  515. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_admin_installation.py +0 -0
  516. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_api_endpoint.py +0 -0
  517. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_application_owned_migrations.py +0 -0
  518. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_catalog_outage.py +0 -0
  519. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_api_contract.py +0 -0
  520. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_api_coverage.py +0 -0
  521. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_migration_scaffold.py +0 -0
  522. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_migration_tls.py +0 -0
  523. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_package.py +0 -0
  524. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_signatures.py +0 -0
  525. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_client_value_behaviors.py +0 -0
  526. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_data_source_registry.py +0 -0
  527. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_local_actor_client_api.py +0 -0
  528. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_local_cli_workflow.py +0 -0
  529. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_local_client_selection.py +0 -0
  530. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_managed_finalize_client_api.py +0 -0
  531. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_managed_finalize_unchanged.py +0 -0
  532. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_migration_metadata_and_downgrade.py +0 -0
  533. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_namespaces_admin_http.py +0 -0
  534. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_public_imports.py +0 -0
  535. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_remaining_client_routes.py +0 -0
  536. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_run_graphs.py +0 -0
  537. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_run_logs.py +0 -0
  538. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_runtime_upgrade.py +0 -0
  539. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_sdk_local_startup.py +0 -0
  540. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_sqlite_runtime.py +0 -0
  541. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_delete_client_api.py +0 -0
  542. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_filter_client_api.py +0 -0
  543. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_introspection_client_api.py +0 -0
  544. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_patch_client_api.py +0 -0
  545. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_search_api.py +0 -0
  546. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_search_document_api.py +0 -0
  547. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_search_scale.py +0 -0
  548. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_stats_api.py +0 -0
  549. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_update_pipeline.py +0 -0
  550. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_table_updates_http.py +0 -0
  551. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_time_index_delete_client_api.py +0 -0
  552. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_time_index_reads_client_api.py +0 -0
  553. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_timescale_policies_client_api.py +0 -0
  554. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_update_batch_client_api.py +0 -0
  555. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
  556. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
  557. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
  558. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/e2e/test_update_registration_client_api.py +0 -0
  559. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/examples/test_documented_examples.py +0 -0
  560. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/examples/test_postgresql_examples.py +0 -0
  561. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/examples/test_setup_launch.py +0 -0
  562. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/examples/test_tutorial.py +0 -0
  563. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_batch_introspection.py +0 -0
  564. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_connection_reuse.py +0 -0
  565. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_credential_store.py +0 -0
  566. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_data_source_rules.py +0 -0
  567. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_local_data_sources.py +0 -0
  568. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_local_run_logs.py +0 -0
  569. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_postgresql_connection.py +0 -0
  570. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_postgresql_sql.py +0 -0
  571. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_postgresql_tables.py +0 -0
  572. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
  573. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_request_timing.py +0 -0
  574. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_serving_policy.py +0 -0
  575. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_source_validation.py +0 -0
  576. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/integrations/test_sqlite_operations.py +0 -0
  577. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/labels/test_labels.py +0 -0
  578. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_bootstrap_lock.py +0 -0
  579. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_create_table_operation.py +0 -0
  580. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_create_table_postgres.py +0 -0
  581. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_physical_operation_journal.py +0 -0
  582. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_register_catalog.py +0 -0
  583. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_search_documents.py +0 -0
  584. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/operations/test_timescale_policies.py +0 -0
  585. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/packaging/test_client_skills.py +0 -0
  586. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/packaging/test_dev_release_version.py +0 -0
  587. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/packaging/test_distribution_sources.py +0 -0
  588. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/packaging/test_editable_build.py +0 -0
  589. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/packaging/test_installed_distribution.py +0 -0
  590. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_access_map.py +0 -0
  591. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_deployment_security.py +0 -0
  592. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_governed_sql_scope.py +0 -0
  593. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_incremental_security.py +0 -0
  594. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_local_actor_membership.py +0 -0
  595. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_migration_boundary.py +0 -0
  596. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_namespace_grants.py +0 -0
  597. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_security_api.py +0 -0
  598. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_security_check.py +0 -0
  599. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_table_body_filter.py +0 -0
  600. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_table_grants.py +0 -0
  601. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_table_queries.py +0 -0
  602. {mainsequence_metatable-0.1.46.dev73 → mainsequence_metatable-0.1.47}/tests/permissions/test_workload_principals.py +0 -0
@@ -58,7 +58,7 @@ contract. Preserve the user's existing authorization and scope.
58
58
 
59
59
  A UID is catalog identity. An optional identifier is unique in the connected catalog.
60
60
  A physical binding is DataSource + schema + table name. A catalog
61
- namespace groups resources and grants; it is not a SQL schema. Contract hashes
61
+ namespace groups tables for access: a role on it applies to every table in it. It is not a SQL schema. Contract hashes
62
62
  are fingerprints, not table identity. See `docs/concepts/identity-and-scope.md`.
63
63
 
64
64
  ## SQLAlchemy contract rules
@@ -46,19 +46,36 @@ 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 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
49
+ 3. **Give the Job access.** Any person admitted to the Environment sets it up; no
50
+ Organization admin is needed. Follow "Give the Job access" in
51
+ `docs/client/deploy-application-migrations.md`, in this order, in each
52
+ Environment:
53
+ 1. Before the first push, create each namespace the provider creates tables in:
54
+ **Create namespace** in that Environment's Admin, or `Namespace.create(name)`
55
+ from the person's own session connected to it. The creator becomes `owner`.
56
+ 2. Push the workflow file. It creates the Job's and the other resources' workload
57
+ Users before any step runs, so the first migration may stop with
58
+ `namespace_access_required`.
59
+ 3. As owner, grant the migration Job's workload User `editor`, and `data_writer` to
60
+ resources that only read and write rows, in the namespace's Access panel (find
61
+ a workload by its Job or release name) or with `grant_role` and its
62
+ `workload_user_uid`. A Team the owner belongs to, holding the roles with the
63
+ workloads as members, is optional; it saves granting again when a Job is
64
+ recreated.
65
+ 4. Re-run the migration Job.
66
+
67
+ These are the person's actions, made in MetaTables, not in the repository. Tell
68
+ the user the steps; with their explicit go-ahead you may run `Namespace.create`
69
+ and `grant_role` from their session against the target Environment. Never put them
70
+ in the migration Job: workloads are refused. A namespace created before ADR 0024
71
+ has no owner until an Organization admin grants one. Recommend one namespace per
55
72
  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.
73
+ `docs/security/ownership-and-sharing.md`).
58
74
  4. **Deploy.** The application's `.mainsequence/workflows/` file declares a
59
75
  migration Job that calls `upgrade_application` for each provider, in
60
76
  dependency order, from the candidate image. The Job and every resource that
61
- uses MetaTables declare `access.branches: [{repository: MetaTables, level: view}]`.
77
+ uses MetaTables declare `access.branches: [{repository: MetaTables, policy: reader}]`
78
+ (workflow API `3.0.0`; the platform refuses `2.3.0` files and `level:` entries).
62
79
  Every deployed resource that reads or writes the tables (FastAPI,
63
80
  `harness_agent` and others) has a deploy step with `needs: [migrate]`. A failed
64
81
  migration blocks the rollout.
@@ -252,11 +269,12 @@ Read `docs/operations/recovery-and-observability.md`.
252
269
  module (see [Provider placement](#provider-placement)), preserving its provider
253
270
  identity and applied revision history. Do not edit files in `site-packages`.
254
271
  - 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.
272
+ grant the Job `editor`, as in step 3. `namespace_access_required` is expected on a
273
+ new application's first run: an owner the error lists grants the `caller_user_uid`
274
+ `editor` on the namespace, or adds it to a Team that holds it, then the Job is
275
+ re-run. With `namespace_required`, set the table's namespace. With
276
+ `table_not_editable`, an owner of the table or its namespace grants `editor`. Do
277
+ not change code or physical names to get around it.
260
278
  - If reservation fails otherwise, compare provider scope and physical identities
261
279
  before changing code. Do not create a second catalog row for the same table.
262
280
  - If Alembic succeeds but finalization fails, physical DDL may already be
@@ -51,6 +51,14 @@ The optional `hash_namespace` separates producer identities, **not output tables
51
51
  A test namespace alone does not protect shared physical rows. Use a disposable
52
52
  output binding or explicitly authorized row scope for mutation tests.
53
53
 
54
+ A deployed producer runs as its Job's workload User. It needs `editor` on its output
55
+ tables, which lets it operate updaters and write rows, and `data_viewer` on its
56
+ inputs. Grant these on the namespaces, directly or through a Team, the same way and
57
+ in the same order as the migration Job's `editor` (step 3 of the
58
+ [migrations skill](../metatables-migrations/SKILL.md)); no Organization admin is
59
+ needed. Output tables belong to the migration provider and its namespace: a workload
60
+ never creates a table outside a namespace.
61
+
54
62
  ## Configuration and dependencies
55
63
 
56
64
  Use `TimeIndexTableUpdateConfig` with described `Field` values and realistic
@@ -1,4 +1,4 @@
1
- api_version: "2.3.0"
1
+ api_version: "3.0.0"
2
2
  name: metatables-api
3
3
  resources:
4
4
  - key: metatables
@@ -27,14 +27,14 @@ resources:
27
27
  access:
28
28
  secrets:
29
29
  - name: METATABLES_RUNTIME_DATABASE
30
- level: view
30
+ policy: value_reader
31
31
  # /runtime-context/ tells applications this branch's Analyst (ADR 0019).
32
32
  resources:
33
33
  - key: metatables-analyst-agent
34
- level: view
34
+ policy: viewer
35
35
  # The Admin's "Run security check now" starts the daily check (ADR 0023).
36
36
  - key: check-security
37
- level: edit
37
+ policy: editor
38
38
 
39
39
  - key: metatables-analyst-agent
40
40
  kind: harness_agent
@@ -61,7 +61,7 @@ resources:
61
61
  # The Analyst reads only as the person it serves (ADR 0020); it holds no grants.
62
62
  acts_for_requester: true
63
63
  access:
64
- branch: view
64
+ branch: reader
65
65
 
66
66
  - key: migrate-system
67
67
  kind: job
@@ -77,7 +77,7 @@ resources:
77
77
  access:
78
78
  secrets:
79
79
  - name: METATABLES_RUNTIME_DATABASE
80
- level: view
80
+ policy: value_reader
81
81
 
82
82
  # The full database security check, outside the deployment (ADR 0023). Not a
83
83
  # workflow step: every push activates its image, and it skips while the
@@ -101,7 +101,7 @@ resources:
101
101
  access:
102
102
  secrets:
103
103
  - name: METATABLES_RUNTIME_DATABASE
104
- level: view
104
+ policy: value_reader
105
105
 
106
106
  execution:
107
107
  steps:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.46.dev73
3
+ Version: 0.1.47
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
@@ -2,10 +2,12 @@
2
2
 
3
3
  Status: Accepted.
4
4
 
5
- Implementation status: implemented on development. Non-container tests pass; the
6
- container database suites and the MetaTables Admin's Access panels are pending. The
7
- user guides are [Ownership, roles, and inheritance](../../security/ownership-and-sharing.md)
8
- and the [actions and roles](../../security/permissions.md).
5
+ Implementation status: implemented on development, in the API and in the MetaTables
6
+ Admin's Access panels. Non-container tests pass. The container matrix passes on SQLite;
7
+ on PostgreSQL, TimescaleDB, SQL Server and MySQL one runtime-bootstrap test fails, as it
8
+ did before this change. Hosted deployment is pending. The user guides are
9
+ [Ownership, roles, and inheritance](../../security/ownership-and-sharing.md) and the
10
+ [actions and roles](../../security/permissions.md).
9
11
 
10
12
  Owner: MetaTables API, with client and Admin consumers.
11
13
 
@@ -41,7 +41,7 @@ decisions belong in the SDK repository and are linked as dependencies.
41
41
  | [0018: Table search by meaning and columns](api/0018-table-search.md) | Accepted; implemented; container engine verification pending | One route ranks visible tables by BM25 keywords and a local English embedding model over a per-table document that includes columns, merges the rankings and returns `matched_columns`; the index refreshes on every metadata write. |
42
42
  | [0022: Concurrent requests per pod and reused database connections](api/0022-concurrent-requests-and-connection-reuse.md) | Accepted; implemented on development; deployment and load verification pending | One number per pod sizes its threads, data-request admission, catalog pool and login-role connections; connections are reused only by the role that opened them, and maximum pods × 3T stays within the database's connection limit. |
43
43
  | [0023: A daily security check instead of a sweep in every deployment](api/0023-daily-security-check.md) | Accepted; implemented on development; deployment and first scheduled run pending | A deployment sets up only what the new release needs; a daily Job, which administrators can also start, repairs whatever differs from the plan without pausing caller SQL and records its outcome. |
44
- | [0024: Access roles for namespaces and tables](api/0024-namespace-and-table-access-roles.md) | Accepted; implemented on development; container suites and Admin pending | Actions and roles (`metadata_viewer`, `data_viewer`, `data_writer`, `editor`, `owner`) replace Reader/Writer; `namespaces.create` and `tables.create` are checked on the parent, the creator of a namespace owns it, admins hold every action, workloads use access but never manage it, and an ordinary user deploys a new application without an admin. |
44
+ | [0024: Access roles for namespaces and tables](api/0024-namespace-and-table-access-roles.md) | Accepted; implemented on development (API and Admin); hosted deployment pending | Actions and roles (`metadata_viewer`, `data_viewer`, `data_writer`, `editor`, `owner`) replace Reader/Writer; `namespaces.create` and `tables.create` are checked on the parent, the creator of a namespace owns it, admins hold every action, workloads use access but never manage it, and an ordinary user deploys a new application without an admin. |
45
45
 
46
46
  ## Agents
47
47
 
@@ -15,9 +15,9 @@ before anything that uses the tables rolls out. See
15
15
  [Local storage](local-storage.md).
16
16
  2. **Commit the revision with the code that needs it.** Applied revisions are
17
17
  immutable; every later schema change is a new revision.
18
- 3. **Give the Job access.** Before the first hosted migration in each Environment,
19
- create the application's namespace and grant the Job `editor` on it
20
- ([below](#give-the-job-access)). No Organization admin is needed.
18
+ 3. **Give the Job access.** Before the first push to each Environment, create the
19
+ application's namespace; once the workload Users exist, grant them their roles
20
+ ([below](#give-the-job-access)). Any person can; no Organization admin is needed.
21
21
  4. **Deploy.** The application's workflow runs its migration Job from the
22
22
  candidate image, then deploys the resources that read or write the tables.
23
23
 
@@ -73,7 +73,7 @@ for provider in ("ledger.migrations:migration",):
73
73
  Gate the deployments on it in `.mainsequence/workflows/<application>.yaml`:
74
74
 
75
75
  ```yaml
76
- api_version: "2.3.0"
76
+ api_version: "3.0.0"
77
77
  name: ledger
78
78
  resources:
79
79
  - key: ledger-api
@@ -111,38 +111,59 @@ against the branch's workflow template before committing it.
111
111
 
112
112
  ## Give the Job access
113
113
 
114
- The Job runs as its own workload User. Workload Users never create namespaces or own
115
- tables, so a person sets up the application's namespace once per Environment
116
- ([ADR 0024](../adr/api/0024-namespace-and-table-access-roles.md)):
117
-
118
- 1. **Create the namespace.** Any person can, in that Environment's MetaTables (the
119
- Admin's namespace page, or `Namespace.create("ledger")` from Python). The creator
120
- becomes its `owner`.
121
- 2. **Grant the workloads their roles.** As owner, grant `editor` to the migration
122
- Job's workload User and `data_writer` to resources that only read and write rows,
123
- such as the FastAPI release. Each resource's `workload_user_uid` names it, and its
124
- workload User exists as soon as the workflow file is applied.
125
- 3. **Optionally use a Team.** Instead of the workload Users, grant the roles to a
126
- Team you belong to and add the workload Users to it. A recreated Job then needs
127
- only Team membership, not a new grant. Teams are Organization-wide and a workload
128
- reaches only its own Environment's MetaTables, so one Team can hold the roles in
129
- every Environment.
114
+ The Job runs as its own workload User. Workloads never create namespaces, never grant
115
+ roles, and create tables only inside a namespace where they hold `editor`
116
+ ([ADR 0024](../adr/api/0024-namespace-and-table-access-roles.md)). So a person sets up
117
+ the application's access, once per Environment, and no Organization admin is needed.
118
+ Do it in this order:
119
+
120
+ 1. **Before the first push, create the namespace.** Any person admitted to the
121
+ Environment can, in that Environment's MetaTables: with **Create namespace** on the
122
+ deployed Admin's Namespaces page, or with `Namespace.create("ledger")` from your own
123
+ session connected to that Environment
124
+ ([installation and connection](installation-and-connection.md)). You become its
125
+ `owner`. A name that is already taken is refused with its owners, when you can see
126
+ them; ask one of them for access instead.
127
+ 2. **Push the workflow file.** Applying it creates the Job, the FastAPI release and
128
+ their workload Users before any step runs. The first migration can run before
129
+ step 3 and stop with `namespace_access_required`; that is expected.
130
+ 3. **Grant the workloads their roles.** On the namespace's **Access** panel, find each
131
+ workload by its Job or release name and grant the migration Job `editor` and every
132
+ resource that only reads and writes rows, such as the FastAPI release, `data_writer`.
133
+ From Python, pass each resource's `workload_user_uid`, which the Main Sequence SDK
134
+ returns on the Job and the ResourceRelease.
135
+ 4. **Re-run the migration Job** if step 2's run was refused, or deploy again. It creates
136
+ the application's tables in the namespace; the tables need no grants of their own.
137
+
138
+ Repeat steps 1, 3 and 4 in every Environment, each done by someone the platform admits
139
+ to that Environment: each Environment has its own MetaTables and its own workload Users.
130
140
 
131
141
  ```python
132
142
  from metatables import Namespace
133
143
 
134
- ledger = Namespace.create("ledger")
135
- ledger.grant_role(migration_job_workload_user_uid, "editor")
144
+ ledger = Namespace.create("ledger") # step 1: you become its owner
145
+ ledger.grant_role(migration_job_workload_user_uid, "editor") # step 3
136
146
  ledger.grant_role(api_workload_user_uid, "data_writer")
137
147
  ```
138
148
 
139
- Every table the Job creates in the namespace is covered by these roles and gets no
140
- binding of its own. One namespace per application is the recommended layout, not a
141
- rule; see
149
+ **Optionally, a Team.** Grant the roles to a Team you belong to instead of to the
150
+ workload Users, and add the workload Users to that Team: any person can create a Team
151
+ and, as its owner, add workloads they can view. A recreated Job or release then needs
152
+ only Team membership, not a new grant. One Team can hold the roles in every Environment:
153
+ Teams are Organization-wide, and a workload reaches only its own Environment's
154
+ MetaTables. People in the Team receive the same roles, so leave it once the workloads
155
+ are in if you should not hold them yourself; you stay the namespace's owner.
156
+
157
+ **Namespaces created before roles.** A namespace from before ADR 0024 has no owner: its
158
+ former Writers hold `editor`. An Organization admin grants someone `owner` on it once;
159
+ from then on that owner manages it.
160
+
161
+ One namespace per application is the recommended layout, not a rule; see
142
162
  [Namespaces and applications](../security/ownership-and-sharing.md#namespaces-and-applications).
143
163
 
144
- The Job also needs platform `view` on the Environment's `metatables` release and
145
- its branch to discover the API; declare it on the Job:
164
+ The Job also needs the platform's `reader` policy on the MetaTables branch, which
165
+ gives it `viewer` on the branch's `metatables` release, to discover the API. Declare it
166
+ on the Job (workflow API `3.0.0`):
146
167
 
147
168
  ```yaml
148
169
  - key: migrate-ledger
@@ -153,7 +174,7 @@ its branch to discover the API; declare it on the Job:
153
174
  access:
154
175
  branches:
155
176
  - repository: MetaTables
156
- level: view
177
+ policy: reader
157
178
  ```
158
179
 
159
180
  `upgrade_application()` waits up to five minutes for the API to wake or finish
@@ -167,19 +188,19 @@ the database.
167
188
 
168
189
  ### When registration is refused
169
190
 
170
- - **`namespace_not_found`**: the namespace does not exist in this Environment.
171
- Create it (step 1) and grant the role (step 2).
172
- - **`namespace_access_required`**: the namespace exists, but the `caller_user_uid`
173
- the error names lacks `tables.create` on it. The error lists the namespace's owners
174
- when the caller can see the namespace; one of them grants `editor` (step 2).
191
+ - **`namespace_not_found`**: the namespace does not exist in this Environment. Create
192
+ it (step 1) and grant the roles (step 3).
193
+ - **`namespace_access_required`**: the namespace exists, but the `caller_user_uid` the
194
+ error names lacks `tables.create` on it. The error lists the namespace's owners when
195
+ the caller can see the namespace; one of them grants it `editor` (step 3). Expected
196
+ on a new application's first run.
175
197
  - **`namespace_required`**: a workload tried to create a table outside any namespace.
176
198
  Set the table's namespace.
177
199
  - **`table_not_editable`**: the table already exists and the caller lacks
178
- `tables.update` on it. Ask an owner of the table or its namespace to grant `editor`.
200
+ `tables.update` on it. An owner of the table or its namespace grants `editor`.
179
201
 
180
- The first deployment of a new application can run its migration before step 2: the
181
- workload Users exist only once the workflow file is applied. Re-run the Job after
182
- granting the role.
202
+ After the grant, re-run the Job (step 4). Do not run the Job as an Organization admin
203
+ or change physical names to get around a refusal.
183
204
 
184
205
  ## What the Job guarantees
185
206
 
@@ -23,7 +23,7 @@ at least two runtime replicas; see [pods and connections](#size-pods-and-databas
23
23
  The platform applies these settings on the next successful deployment.
24
24
 
25
25
  The Python package bundles this same workflow for [client discovery](../client/installation-and-connection.md).
26
- Workflow API `2.3.0` derives a FastAPI release name from the directory containing
26
+ Workflow API `3.0.0` derives a FastAPI release name from the directory containing
27
27
  `source_path`, so the declared directory is also the client's exact lookup name.
28
28
  Do not maintain a separate name constant in consuming projects. After changing
29
29
  that source path, publish/install a matching package build. Clients select the
@@ -169,12 +169,14 @@ tables without a namespace.
169
169
 
170
170
  ### Recommended: one namespace per application
171
171
 
172
- 1. A person creates the application's namespace, for example `crm`, and becomes its
173
- owner.
174
- 2. They grant `editor` to the migration Job's workload User and `data_writer` to the
175
- workload Users that only read and write rows, or grant these roles to Teams they
176
- belong to that contain those workloads.
177
- 3. The migration Job creates and migrates the application's tables in `crm`.
172
+ 1. Before the first push, a person creates the application's namespace, for example
173
+ `crm`, and becomes its owner.
174
+ 2. Pushing the workflow file creates the workload Users. The owner grants `editor` to
175
+ the migration Job's workload User and `data_writer` to the workload Users that only
176
+ read and write rows, or grants these roles to a Team they belong to that contains
177
+ those workloads.
178
+ 3. The migration Job creates and migrates the application's tables in `crm`. If its
179
+ first run came before step 2, re-run it.
178
180
 
179
181
  This needs no Organization admin. A Team is optional: it saves granting again when a
180
182
  workload User changes. Teams are Organization-wide and a workload reaches only its
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence-metatable"
7
- version = "0.1.46.dev73"
7
+ version = "0.1.47"
8
8
  description = "Main Sequence MetaTables Python client and standalone API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence-metatable
3
- Version: 0.1.46.dev73
3
+ Version: 0.1.47
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
@@ -854,7 +854,7 @@ mcp = [
854
854
 
855
855
  [[package]]
856
856
  name = "mainsequence-metatable"
857
- version = "0.1.46"
857
+ version = "0.1.47"
858
858
  source = { editable = "." }
859
859
  dependencies = [
860
860
  { name = "alembic" },