ms-markets 2.2.10.dev35__tar.gz → 2.2.11.dev36__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 (737) hide show
  1. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/platform/metatable_migrations/SKILL.md +70 -16
  2. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/CHANGELOG.md +48 -0
  3. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/PKG-INFO +7 -7
  4. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/README.md +4 -4
  5. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/index.md +28 -16
  6. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/getting-started.md +2 -2
  7. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/migrations/index.md +9 -7
  8. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/metatable_migrations.md +2 -2
  9. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/releasing.md +68 -61
  10. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/index.md +1 -1
  11. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/metatable_migration_lifecycle.py +1 -1
  12. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/pyproject.toml +3 -3
  13. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/openfigi.py +23 -3
  14. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/actors.py +5 -6
  15. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/catalog.py +5 -6
  16. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/contracts.py +7 -1
  17. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/conftest.py +0 -1
  18. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/test_openfigi.py +23 -0
  19. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_deployment_entrypoint.py +4 -2
  20. ms_markets-2.2.11.dev36/tests/msm/fastapi/v1/test_request_identity.py +97 -0
  21. ms_markets-2.2.11.dev36/tests/msm/indices/test_index_actor.py +37 -0
  22. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_lifecycle_services.py +33 -5
  23. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_package_metadata.py +14 -2
  24. ms_markets-2.2.10.dev35/tests/msm/fastapi/v1/test_request_identity.py +0 -50
  25. ms_markets-2.2.10.dev35/tests/msm/maintenance/test_bootstrap_metatables_access.py +0 -65
  26. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/accounts/account_workflow/SKILL.md +0 -0
  27. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/accounts/valuation_resolver/SKILL.md +0 -0
  28. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/assets/asset_indexed_data_nodes/SKILL.md +0 -0
  29. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/assets/asset_model_extension/SKILL.md +0 -0
  30. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/indices/index_workflow/SKILL.md +0 -0
  31. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/platform/bootstrap_registration/SKILL.md +0 -0
  32. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/portfolios/portfolio_workflow/SKILL.md +0 -0
  33. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/portfolios/portfolio_workflow/references/position_accounting.md +0 -0
  34. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/pricing/fixed_income_curve_building/SKILL.md +0 -0
  35. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/pricing/general_pricing/SKILL.md +0 -0
  36. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.gitignore +0 -0
  37. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/LICENSE +0 -0
  38. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0005-pricing-package-refactor.md +0 -0
  39. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0006-asset-package-boundary.md +0 -0
  40. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0008-metatable-table-and-api-model-split.md +0 -0
  41. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0019-msm-portfolios-package-boundary.md +0 -0
  42. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0022-alembic-metatable-migration-alignment.md +0 -0
  43. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0023-deterministic-alembic-naming.md +0 -0
  44. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0024-namespace-scoped-alembic-version-locations.md +0 -0
  45. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0025-direct-metatable-runtime-binding.md +0 -0
  46. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0026-explicit-pricing-market-data-sets.md +0 -0
  47. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0027-account-target-position-portfolio-exposure.md +0 -0
  48. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0028-core-calendar-reference-data.md +0 -0
  49. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0029-account-holdings-virtual-fund-allocation-policy.md +0 -0
  50. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0030-explicit-portfolio-price-source-dependency.md +0 -0
  51. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0031-generic-portfolio-valuation-source.md +0 -0
  52. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0032-portfolio-group-many-to-many.md +0 -0
  53. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0033-pricing-valuation-position-boundary.md +0 -0
  54. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0034-command-center-asset-monitor-helpers.md +0 -0
  55. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0035-pricing-curve-identity-and-market-data-curve-bindings.md +0 -0
  56. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0036-prepared-pricing-valuation-context.md +0 -0
  57. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0037-index-formula-and-custom-calculation-framework.md +0 -0
  58. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0038-index-user-api-and-fastapi-exploration.md +0 -0
  59. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0039-sdk-8-hard-cut-and-1-0-package-contract.md +0 -0
  60. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0040-portfolio-temporal-ownership.md +0 -0
  61. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0041-installable-provider-http-toolkit.md +0 -0
  62. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0042-position-cash-flow-portfolio-accounting.md +0 -0
  63. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md +0 -0
  64. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0044-namespaced-migration-provider-package.md +0 -0
  65. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0045-squashed-initial-schema-and-namespaced-packages.md +0 -0
  66. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0046-legacy-0017-schema-bridge.md +0 -0
  67. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/README.md +0 -0
  68. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md +0 -0
  69. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0002-command-center-adapter-discovery.md +0 -0
  70. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0003-fixed-income-pricer-api.md +0 -0
  71. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0004-delete-impact-contract.md +0 -0
  72. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/changelog.md +0 -0
  73. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/concepts.md +0 -0
  74. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/accounts.md +0 -0
  75. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/assets.md +0 -0
  76. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/calendars.md +0 -0
  77. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/command_center_bulk_actions.md +0 -0
  78. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/fixed_income_pricer.md +0 -0
  79. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/indexes.md +0 -0
  80. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio.md +0 -0
  81. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio_groups.md +0 -0
  82. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio_signal_metadata.md +0 -0
  83. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/pricing_curves.md +0 -0
  84. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/pricing_market_data.md +0 -0
  85. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/provider_adapter_toolkit.md +0 -0
  86. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/resource_contracts.md +0 -0
  87. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/settings.md +0 -0
  88. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/virtualfund.md +0 -0
  89. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_black_bg.png +0 -0
  90. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_alternate_lockup_transparent.png +0 -0
  91. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_black_bg.png +0 -0
  92. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_icon_emblem_transparent.png +0 -0
  93. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_black_bg.png +0 -0
  94. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_market_mark_only_transparent.png +0 -0
  95. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_black_bg.png +0 -0
  96. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/img/main-sequence-markets/main_sequence_markets_primary_wordmark_transparent.png +0 -0
  97. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/index.md +0 -0
  98. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/accounts/index.md +0 -0
  99. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/accounts/virtual_funds.md +0 -0
  100. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/asset_indexed_data_nodes.md +0 -0
  101. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/bonds.md +0 -0
  102. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/currency.md +0 -0
  103. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/index.md +0 -0
  104. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/calendars/index.md +0 -0
  105. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/client/index.md +0 -0
  106. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/derivatives/futures.md +0 -0
  107. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/derivatives/index.md +0 -0
  108. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/execution/index.md +0 -0
  109. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/index.md +0 -0
  110. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/indices/formula_indexes.md +0 -0
  111. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/indices/index.md +0 -0
  112. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/models/index.md +0 -0
  113. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/index.md +0 -0
  114. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/meta_table_registration.md +0 -0
  115. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/repositories/index.md +0 -0
  116. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/services/index.md +0 -0
  117. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/index.md +0 -0
  118. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/portfolios/accounting.md +0 -0
  119. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/portfolios/index.md +0 -0
  120. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/analytics.md +0 -0
  121. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/curves.md +0 -0
  122. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/fixings.md +0 -0
  123. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/index.md +0 -0
  124. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/instruments.md +0 -0
  125. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/market_data_sets.md +0 -0
  126. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/runtime_resolution.md +0 -0
  127. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/curves.md +0 -0
  128. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/index.md +0 -0
  129. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/valuation.md +0 -0
  130. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/benchmark_curve_resolution_plan.md +0 -0
  131. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/bond_helper_curve_reconstruction_upstream_plan.md +0 -0
  132. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/cross_currency_helper_curve_reconstruction_upstream_plan.md +0 -0
  133. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/generic_curve_reconstruction_upstream_plan.md +0 -0
  134. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/generic_valuation_scenario_workflow_plan.md +0 -0
  135. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/index_formula_and_custom_calculation_plan.md +0 -0
  136. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/python_3_13_mainsequence_5_upgrade_plan.md +0 -0
  137. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/reusable_valuation_portfolio_scenario_analytics_plan.md +0 -0
  138. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/reference/index.md +0 -0
  139. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/reference/indices.md +0 -0
  140. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/stylesheets/custom.css +0 -0
  141. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/01-assets.md +0 -0
  142. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/02-calendars.md +0 -0
  143. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/03-accounts.md +0 -0
  144. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/04-portfolios.md +0 -0
  145. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/05-pricing.md +0 -0
  146. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/06-index-formulas.md +0 -0
  147. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/__init__.py +0 -0
  148. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/__init__.py +0 -0
  149. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/__init__.py +0 -0
  150. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/account_portfolio_full_workflow.py +0 -0
  151. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/account_virtual_fund_allocation_example.py +0 -0
  152. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/utils/__init__.py +0 -0
  153. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/utils/reference_data.py +0 -0
  154. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/__init__.py +0 -0
  155. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_category_workflow.py +0 -0
  156. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_crud_workflow.py +0 -0
  157. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_type_constants.py +0 -0
  158. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/bond_workflow.py +0 -0
  159. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/currency_spot_workflow.py +0 -0
  160. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/__init__.py +0 -0
  161. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/crypto_future_without_figi.py +0 -0
  162. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/index_future_from_openfigi.py +0 -0
  163. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/us_treasury_bond_workflow.py +0 -0
  164. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/utils/__init__.py +0 -0
  165. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/utils/reference_data.py +0 -0
  166. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/calendars/__init__.py +0 -0
  167. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/calendars/calendar_materialization_workflow.py +0 -0
  168. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/http_provider_contracts.py +0 -0
  169. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/__init__.py +0 -0
  170. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/delta_hedged_option_index.py +0 -0
  171. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/extension_owned_index_storage.py +0 -0
  172. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/formula_index.py +0 -0
  173. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/index_values_frequency_migration.py +0 -0
  174. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/plain_index_values.py +0 -0
  175. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/__init__.py +0 -0
  176. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/bootstrap.py +0 -0
  177. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/custom_asset_details_extension.py +0 -0
  178. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/inspect_markets_metatable_models.py +0 -0
  179. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/workflows/__init__.py +0 -0
  180. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/workflows/asset_category_workflow.py +0 -0
  181. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_cashflows_and_fx_valuation_example.py +0 -0
  182. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_custom_cashflow_model_example.py +0 -0
  183. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_custom_valuation_column_example.py +0 -0
  184. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_config.py +0 -0
  185. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_dynamic_migration.py +0 -0
  186. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_example.py +0 -0
  187. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_prepare_schema.py +0 -0
  188. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_run.py +0 -0
  189. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_groups_example.py +0 -0
  190. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_midnight_timestamp_repair.py +0 -0
  191. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_perpetual_funding_example.py +0 -0
  192. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_read_services.py +0 -0
  193. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_trailing_adv_participation_example.py +0 -0
  194. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_trailing_adv_participation_preview.py +0 -0
  195. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/__init__.py +0 -0
  196. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/README.md +0 -0
  197. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/__init__.py +0 -0
  198. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/main.py +0 -0
  199. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_terms.py +0 -0
  200. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/curve_reconstruction.py +0 -0
  201. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/curve_scenario.py +0 -0
  202. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/fixed_income_spread_analytics.py +0 -0
  203. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/import_pricing_runtime.py +0 -0
  204. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/instrument_identity_boundary.py +0 -0
  205. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/pricing_registry_rows.py +0 -0
  206. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/pricing_valuation_context.py +0 -0
  207. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/resolved_curve_scenario.py +0 -0
  208. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/utils/__init__.py +0 -0
  209. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/utils/mock_market_data.py +0 -0
  210. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/valuation_inputs.py +0 -0
  211. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/valuation_scenario_workflow.py +0 -0
  212. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/mkdocs.yml +0 -0
  213. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/__init__.py +0 -0
  214. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/__init__.py +0 -0
  215. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/__init__.py +0 -0
  216. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/contracts.py +0 -0
  217. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/engine.py +0 -0
  218. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/spreads.py +0 -0
  219. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/__init__.py +0 -0
  220. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/accounts.py +0 -0
  221. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/assets.py +0 -0
  222. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/base.py +0 -0
  223. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/__init__.py +0 -0
  224. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/_validation.py +0 -0
  225. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/core.py +0 -0
  226. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/dates.py +0 -0
  227. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/events.py +0 -0
  228. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/sessions.py +0 -0
  229. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/derivatives.py +0 -0
  230. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/execution.py +0 -0
  231. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/formula_indices.py +0 -0
  232. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/__init__.py +0 -0
  233. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/_base.py +0 -0
  234. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/bulk_actions.py +0 -0
  235. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/collections.py +0 -0
  236. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/discovery.py +0 -0
  237. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/errors.py +0 -0
  238. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/operations.py +0 -0
  239. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/table_impact.py +0 -0
  240. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/tabular.py +0 -0
  241. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/indices.py +0 -0
  242. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/issuers.py +0 -0
  243. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/portfolios.py +0 -0
  244. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/virtual_funds.py +0 -0
  245. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/base.py +0 -0
  246. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/bootstrap.py +0 -0
  247. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/constants.py +0 -0
  248. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/__init__.py +0 -0
  249. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/__init__.py +0 -0
  250. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/constants.py +0 -0
  251. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/storage.py +0 -0
  252. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/virtual_funds/__init__.py +0 -0
  253. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/virtual_funds/storage.py +0 -0
  254. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/__init__.py +0 -0
  255. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/asset_indexed.py +0 -0
  256. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/snapshots.py +0 -0
  257. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/storage.py +0 -0
  258. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/execution/__init__.py +0 -0
  259. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/execution/storage.py +0 -0
  260. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/__init__.py +0 -0
  261. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/formula.py +0 -0
  262. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/storage.py +0 -0
  263. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/timestamped.py +0 -0
  264. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/values.py +0 -0
  265. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/__init__.py +0 -0
  266. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/namespaces.py +0 -0
  267. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/output_metadata.py +0 -0
  268. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/stamped.py +0 -0
  269. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/storage_schema.py +0 -0
  270. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/time.py +0 -0
  271. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/migrations/__init__.py +0 -0
  272. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/__init__.py +0 -0
  273. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/__init__.py +0 -0
  274. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/allocation_models.py +0 -0
  275. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/core.py +0 -0
  276. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/groups.py +0 -0
  277. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/virtual_funds.py +0 -0
  278. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/__init__.py +0 -0
  279. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/bonds.py +0 -0
  280. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/categories.py +0 -0
  281. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/core.py +0 -0
  282. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/currency_spot.py +0 -0
  283. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/provider_details.py +0 -0
  284. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/types.py +0 -0
  285. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/__init__.py +0 -0
  286. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/core.py +0 -0
  287. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/dates.py +0 -0
  288. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/events.py +0 -0
  289. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/sessions.py +0 -0
  290. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/derivatives.py +0 -0
  291. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/execution.py +0 -0
  292. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/index_dataset_availability.py +0 -0
  293. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/index_formulas.py +0 -0
  294. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/indices.py +0 -0
  295. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/issuers.py +0 -0
  296. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/__init__.py +0 -0
  297. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/core.py +0 -0
  298. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/groups.py +0 -0
  299. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/signals.py +0 -0
  300. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/registration.py +0 -0
  301. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/py.typed +0 -0
  302. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/__init__.py +0 -0
  303. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/account_allocation_models.py +0 -0
  304. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/account_groups.py +0 -0
  305. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/accounts.py +0 -0
  306. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/asset_categories.py +0 -0
  307. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/assets.py +0 -0
  308. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/base.py +0 -0
  309. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/__init__.py +0 -0
  310. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/core.py +0 -0
  311. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/dates.py +0 -0
  312. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/events.py +0 -0
  313. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/sessions.py +0 -0
  314. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/crud.py +0 -0
  315. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/execution.py +0 -0
  316. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/indices.py +0 -0
  317. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/portfolios.py +0 -0
  318. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/provider_details.py +0 -0
  319. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/virtual_funds.py +0 -0
  320. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/__init__.py +0 -0
  321. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/__init__.py +0 -0
  322. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/account_virtual_allocations.py +0 -0
  323. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/core.py +0 -0
  324. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_fund_holdings.py +0 -0
  325. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_funds.py +0 -0
  326. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_funds_public_api.py +0 -0
  327. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/asset_categories.py +0 -0
  328. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/asset_master_lists.py +0 -0
  329. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/__init__.py +0 -0
  330. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/open_figi_lists/market_sector.json +0 -0
  331. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/open_figi_lists/security_type.json +0 -0
  332. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/open_figi_lists/security_type_2.json +0 -0
  333. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/reference_details.py +0 -0
  334. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/__init__.py +0 -0
  335. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/materialization.py +0 -0
  336. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/pandas_market.py +0 -0
  337. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/records.py +0 -0
  338. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/validation.py +0 -0
  339. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/execution.py +0 -0
  340. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/holdings.py +0 -0
  341. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/__init__.py +0 -0
  342. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/availability.py +0 -0
  343. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/delete_impact.py +0 -0
  344. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/relationships.py +0 -0
  345. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/portfolios.py +0 -0
  346. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/provider_details.py +0 -0
  347. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/public_api_settings.py +0 -0
  348. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/reference_data.py +0 -0
  349. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/related_meta_tables.py +0 -0
  350. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/table_impact.py +0 -0
  351. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/target_positions.py +0 -0
  352. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/settings.py +0 -0
  353. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_cli/__init__.py +0 -0
  354. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_cli/main.py +0 -0
  355. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/__init__.py +0 -0
  356. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/env.py +0 -0
  357. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/registry.py +0 -0
  358. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/script.py.mako +0 -0
  359. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/__init__.py +0 -0
  360. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_examples/__init__.py +0 -0
  361. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0017_legacy_schema_anchor.py +0 -0
  362. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0018_initial_schema.py +0 -0
  363. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0019_ledger_hypertable_uniqueness.py +0 -0
  364. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0020_expected_columns.json +0 -0
  365. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0020_merge_legacy_schema.py +0 -0
  366. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/__init__.py +0 -0
  367. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/__init__.py +0 -0
  368. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/__init__.py +0 -0
  369. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/configuration.py +0 -0
  370. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/contracts.py +0 -0
  371. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/lifecycle.py +0 -0
  372. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/projections.py +0 -0
  373. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/reducer.py +0 -0
  374. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/valuation.py +0 -0
  375. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/__init__.py +0 -0
  376. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/market_metadata.py +0 -0
  377. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/portfolios.py +0 -0
  378. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/asset_scope.py +0 -0
  379. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/bootstrap.py +0 -0
  380. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/configuration.py +0 -0
  381. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/__init__.py +0 -0
  382. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/__init__.py +0 -0
  383. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/data_nodes.py +0 -0
  384. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/utils.py +0 -0
  385. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/__init__.py +0 -0
  386. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/external_weights.py +0 -0
  387. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/fixed_weights.py +0 -0
  388. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/intraday_trend.py +0 -0
  389. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/market_cap.py +0 -0
  390. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/portfolio_replicator.py +0 -0
  391. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/regression_utils.py +0 -0
  392. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/__init__.py +0 -0
  393. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/base.py +0 -0
  394. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/constants.py +0 -0
  395. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/metadata.py +0 -0
  396. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolio_identity.py +0 -0
  397. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/__init__.py +0 -0
  398. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/accounting.py +0 -0
  399. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/analytics.py +0 -0
  400. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/calendar_events.py +0 -0
  401. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/rebalance.py +0 -0
  402. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/storage.py +0 -0
  403. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/temporal.py +0 -0
  404. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/weights.py +0 -0
  405. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/prices/__init__.py +0 -0
  406. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/prices/storage.py +0 -0
  407. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/__init__.py +0 -0
  408. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/storage.py +0 -0
  409. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/weights.py +0 -0
  410. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/enums.py +0 -0
  411. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/__init__.py +0 -0
  412. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/portfolios/__init__.py +0 -0
  413. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/portfolios/metadata.py +0 -0
  414. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/rebalancing.py +0 -0
  415. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/signals.py +0 -0
  416. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/__init__.py +0 -0
  417. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/accounting.py +0 -0
  418. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/base.py +0 -0
  419. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/calendar_event.py +0 -0
  420. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/immediate_signal.py +0 -0
  421. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/liquidity_constrained.py +0 -0
  422. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/time_weighted.py +0 -0
  423. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/trailing_average_daily_volume.py +0 -0
  424. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/volume_participation.py +0 -0
  425. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/repositories/__init__.py +0 -0
  426. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/repositories/market_metadata.py +0 -0
  427. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/__init__.py +0 -0
  428. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/calendars.py +0 -0
  429. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/market_metadata.py +0 -0
  430. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/portfolio_reads.py +0 -0
  431. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/portfolio_timestamp_repair.py +0 -0
  432. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/public_api.py +0 -0
  433. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/utils.py +0 -0
  434. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/README.md +0 -0
  435. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/__init__.py +0 -0
  436. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/__init__.py +0 -0
  437. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/__init__.py +0 -0
  438. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/base.py +0 -0
  439. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/fixed_income.py +0 -0
  440. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/__init__.py +0 -0
  441. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/asset_pricing_operations.py +0 -0
  442. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/curve_building_details.py +0 -0
  443. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/curves.py +0 -0
  444. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/index_convention_details.py +0 -0
  445. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/instruments.py +0 -0
  446. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/market_data_bindings.py +0 -0
  447. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/pricing_details.py +0 -0
  448. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/bootstrap.py +0 -0
  449. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/config.py +0 -0
  450. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_interface/__init__.py +0 -0
  451. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_interface/data_interface.py +0 -0
  452. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/__init__.py +0 -0
  453. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curve_codec.py +0 -0
  454. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/__init__.py +0 -0
  455. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/key_nodes.py +0 -0
  456. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/storage.py +0 -0
  457. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/index_fixings/__init__.py +0 -0
  458. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/index_fixings/storage.py +0 -0
  459. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/pricing_details/__init__.py +0 -0
  460. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/pricing_details/storage.py +0 -0
  461. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/__init__.py +0 -0
  462. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/base_instrument.py +0 -0
  463. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/bond.py +0 -0
  464. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/bond_terms.py +0 -0
  465. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/callability.py +0 -0
  466. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/interest_rate_swap.py +0 -0
  467. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/json_codec.py +0 -0
  468. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/ql_fields.py +0 -0
  469. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/meta_tables.py +0 -0
  470. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/__init__.py +0 -0
  471. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/curve_building_details.py +0 -0
  472. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/curves.py +0 -0
  473. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/index_convention_details.py +0 -0
  474. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/market_data_bindings.py +0 -0
  475. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/pricing_details.py +0 -0
  476. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/__init__.py +0 -0
  477. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/bond_analytics.py +0 -0
  478. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/bond_pricer.py +0 -0
  479. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/coupon_schedules.py +0 -0
  480. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curve_overlays.py +0 -0
  481. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/__init__.py +0 -0
  482. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/adapters.py +0 -0
  483. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/bond_helper_key_nodes.py +0 -0
  484. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/bond_helpers.py +0 -0
  485. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/cross_currency_helpers.py +0 -0
  486. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/cross_currency_key_nodes.py +0 -0
  487. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/fixed_income_key_nodes.py +0 -0
  488. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helper_key_nodes.py +0 -0
  489. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helper_resolution.py +0 -0
  490. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helpers.py +0 -0
  491. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/observations.py +0 -0
  492. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/quote_units.py +0 -0
  493. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/reconstruction.py +0 -0
  494. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/indices.py +0 -0
  495. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/indices_builders.py +0 -0
  496. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/resolvers.py +0 -0
  497. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/swap_pricer.py +0 -0
  498. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/__init__.py +0 -0
  499. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/__init__.py +0 -0
  500. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/engine.py +0 -0
  501. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/key_node_bumps.py +0 -0
  502. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/models.py +0 -0
  503. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/__init__.py +0 -0
  504. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/engine.py +0 -0
  505. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/impacts.py +0 -0
  506. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/line_pricing.py +0 -0
  507. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/models.py +0 -0
  508. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/settings.py +0 -0
  509. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/utils.py +0 -0
  510. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/valuation.py +0 -0
  511. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/__init__.py +0 -0
  512. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/PINNED_FROM.txt +0 -0
  513. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/README.md +0 -0
  514. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.inline-health-endpoint.json +0 -0
  515. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.retired-response-mappings.json +0 -0
  516. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-discovery-v1.unknown-operation-field.json +0 -0
  517. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-public-config-v1.direct-source-mismatch.json +0 -0
  518. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.retired-response-mapping-id.json +0 -0
  519. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-query-v1.unknown-field.json +0 -0
  520. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/adapter-from-api-secure-config-v1.unknown-field.json +0 -0
  521. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-binding-port.json +0 -0
  522. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/app-component-authoring-v1.invalid-mock-version.json +0 -0
  523. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.duplicate-selection-mode.json +0 -0
  524. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-discovery-v1.unsafe-endpoint.json +0 -0
  525. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.empty-explicit.json +0 -0
  526. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-execution-v1.presentation-filter.json +0 -0
  527. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.invalid-blockers.json +0 -0
  528. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/bulk-action-preflight-v1.missing-allowed.json +0 -0
  529. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.negative-total.json +0 -0
  530. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-collection-v1.select-without-options.json +0 -0
  531. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.incomplete-generic-column.json +0 -0
  532. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unknown-field.json +0 -0
  533. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/resource-discovery-v1.unsafe-identity.json +0 -0
  534. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.invalid-target-uid.json +0 -0
  535. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.missing-token.json +0 -0
  536. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unknown-credential-error.json +0 -0
  537. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.unrestricted-user-credential.json +0 -0
  538. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/static-site-iframe-v1.wrong-version.json +0 -0
  539. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.community-formula.json +0 -0
  540. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.invalid-selection.json +0 -0
  541. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/table-widget-authoring-v1.unknown-widget.json +0 -0
  542. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.invalid-table-visuals.json +0 -0
  543. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.long-with-value-fields.json +0 -0
  544. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.missing-rows.json +0 -0
  545. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-frame-v1.unknown-field-type.json +0 -0
  546. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.incomplete-pivot.json +0 -0
  547. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/tabular-transform-authoring-v1.latest-without-keys.json +0 -0
  548. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.missing-id.json +0 -0
  549. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/invalid/workspace-document-v1.numeric-id.json +0 -0
  550. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-discovery-v1.orders.json +0 -0
  551. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.backend.json +0 -0
  552. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-public-config-v1.direct.json +0 -0
  553. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-query-v1.operation.json +0 -0
  554. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/adapter-from-api-secure-config-v1.values.json +0 -0
  555. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.manual.json +0 -0
  556. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/app-component-authoring-v1.mock-json.json +0 -0
  557. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.archive.json +0 -0
  558. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-discovery-v1.empty.json +0 -0
  559. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.all-matching.json +0 -0
  560. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-execution-v1.explicit.json +0 -0
  561. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.allowed.json +0 -0
  562. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/bulk-action-preflight-v1.blocked.json +0 -0
  563. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.minimal.json +0 -0
  564. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-collection-v1.with-controls.json +0 -0
  565. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/resource-discovery-v1.records.json +0 -0
  566. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-error.json +0 -0
  567. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-request.json +0 -0
  568. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-credential-response.json +0 -0
  569. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.fastapi-runtime-starting.json +0 -0
  570. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.initialize.json +0 -0
  571. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/static-site-iframe-v1.ready.json +0 -0
  572. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.pro-table.json +0 -0
  573. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/table-widget-authoring-v1.table.json +0 -0
  574. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.minimal.json +0 -0
  575. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.table-visuals.json +0 -0
  576. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-frame-v1.time-series.json +0 -0
  577. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.filter.json +0 -0
  578. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/tabular-transform-authoring-v1.pivot-latest.json +0 -0
  579. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.minimal.json +0 -0
  580. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/fixtures/valid/workspace-document-v1.nested.json +0 -0
  581. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/manifest.json +0 -0
  582. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-discovery-v1.schema.json +0 -0
  583. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-public-config-v1.schema.json +0 -0
  584. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-query-v1.schema.json +0 -0
  585. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/adapter-from-api-secure-config-v1.schema.json +0 -0
  586. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/app-component-authoring-v1.schema.json +0 -0
  587. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-discovery-v1.schema.json +0 -0
  588. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-execution-v1.schema.json +0 -0
  589. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/bulk-action-preflight-v1.schema.json +0 -0
  590. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-collection-v1.schema.json +0 -0
  591. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/resource-discovery-v1.schema.json +0 -0
  592. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/static-site-iframe-v1.schema.json +0 -0
  593. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/table-widget-authoring-v1.schema.json +0 -0
  594. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-frame-v1.schema.json +0 -0
  595. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/tabular-transform-authoring-v1.schema.json +0 -0
  596. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/schemas/workspace-document-v1.schema.json +0 -0
  597. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/__init__.py +0 -0
  598. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/__init__.py +0 -0
  599. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/calendars/__init__.py +0 -0
  600. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/calendars/test_rows.py +0 -0
  601. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_assets.py +0 -0
  602. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_bonds.py +0 -0
  603. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_derivatives.py +0 -0
  604. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_http.py +0 -0
  605. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_indices.py +0 -0
  606. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_issuers.py +0 -0
  607. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_portfolio_groups.py +0 -0
  608. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_rows.py +0 -0
  609. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/__init__.py +0 -0
  610. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/test_asset_snapshots.py +0 -0
  611. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/bootstrap/__init__.py +0 -0
  612. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/bootstrap/test_bootstrap.py +0 -0
  613. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/__init__.py +0 -0
  614. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_asset_indexed_data_nodes.py +0 -0
  615. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_contracts.py +0 -0
  616. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_datetime_normalization.py +0 -0
  617. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_index_stamped_data_nodes.py +0 -0
  618. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_package_structure.py +0 -0
  619. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_provisioning_boundary.py +0 -0
  620. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_target_positions_contracts.py +0 -0
  621. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/__init__.py +0 -0
  622. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/__init__.py +0 -0
  623. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_accounts.py +0 -0
  624. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_asset_categories.py +0 -0
  625. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_assets.py +0 -0
  626. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_bulk_action_contracts.py +0 -0
  627. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_bulk_actions.py +0 -0
  628. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_calendars.py +0 -0
  629. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_command_center_adapter.py +0 -0
  630. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_common.py +0 -0
  631. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_dev_cors.py +0 -0
  632. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_indices.py +0 -0
  633. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_lifespan_discovery.py +0 -0
  634. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_openapi.py +0 -0
  635. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolio_groups.py +0 -0
  636. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolio_signals.py +0 -0
  637. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolios.py +0 -0
  638. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_assets.py +0 -0
  639. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_curves.py +0 -0
  640. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_market_data.py +0 -0
  641. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_runtime_bootstrap.py +0 -0
  642. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_settings.py +0 -0
  643. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_virtual_funds.py +0 -0
  644. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/imports/__init__.py +0 -0
  645. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/imports/test_import.py +0 -0
  646. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_data_nodes.py +0 -0
  647. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_engine.py +0 -0
  648. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_examples.py +0 -0
  649. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_formula_index_contract.py +0 -0
  650. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_availability.py +0 -0
  651. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_delete_impact.py +0 -0
  652. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_values.py +0 -0
  653. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_models_and_migration.py +0 -0
  654. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_public_api.py +0 -0
  655. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_related_meta_tables.py +0 -0
  656. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_resolution_and_repository.py +0 -0
  657. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_spread_compatibility.py +0 -0
  658. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/fixtures/legacy_0017.sql +0 -0
  659. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_ledger_hypertable_migration.py +0 -0
  660. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_legacy_schema_migration.py +0 -0
  661. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_migration_job.py +0 -0
  662. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_migrations.py +0 -0
  663. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/__init__.py +0 -0
  664. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/calendars/__init__.py +0 -0
  665. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/calendars/test_tables.py +0 -0
  666. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/test_metatable_models.py +0 -0
  667. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/repositories/__init__.py +0 -0
  668. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/repositories/test_repositories.py +0 -0
  669. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/assets/test_reference_details.py +0 -0
  670. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/calendars/__init__.py +0 -0
  671. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/calendars/test_materialization.py +0 -0
  672. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_account_virtual_allocations.py +0 -0
  673. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_latest_asset_references.py +0 -0
  674. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_table_impact.py +0 -0
  675. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_cli.py +0 -0
  676. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_constants.py +0 -0
  677. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_schema_names.py +0 -0
  678. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/accounting/test_accounting.py +0 -0
  679. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/api/test_rows.py +0 -0
  680. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/configuration/test_prices_configuration.py +0 -0
  681. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_daily_price_interpolation.py +0 -0
  682. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_datetime_normalization.py +0 -0
  683. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_portfolio_contracts.py +0 -0
  684. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_storage_first_surface.py +0 -0
  685. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_virtual_fund_holdings_contracts.py +0 -0
  686. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/examples/test_equal_weight_portfolio_schema.py +0 -0
  687. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/examples/test_trailing_adv_participation_preview.py +0 -0
  688. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/imports/test_bootstrap.py +0 -0
  689. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/imports/test_boundaries.py +0 -0
  690. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/models/test_model_graph.py +0 -0
  691. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_calendars.py +0 -0
  692. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_portfolio_reads.py +0 -0
  693. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_portfolio_timestamp_repair.py +0 -0
  694. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/test_portfolios_logger.py +0 -0
  695. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/__init__.py +0 -0
  696. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/analytics/spreads/test_base.py +0 -0
  697. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/analytics/spreads/test_fixed_income.py +0 -0
  698. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/__init__.py +0 -0
  699. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_asset_pricing_operations.py +0 -0
  700. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_curve_building_details.py +0 -0
  701. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_curves.py +0 -0
  702. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_index_convention_details.py +0 -0
  703. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_instruments.py +0 -0
  704. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_market_data_bindings.py +0 -0
  705. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_pricing_details.py +0 -0
  706. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_interface/test_data_interface.py +0 -0
  707. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_nodes/test_curves.py +0 -0
  708. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_nodes/test_index_fixings.py +0 -0
  709. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/examples/test_mock_market_data.py +0 -0
  710. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/__init__.py +0 -0
  711. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_base_instrument.py +0 -0
  712. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_benchmark_curve_resolution.py +0 -0
  713. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_bond_terms.py +0 -0
  714. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_floating_bond_roundtrip.py +0 -0
  715. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_index_uid_references.py +0 -0
  716. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/models/__init__.py +0 -0
  717. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/models/test_pricing_details.py +0 -0
  718. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_bond_helper_reconstruction.py +0 -0
  719. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_bond_helpers.py +0 -0
  720. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_cross_currency_helpers.py +0 -0
  721. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_reconstruction.py +0 -0
  722. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/test_curve_overlays.py +0 -0
  723. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/test_resolvers.py +0 -0
  724. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_curve_scenarios.py +0 -0
  725. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_key_node_bumps.py +0 -0
  726. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_resolved_curve_scenarios.py +0 -0
  727. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/valuation/test_line_pricing.py +0 -0
  728. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/valuation/test_workflow.py +0 -0
  729. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_bond_pricing_example.py +0 -0
  730. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_bootstrap.py +0 -0
  731. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_config.py +0 -0
  732. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_meta_tables.py +0 -0
  733. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_package_boundaries.py +0 -0
  734. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_valuation.py +0 -0
  735. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/packaging/__init__.py +0 -0
  736. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/packaging/test_dev_release_version.py +0 -0
  737. {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/packaging/test_distribution_sources.py +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mainsequence-markets-metatable-migrations
3
- description: Use this skill when an ms-markets project extension needs MetaTables-managed migration wiring. MetaTable migrations are handled by the metatables client (mainsequence-metatable); this skill only covers project table/spec refresh through after_register_metatables.
3
+ description: Use this skill when an ms-markets project extension needs MetaTables-managed migration wiring, or when a workload needs MetaTables roles on the `mainsequence.markets` namespace. MetaTable migrations are handled by the metatables client (mainsequence-metatable); this skill covers project table/spec refresh through after_register_metatables and the roles that the ms-markets deployment and consuming projects need.
4
4
  ---
5
5
 
6
6
  # Main Sequence Markets MetaTable Migration Extensions
@@ -20,8 +20,8 @@ MetaTable registration:
20
20
  - `metatables.migrations.metadata_for_models`
21
21
  - `metatables.migrations.run_mainsequence_alembic_env`
22
22
  - the `metatables migrations ... --provider <package>.migrations:migration` CLI
23
- - the `metatables-migrations` and `metatables-upgrade-legacy-app` skills that
24
- `metatables copy-metatables-skills` installs under `.agents/skills/metatables/`
23
+ - the `metatables-migrations` skill that `metatables copy-metatables-skills`
24
+ installs under `.agents/skills/metatables/`
25
25
  - the project-local migration provider, when the project defines one
26
26
 
27
27
  This skill does not own schema migration commands, migration engines, registry
@@ -51,7 +51,7 @@ Before changing project extension migration wiring, inspect:
51
51
 
52
52
  1. `.agents/skills/metatables/metatables-migrations/SKILL.md` and its
53
53
  `references/docs/client/define-and-migrate-tables.md`
54
- 2. `.agents/skills/metatables/metatables-upgrade-legacy-app/SKILL.md` when the
54
+ 2. `.agents/skills/mainsequence/maintenance/metatables_transition/SKILL.md` when the
55
55
  project still imports `mainsequence.meta_tables` or calls
56
56
  `mainsequence migrations`
57
57
  3. `metatables migrations --help` for the installed client's command shape
@@ -70,23 +70,77 @@ ms-markets schema is migrated only by the ms-markets deployment's
70
70
  tables does not apply `msm_migrations:migration`; its own migration Job applies
71
71
  only its own providers. Do not migrate at application startup.
72
72
 
73
- Required in every Environment: the `migrate-markets` Job and the `markets-api`
74
- release run as their own workload Users, which have no MetaTables grants until an
75
- Organization admin runs `scripts/bootstrap_metatables_access.py` from a checkout
76
- of the branch deployed there. The script creates the Team that owns the tables in
77
- that Environment (`ms-markets-<environment>`), as
78
- `.agents/skills/metatables/metatables-migrations/SKILL.md` prescribes. Without it the
79
- Job fails with `403` `table_not_editable` or `namespace_not_writable` (`422 MetaTable
80
- is not editable` from a MetaTables API before 0.1.27), and the API is not deployed.
81
- Do not work around a failed migration by changing revisions or table definitions,
82
- asking for direct table grants or running the Job as an admin. Check the Job run
83
- logs, then have an admin run the bootstrap. `docs/releasing.md` ("MetaTables access
84
- in each Environment") has the steps.
85
73
  The MetaTables API needs no provider code, allowlist, or
86
74
  `application_migration_providers` alias. Keep the provider package, namespace,
87
75
  model registry, version-table binding, revision IDs, and applied revision
88
76
  history when upgrading the client.
89
77
 
78
+ ## MetaTables Access
79
+
80
+ Access to the ms-markets tables follows the MetaTables namespace and table roles
81
+ (MetaTables ADR 0024, copied with the MetaTables skills under
82
+ `.agents/skills/metatables/metatables-migrations/references/docs/adr/api/0024-namespace-and-table-access-roles.md`).
83
+ Every ms-markets table is in the `mainsequence.markets` namespace, and a role on the
84
+ namespace covers every table in it, including tables registered later. Workloads run
85
+ as their own workload Users: they never grant roles, are never `owner`, and get no
86
+ MetaTables role from a workflow entry. The workflow's
87
+ `access.branches: [{repository: MetaTables, policy: reader}]` only lets them find the
88
+ Environment's MetaTables API.
89
+
90
+ In each Environment, the ms-markets deployment's principals hold these roles on
91
+ `mainsequence.markets`:
92
+
93
+ | Principal | Role |
94
+ | --- | --- |
95
+ | `migrate-markets` (migration Job) | `editor` |
96
+ | `markets-api` (FastAPI release) | `data_writer` |
97
+ | a person, or a Team of people only | `owner` |
98
+
99
+ Where `mainsequence.markets` predates roles, an Organization admin granted its first
100
+ owner once, and its owners grant every other role. In an Environment where it does
101
+ not exist yet, the first `migrate-markets` run creates it and gets `editor`; the
102
+ people who manage that Job then grant the API `data_writer` and an owner. Nobody
103
+ creates the namespace before the push.
104
+
105
+ A workload without a role can't see the tables: `msm.start_engine` then fails at
106
+ startup because they look unregistered, so that workload's rollout fails and only
107
+ the next push deploys it.
108
+
109
+ A project that installs ms-markets and uses these tables asks an owner of
110
+ `mainsequence.markets` for the smallest role each of its workloads needs, in each
111
+ Environment. Ask before the project's push when the workload already exists. A
112
+ workload the push creates gets its role right after it, and the next push deploys
113
+ it if it attaches the tables at startup.
114
+
115
+ | Consumer workload | Role on `mainsequence.markets` |
116
+ | --- | --- |
117
+ | Migration Job that registers its own tables in `mainsequence.markets` | `editor` on the namespace |
118
+ | Updater producer that writes an ms-markets table | table `editor` on each output table, plus `data_viewer` on the namespace for its inputs |
119
+ | Row writer (asset or OpenFIGI registration, categories, calendars, Index rows) | `data_writer` |
120
+ | Reader | `data_viewer` |
121
+
122
+ Prefer table `editor` for producers: namespace `editor` also allows deleting every
123
+ table in the namespace. The project's own tables belong in its own namespace, which
124
+ its first migration creates (see `.agents/skills/metatables/metatables-migrations/SKILL.md`).
125
+
126
+ Refusals name what is missing:
127
+
128
+ - `namespace_access_required` (403) when a migration Job registers into
129
+ `mainsequence.markets`: the Job's workload User (`caller_user_uid`) lacks
130
+ `tables.create` there, for example after the platform recreated the Job. An owner
131
+ grants it `editor`, then the Job runs again.
132
+ - `table_not_editable`: the caller lacks `tables.update` on an existing table. An
133
+ owner of the table or of the namespace grants `editor`.
134
+ - A refused row read or write in a running workload: it lacks `data_viewer` or
135
+ `data_writer`. Its requests succeed from the next one after the grant, with no
136
+ redeployment.
137
+
138
+ Do not work around a refusal by changing revisions, table definitions or physical
139
+ names, by putting grants in a Job or in application code, or by running the Job as an
140
+ Organization admin. Check the Job run logs, then ask an owner of
141
+ `mainsequence.markets` for the role. "MetaTables access in each Environment" in the
142
+ ms-markets `docs/releasing.md` lists the grants for its own deployment.
143
+
90
144
  ## Expected Project Pattern
91
145
 
92
146
  The project migration provider owns the migrated model list:
@@ -7,6 +7,54 @@ and this project follows versioned releases.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.11] - 2026-10-21
11
+
12
+ ### Changed
13
+
14
+ - Requires `mainsequence>=9.0.29,<10` and `mainsequence-metatable>=0.1.51,<0.2`; the
15
+ lock and exported `requirements.txt` select `mainsequence` 9.0.30,
16
+ `mainsequence-metatable` 0.1.51 and, through them, `mcp` 2.3.0. SDK 9.0.24 and
17
+ earlier refuse the platform's identity-only caller assertions, so the Markets API,
18
+ locked at 9.0.19, answered `401` to every signed request; SDK 9.0.25 and 9.0.26 raise
19
+ when code reads the request identity's `team_uids`; and MetaTables clients before
20
+ 0.1.51 fail on SDK 9.0.30. This release adds no Alembic revision.
21
+ - The deployment workflow uses workflow API `3.0.0`, the only version the platform
22
+ accepts: `markets-api` and `migrate-markets` declare `policy: reader` on the
23
+ MetaTables branch, the conversion of their former `level: view`.
24
+ - MetaTables access follows its namespace and table roles (MetaTables ADR 0024). On
25
+ `mainsequence.markets` the `migrate-markets` Job holds `editor`, the `markets-api`
26
+ release `data_writer`, and a person or a people-only Team `owner`; the namespace's
27
+ owners grant these in each Environment. The release, migration and FastAPI guides
28
+ and the packaged `metatable_migrations` skill describe them, with the roles consuming
29
+ projects need: `editor` for migration Jobs that register tables in
30
+ `mainsequence.markets`, table `editor` on their outputs plus `data_viewer` for
31
+ updater producers, `data_writer` for row writers and `data_viewer` for readers.
32
+ - `IndexActor.team_uids` is deprecated and empty for HTTP callers, because caller
33
+ assertions name no Teams. The Index actor never reads the request identity's
34
+ `team_uids`; an SDK `User` still contributes its `organization_teams`. No Index
35
+ operation authorizes by Team.
36
+ - Canonical Index dataset discovery no longer reports `can_edit=True` to the user who
37
+ registered the table, because registering grants no MetaTables role by itself.
38
+ `can_edit` is `None`; the platform checks edit access when a change runs.
39
+ - `get_openfigi_api_key()` raises `OpenFigiConfigurationError` naming `value_reader` on
40
+ `OPEN_FIGI_API_KEY` when the caller may not read the Secret's value. Its
41
+ missing-Secret message also says that a Secret is hidden from a caller without a
42
+ policy on it. A deployment that calls OpenFIGI declares
43
+ `secrets: [{name: OPEN_FIGI_API_KEY, policy: value_reader}]`.
44
+ - Test fixtures sign identity-only caller assertions, and a test checks that an
45
+ assertion listing `team_uids`, for the caller or for a requester, is refused.
46
+ - Refreshed the copied Main Sequence SDK skills to 9.0.30 and the MetaTables skills to
47
+ 0.1.51 (0.1.35 dropped the retired `metatables-upgrade-legacy-app` skill), and removed
48
+ the retired managed block from `AGENTS.md`: `mainsequence code-repository update` no
49
+ longer exists.
50
+
51
+ ### Removed
52
+
53
+ - `scripts/bootstrap_metatables_access.py` and its tests. It called Team bulk-member
54
+ and MetaTables Reader/Writer routes that no longer exist, and roles replace its Team
55
+ Writer model. `mainsequence.markets` exists in the development and Production
56
+ Environments, and its owner grants the roles above.
57
+
10
58
  ## [2.2.10] - 2026-10-11
11
59
 
12
60
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ms-markets
3
- Version: 2.2.10.dev35
3
+ Version: 2.2.11.dev36
4
4
  Summary: Financial markets ORM, engines, and application management extensions for Main Sequence.
5
5
  Project-URL: Changelog, https://github.com/mainsequence-projects/MainSequenceMarkets/blob/main/CHANGELOG.md
6
6
  Project-URL: Source, https://github.com/mainsequence-projects/MainSequenceMarkets
@@ -227,8 +227,8 @@ Requires-Python: <3.14,>=3.13
227
227
  Requires-Dist: alembic>=1.18.4
228
228
  Requires-Dist: cachetools
229
229
  Requires-Dist: fastapi>=0.136.3
230
- Requires-Dist: mainsequence-metatable<0.2,>=0.1.33
231
- Requires-Dist: mainsequence<10,>=9.0.19
230
+ Requires-Dist: mainsequence-metatable<0.2,>=0.1.51
231
+ Requires-Dist: mainsequence<10,>=9.0.29
232
232
  Requires-Dist: numpy
233
233
  Requires-Dist: pandas
234
234
  Requires-Dist: pip>=26.1.1
@@ -384,8 +384,8 @@ Recommended entry points:
384
384
 
385
385
  ## Quick Start
386
386
 
387
- `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.19,<10`, and
388
- the MetaTables client `mainsequence-metatable>=0.1.33,<0.2`, which is imported
387
+ `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.29,<10`, and
388
+ the MetaTables client `mainsequence-metatable>=0.1.51,<0.2`, which is imported
389
389
  as `metatables`. SDK 8 and earlier are not supported; install a 1.x
390
390
  `ms-markets` release when maintaining an SDK 8 project. See
391
391
  [ADR 0043](https://mainsequence-projects.github.io/MainSequenceMarkets/ADR/0043-sdk-9-metatables-client-hard-cut/)
@@ -501,9 +501,9 @@ Runtime dependencies are declared in
501
501
  [pyproject.toml](https://github.com/mainsequence-projects/MainSequenceMarkets/blob/main/pyproject.toml).
502
502
  The core stack starts with:
503
503
 
504
- - `mainsequence>=9.0.19,<10` for identity, login, Git source context,
504
+ - `mainsequence>=9.0.29,<10` for identity, login, Git source context,
505
505
  CodeRepository, jobs, and agents
506
- - `mainsequence-metatable>=0.1.33,<0.2` (import `metatables`) for MetaTables,
506
+ - `mainsequence-metatable>=0.1.51,<0.2` (import `metatables`) for MetaTables,
507
507
  time-index table updaters, governed compiled SQL, and application-owned
508
508
  Alembic migrations
509
509
  - `SQLAlchemy` for market-domain ORM models
@@ -107,8 +107,8 @@ Recommended entry points:
107
107
 
108
108
  ## Quick Start
109
109
 
110
- `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.19,<10`, and
111
- the MetaTables client `mainsequence-metatable>=0.1.33,<0.2`, which is imported
110
+ `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.29,<10`, and
111
+ the MetaTables client `mainsequence-metatable>=0.1.51,<0.2`, which is imported
112
112
  as `metatables`. SDK 8 and earlier are not supported; install a 1.x
113
113
  `ms-markets` release when maintaining an SDK 8 project. See
114
114
  [ADR 0043](https://mainsequence-projects.github.io/MainSequenceMarkets/ADR/0043-sdk-9-metatables-client-hard-cut/)
@@ -224,9 +224,9 @@ Runtime dependencies are declared in
224
224
  [pyproject.toml](https://github.com/mainsequence-projects/MainSequenceMarkets/blob/main/pyproject.toml).
225
225
  The core stack starts with:
226
226
 
227
- - `mainsequence>=9.0.19,<10` for identity, login, Git source context,
227
+ - `mainsequence>=9.0.29,<10` for identity, login, Git source context,
228
228
  CodeRepository, jobs, and agents
229
- - `mainsequence-metatable>=0.1.33,<0.2` (import `metatables`) for MetaTables,
229
+ - `mainsequence-metatable>=0.1.51,<0.2` (import `metatables`) for MetaTables,
230
230
  time-index table updaters, governed compiled SQL, and application-owned
231
231
  Alembic migrations
232
232
  - `SQLAlchemy` for market-domain ORM models
@@ -145,7 +145,7 @@ It contains no route, schema, service, or runtime logic.
145
145
 
146
146
  The release is managed by
147
147
  `.mainsequence/workflows/ms-markets-api.yaml`. The declaration uses workflow API
148
- `2.3.0`, retains three release revisions for rollback, and its
148
+ `3.0.0`, retains three release revisions for rollback, and its
149
149
  automatic-redeployment policy deploys every pushed commit of the tracked branch
150
150
  (`tag_regex: null`). The backend resolves the verified image for
151
151
  the exact eligible commit, so the workflow must not contain a
@@ -164,10 +164,15 @@ image, and `deploy_api` deploys the API with `needs: [migrate]`. A failed
164
164
  migration blocks the rollout and the previous release keeps serving; see
165
165
  [Hosted Deployments](../../knowledge/msm/migrations/index.md#hosted-deployments).
166
166
 
167
- !!! warning "Required before deploying to an Environment"
168
- The Job and the API run as their own workload Users. They can't migrate or
169
- use the ms-markets tables until an Organization admin runs
170
- `scripts/bootstrap_metatables_access.py` for that Environment; see
167
+ Both workloads declare the `reader` policy on the MetaTables branch
168
+ (`access.branches`), which lets them find the Environment's MetaTables API.
169
+
170
+ !!! warning "Required in every Environment"
171
+ The Job and the API run as their own workload Users. The Job migrates the
172
+ ms-markets tables only with the `editor` role on the `mainsequence.markets`
173
+ MetaTables namespace, and the API reads and writes their rows with
174
+ `data_writer`. The namespace's owners grant these roles in each Environment;
175
+ workflow entries can't. See
171
176
  [MetaTables access in each Environment](../../releasing.md#metatables-access-in-each-environment).
172
177
 
173
178
  Publish repository changes with a plain `git push` of the tracked branch; the
@@ -182,24 +187,31 @@ push alone as deployment success.
182
187
 
183
188
  Runtime dependencies must be resolvable from the backend build environment.
184
189
  The published `ms-markets` 2.x package therefore declares
185
- `mainsequence>=9.0.19,<10` and `mainsequence-metatable>=0.1.33,<0.2` without
190
+ `mainsequence>=9.0.29,<10` and `mainsequence-metatable>=0.1.51,<0.2` without
186
191
  exact patch pins. The lower bounds enforce the SDK 9 and MetaTables client
187
- extraction hard cut and the SDK request identity that the platform's current
188
- caller assertions require (SDK 9.0.18 and later), while the project lock and exported runtime requirements
189
- select the exact releases validated for this repository. MetaTables 0.1.33 retains
190
- batched migration inspections and a five-minute migration API discovery budget,
191
- and refreshes changed authored metadata at unchanged revisions. Metadata
192
- finalization requires the corresponding shared MetaTables API update. Do not replace the
193
- published dependencies with machine-local `[tool.uv.sources]` path overrides.
192
+ extraction hard cut, the identity-only caller assertions the platform signs (SDK
193
+ 9.0.27 and later; 9.0.25 and 9.0.26 are excluded), and a MetaTables client that
194
+ works with SDK 9.0.30 and knows the namespace and table roles (0.1.51), while the
195
+ project lock and exported runtime requirements select the exact releases validated
196
+ for this repository: `mainsequence` 9.0.30 and `mainsequence-metatable` 0.1.51.
197
+ MetaTables 0.1.51 retains batched migration inspections and a five-minute migration
198
+ API discovery budget, and refreshes changed authored metadata at unchanged
199
+ revisions. Metadata finalization requires the corresponding shared MetaTables API
200
+ update. Do not replace the published dependencies with machine-local
201
+ `[tool.uv.sources]` path overrides.
194
202
 
195
203
  `create_app()` installs the SDK request identity with
196
204
  `install_request_identity(app)`; the platform launcher refuses to serve an
197
205
  application without it. It authenticates every request before its handler: a
198
206
  hosted request by the gateway's signed caller assertion, a local request by its
199
207
  Bearer token. Handlers read the verified caller from `request.state.user` (a
200
- `RequestUserIdentity` with the canonical `uid`, `team_uids` and
201
- `is_organization_admin`) or `User.get_logged_user()`. The Index routes derive
202
- their actor, including its Teams, from that identity; route code does not parse
208
+ `RequestUserIdentity` with the canonical `uid` and `is_organization_admin`) or
209
+ `User.get_logged_user()`. The platform's caller assertions carry only those two
210
+ facts, for the caller and for a requester; an assertion that lists `team_uids` is
211
+ refused with `401`. Membership is checked on demand with
212
+ `RequestUserIdentity.in_teams()`, which no Markets route needs. The Index routes
213
+ derive their actor from that identity's `uid`; the deprecated
214
+ `IndexActor.team_uids` stays empty for HTTP callers. Route code does not parse
203
215
  authentication headers or bind SDK request-header context variables.
204
216
 
205
217
  ## API Discoverability
@@ -1,7 +1,7 @@
1
1
  # Getting Started
2
2
 
3
- `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.19,<10`, and
4
- the MetaTables client `mainsequence-metatable>=0.1.33,<0.2` (imported as
3
+ `ms-markets` 2.x requires Python 3.13, Main Sequence SDK `>=9.0.29,<10`, and
4
+ the MetaTables client `mainsequence-metatable>=0.1.51,<0.2` (imported as
5
5
  `metatables`). It cannot run against an SDK 8 or earlier contract and does not
6
6
  provide compatibility aliases or a mixed-version mode. Install a 1.x
7
7
  `ms-markets` release when maintaining an SDK 8 project.
@@ -80,7 +80,7 @@ previous release keeps serving.
80
80
 
81
81
  ### Migration diagnostics and repeated runs
82
82
 
83
- The minimum client is MetaTables 0.1.33. `upgrade_application()` automatically
83
+ The minimum client is MetaTables 0.1.51. `upgrade_application()` automatically
84
84
  uses fresh table inventories and batched physical inspections; PostgreSQL
85
85
  reflection is batched by schema. Finalization requests remain bounded to ten
86
86
  tables each, with the version table first. No batching option or project-specific
@@ -116,7 +116,7 @@ requires no new grant or application revision. If `0020` committed but
116
116
  finalization failed, deploy the repaired shared API and rerun the hosted Job at
117
117
  head; keep all existing application data and applied revisions. An already
118
118
  current development hypertable keeps its owner and rows. This is a server
119
- requirement; the Markets migration client remains 0.1.33.
119
+ requirement; the Markets migration client requirement is separate (currently 0.1.51).
120
120
 
121
121
  The runner carries changed, non-empty authored table descriptions, labels, and
122
122
  column descriptions, labels, and logical names in each finalization batch. An
@@ -131,11 +131,13 @@ unchanged-contract write avoidance, and startup optimizations require the shared
131
131
  MetaTables API to be deployed with that release too. Update matching guidance
132
132
  with `metatables copy-metatables-skills --path .` after updating the client.
133
133
 
134
- !!! warning "Required: MetaTables access for the deployment"
135
- The migration Job runs as its own workload User, which has no MetaTables
136
- grants until an Organization admin runs `scripts/bootstrap_metatables_access.py`
137
- for that Environment. Until then every hosted migration fails and the API is not
138
- deployed; see
134
+ !!! warning "Required: MetaTables roles for the deployment"
135
+ The migration Job runs as its own workload User and needs the `editor` role on
136
+ the `mainsequence.markets` namespace; the API needs `data_writer`. These are
137
+ MetaTables roles, not workflow entries. In each Environment the namespace's
138
+ owners grant them, or, where the Job's first run created the namespace, the
139
+ people who manage the Job. Without `editor` the Job's registration fails with
140
+ `namespace_access_required` and the API is not deployed; see
139
141
  [MetaTables access in each Environment](../../../releasing.md#metatables-access-in-each-environment).
140
142
 
141
143
  The ms-markets schema is owned and migrated only by this repository's
@@ -110,8 +110,8 @@ history is the Alembic revision graph plus the provider's version table.
110
110
 
111
111
  ## Client Requirement
112
112
 
113
- The implementation requires `mainsequence-metatable>=0.1.33,<0.2` with
114
- `mainsequence>=9.0.19,<10`. The client exposes `AlembicMetaTableMigration`,
113
+ The implementation requires `mainsequence-metatable>=0.1.51,<0.2` with
114
+ `mainsequence>=9.0.29,<10`. The client exposes `AlembicMetaTableMigration`,
115
115
  `AlembicVersionMetaTable`, application-owned Alembic execution, and the command
116
116
  shape where
117
117
  `metatables --local migrations upgrade --provider msm_migrations:migration head`
@@ -163,7 +163,7 @@ requires no new grant or application revision. If `0020` committed but
163
163
  finalization failed, deploy the repaired shared API and rerun the hosted Job at
164
164
  head; keep all existing application data and applied revisions. An already
165
165
  current development hypertable keeps its owner and rows. This is a server
166
- requirement; the Markets migration client remains 0.1.33.
166
+ requirement; the Markets migration client requirement is separate (currently 0.1.51).
167
167
 
168
168
  FastAPI startup also uses `api_endpoint_scope(discovery_timeout=300)` for its
169
169
  canonical and pricing runtime attachments. Discovery during shared-API wake or
@@ -178,11 +178,15 @@ persistent temporary failures also stop startup. Normal requests do not use this
178
178
 
179
179
  ### Upgrading the migration client
180
180
 
181
- The project requires `mainsequence-metatable>=0.1.33,<0.2`; `uv.lock` and
182
- `requirements.txt` select 0.1.33. After changing the dependency, run
183
- `mainsequence code-repository sync --path .`, refresh the MetaTables-owned
184
- guidance with `metatables copy-metatables-skills --path .`, and run the checks
185
- above. Keep the provider identity, version table, and applied revisions unchanged.
181
+ The project requires `mainsequence>=9.0.29,<10` and
182
+ `mainsequence-metatable>=0.1.51,<0.2`; `uv.lock` and `requirements.txt` select
183
+ `mainsequence` 9.0.30 and `mainsequence-metatable` 0.1.51. Move the SDK and the
184
+ client together: MetaTables clients before 0.1.51 fail on SDK 9.0.30, and 0.1.51
185
+ itself requires SDK 9.0.29 or later. The SDK floor also excludes 9.0.25 and 9.0.26,
186
+ which raise on the request identity's Teams. After changing the dependency, run
187
+ `mainsequence code-repository sync --path .`, refresh the MetaTables-owned guidance
188
+ with `metatables copy-metatables-skills --path .`, and run the checks above. Keep the
189
+ provider identity, version table, and applied revisions unchanged.
186
190
 
187
191
  The candidate image uses the shared `upgrade_application()` runner and batched
188
192
  inspections. The Job explicitly wraps the runner in
@@ -205,62 +209,65 @@ revision alone is not proof of deployment success. See
205
209
 
206
210
  ### MetaTables access in each Environment
207
211
 
208
- !!! warning "Required in every Environment"
209
- An Organization admin must run `scripts/bootstrap_metatables_access.py` for an
210
- Environment before ms-markets can be deployed there. Without it:
211
-
212
- - the `migrate-markets` Job fails with `403` `table_not_editable` or
213
- `namespace_not_writable` (a MetaTables API before 0.1.27 answers
214
- `422 MetaTable is not editable`). The error's `caller_user_uid` is the
215
- workload User missing from the Team;
216
- - the API rollout is blocked and no release becomes active.
217
-
218
- Run it before the first deployment to a new Environment, and again whenever
219
- the platform recreates the Job or the release.
220
-
221
- This is the model MetaTables 0.1.27 prescribes: in each Environment, one platform
222
- Team owns an application's tables and its workload Users are the Team's members
223
- (see the vendored `metatables-migrations` skill).
224
-
225
212
  The `migrate-markets` Job and the `markets-api` release run as their own workload
226
- Users, which start with no grants. The workflow gives both `view` on the MetaTables
227
- repository (`access.branches`), so they can find the Environment's MetaTables API.
228
- A workflow cannot grant MetaTables table access, so an Organization admin runs
229
- `scripts/bootstrap_metatables_access.py` once per Environment. Run it from a
230
- checkout of the branch deployed there: `development` for the development
231
- Environment, `main` for Production.
232
-
233
- ```bash
234
- uv run --frozen --all-extras python -m scripts.bootstrap_metatables_access --dry-run
235
- uv run --frozen --all-extras python -m scripts.bootstrap_metatables_access
236
- ```
237
-
238
- The script names the Team after the checkout's Environment (`ms-markets-development`,
239
- `ms-markets-production`). It:
240
-
241
- - creates the Team if it doesn't exist;
242
- - adds the workload Users of the Job and release declared in the workflow;
243
- - creates the `mainsequence.markets` namespace if it is missing;
244
- - grants the Team Writer on the namespace.
245
-
246
- Tables in that namespace inherit the grant, including the ones the migration
247
- registers later. Once `msm.alembic_version` is registered, the script checks each
248
- workload User's effective access to it.
249
-
250
- Re-running the script changes only what is missing. Run it again whenever the
251
- platform recreates the Job or the release, because the new workload User is not
252
- in the Team.
253
-
254
- A workload User exists only after the workload's first deployment. In an
255
- Environment where the Job has not run yet:
256
-
257
- 1. Run the script, then push. The Job's first run fails, because its workload User
258
- is not in the Team yet.
259
- 2. Run the script again.
260
- 3. Run the Job with `mainsequence code-repository jobs run <JOB_UID>`.
261
-
262
- The API rolls out on the next push to the branch, because the CLI cannot retry a
263
- blocked deployment.
213
+ Users. The workflow gives both the `reader` policy on the MetaTables branch
214
+ (`access.branches`), so they can find the Environment's MetaTables API. Their access
215
+ to the ms-markets tables is a MetaTables role on the `mainsequence.markets` namespace
216
+ (MetaTables ADR 0024). A role on the namespace covers every table in it, including
217
+ tables registered later. Workflow entries don't grant MetaTables roles and workloads
218
+ never grant them: the namespace's owners do, in the namespace's **Access** panel of
219
+ that Environment's MetaTables Admin or with `grant_role`.
220
+
221
+ | Principal | Role on `mainsequence.markets` | Why |
222
+ | --- | --- | --- |
223
+ | `migrate-markets` workload User | `editor` | registers and migrates the ms-markets tables |
224
+ | `markets-api` workload User | `data_writer` | reads and writes rows; never migrates, deletes or shares tables |
225
+ | a person, or a Team of people only | `owner` | decides who has access; a workload is never an owner |
226
+
227
+ Without `editor`, the Job's registration fails with `403` `namespace_access_required`
228
+ (`table_not_editable` for an existing table), naming its workload User as
229
+ `caller_user_uid`; the API rollout is blocked and the previous release keeps serving.
230
+ Without a role on the namespace, the API can't attach its tables at startup, so its
231
+ rollout fails and only the next push deploys it. A running API whose role is missing
232
+ has its MetaTables requests refused; they succeed from the next request after the
233
+ grant, with no redeployment.
234
+
235
+ **Where the namespace exists.** `mainsequence.markets` predates roles in the
236
+ development and Production Environments, so no migration creates it there. When
237
+ roles arrived, an Organization admin granted it a first owner, and the old Team
238
+ Writer binding became `editor` for every member of that Team, `markets-api`
239
+ included. The owner keeps the Job's `editor` and lowers the API: grant the API's
240
+ workload User `data_writer`, then take it out of the Team that holds `editor`.
241
+
242
+ **In a new Environment.** Nobody creates the namespace before the push. The first
243
+ `migrate-markets` run registers the tables, which creates `mainsequence.markets` and
244
+ grants the Job `editor`. The people who manage the Job then manage the namespace's
245
+ access: they grant `markets-api` `data_writer`, and `owner` to themselves or to a
246
+ Team they belong to, so the namespace keeps an owner when the Job is recreated. The
247
+ API's first rollout there fails at startup because it has no role yet; push again
248
+ after the grant.
249
+
250
+ **When the platform recreates the Job or the release**, its new workload User has no
251
+ role. With direct bindings, an owner grants the role again; with a Team that holds
252
+ the role, add the new workload User to the Team. The Job can then be run again, but a
253
+ blocked API rollout resumes only with the next push to the branch.
254
+
255
+ **Consumers.** An application that uses the ms-markets tables gets its roles in each
256
+ Environment from an owner of `mainsequence.markets`:
257
+
258
+ | Consumer workload | Role |
259
+ | --- | --- |
260
+ | Migration Job that registers tables in `mainsequence.markets` | `editor` on the namespace |
261
+ | Updater producer that writes an ms-markets table | table `editor` on each output table, plus `data_viewer` on the namespace |
262
+ | Row writer (assets, OpenFIGI details, categories, calendars, Index rows) | `data_writer` on the namespace |
263
+ | Reader | `data_viewer` on the namespace |
264
+
265
+ Prefer table `editor` for producers: namespace `editor` would also let them delete
266
+ every table in the namespace. Grant before the consumer's push when its workload
267
+ already exists. A workload the push creates gets its role right after it; if it
268
+ attaches ms-markets tables at startup (`msm.start_engine`), its first rollout fails
269
+ until then and the next push deploys it. A consumer keeps its own tables in its own
270
+ namespace, which its first migration creates.
264
271
 
265
272
  ## Failure recovery
266
273
 
@@ -17,7 +17,7 @@ helpers for time-indexed facts).
17
17
 
18
18
  ### Prepare the schema before starting runtime code
19
19
 
20
- 1. Install the locked dependencies, including MetaTables 0.1.33 or later.
20
+ 1. Install the locked dependencies, including MetaTables 0.1.51 or later.
21
21
  2. For local ms-markets schema development, verify the local MetaTables runtime
22
22
  and use `metatables --local migrations upgrade --provider msm_migrations:migration head`.
23
23
  For a hosted environment, the ms-markets deployment's migration Job applies
@@ -24,7 +24,7 @@ def main() -> None:
24
24
 
25
25
  print("\nHosted: candidate image -> jobs/migrate_markets.py -> API rollout")
26
26
  print(f"The Job calls metatables.upgrade_application({PROVIDER!r}) on every deployment.")
27
- print("MetaTables >=0.1.33 batches inspections; the Job explicitly allows 300s to wake.")
27
+ print("MetaTables >=0.1.35 batches inspections; the Job explicitly allows 300s to wake.")
28
28
  print("It uses api_endpoint_scope(discovery_timeout=300); failures still stop rollout.")
29
29
  print("At head, catalog reconciliation still runs; migrated=False is not a skip signal.")
30
30
  print("Changed non-empty authored metadata refreshes without a new Alembic revision.")
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ms-markets"
7
- version = "2.2.10.dev35"
7
+ version = "2.2.11.dev36"
8
8
  description = "Financial markets ORM, engines, and application management extensions for Main Sequence."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.14"
@@ -36,8 +36,8 @@ dependencies = [
36
36
  "alembic>=1.18.4",
37
37
  "cachetools",
38
38
  "fastapi>=0.136.3",
39
- "mainsequence>=9.0.19,<10",
40
- "mainsequence-metatable>=0.1.33,<0.2",
39
+ "mainsequence>=9.0.29,<10",
40
+ "mainsequence-metatable>=0.1.51,<0.2",
41
41
  "numpy",
42
42
  "pandas",
43
43
  "pip>=26.1.1",
@@ -379,14 +379,22 @@ def get_openfigi_api_key(
379
379
  *,
380
380
  secret_name: str = OPENFIGI_API_KEY_SECRET_NAME,
381
381
  ) -> str:
382
- """Read the OpenFIGI API key from Main Sequence Secrets."""
382
+ """Read the OpenFIGI API key from Main Sequence Secrets.
383
+
384
+ Reading a Secret's value needs the `value_reader` policy on it. A caller
385
+ without it gets `OpenFigiConfigurationError` naming that grant.
386
+ """
383
387
 
384
388
  try:
385
389
  secret = _get_mainsequence_secret(secret_name)
386
390
  except Exception as exc:
387
- if exc.__class__.__name__ == "DoesNotExist":
391
+ error_name = exc.__class__.__name__
392
+ if error_name == "DoesNotExist":
388
393
  message = _missing_openfigi_secret_message(secret_name)
389
394
  raise OpenFigiConfigurationError(message) from exc
395
+ if error_name == "PermissionDeniedError":
396
+ message = _unreadable_openfigi_secret_message(secret_name)
397
+ raise OpenFigiConfigurationError(message) from exc
390
398
  raise
391
399
 
392
400
  raw_value = getattr(secret, "value", None)
@@ -412,7 +420,19 @@ def _get_mainsequence_secret(secret_name: str) -> Any:
412
420
 
413
421
 
414
422
  def _missing_openfigi_secret_message(secret_name: str) -> str:
415
- return f"{secret_name} needs to be set in {OPENFIGI_SECRET_SETUP_URL} before using OpenFIGI."
423
+ return (
424
+ f"{secret_name} needs to be set in {OPENFIGI_SECRET_SETUP_URL} before using OpenFIGI. "
425
+ f"A Secret that exists is hidden from a caller without a policy on it; the caller "
426
+ f"needs `value_reader` on {secret_name}."
427
+ )
428
+
429
+
430
+ def _unreadable_openfigi_secret_message(secret_name: str) -> str:
431
+ return (
432
+ f"The caller may not read the value of the {secret_name} Secret. Reading it needs "
433
+ f"`value_reader` on {secret_name}: its owner grants it, or the caller's deployment "
434
+ f"workflow declares `secrets: [{{name: {secret_name}, policy: value_reader}}]`."
435
+ )
416
436
 
417
437
 
418
438
  def _ensure_normalized_openfigi_result(item: Mapping[str, Any]) -> dict[str, Any]: