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.
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/platform/metatable_migrations/SKILL.md +70 -16
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/CHANGELOG.md +48 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/PKG-INFO +7 -7
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/README.md +4 -4
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/index.md +28 -16
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/getting-started.md +2 -2
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/migrations/index.md +9 -7
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/metatable_migrations.md +2 -2
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/releasing.md +68 -61
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/index.md +1 -1
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/metatable_migration_lifecycle.py +1 -1
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/pyproject.toml +3 -3
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/openfigi.py +23 -3
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/actors.py +5 -6
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/catalog.py +5 -6
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/contracts.py +7 -1
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/conftest.py +0 -1
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/test_openfigi.py +23 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_deployment_entrypoint.py +4 -2
- ms_markets-2.2.11.dev36/tests/msm/fastapi/v1/test_request_identity.py +97 -0
- ms_markets-2.2.11.dev36/tests/msm/indices/test_index_actor.py +37 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_lifecycle_services.py +33 -5
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_package_metadata.py +14 -2
- ms_markets-2.2.10.dev35/tests/msm/fastapi/v1/test_request_identity.py +0 -50
- ms_markets-2.2.10.dev35/tests/msm/maintenance/test_bootstrap_metatables_access.py +0 -65
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/accounts/account_workflow/SKILL.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/accounts/valuation_resolver/SKILL.md +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/assets/asset_model_extension/SKILL.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/indices/index_workflow/SKILL.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/platform/bootstrap_registration/SKILL.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/portfolios/portfolio_workflow/SKILL.md +0 -0
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.agents/skills/ms_markets/pricing/general_pricing/SKILL.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/.gitignore +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/LICENSE +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0005-pricing-package-refactor.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0006-asset-package-boundary.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0008-metatable-table-and-api-model-split.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0019-msm-portfolios-package-boundary.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0022-alembic-metatable-migration-alignment.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0023-deterministic-alembic-naming.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0024-namespace-scoped-alembic-version-locations.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0025-direct-metatable-runtime-binding.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0026-explicit-pricing-market-data-sets.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0027-account-target-position-portfolio-exposure.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0028-core-calendar-reference-data.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0029-account-holdings-virtual-fund-allocation-policy.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0030-explicit-portfolio-price-source-dependency.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0031-generic-portfolio-valuation-source.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0032-portfolio-group-many-to-many.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0033-pricing-valuation-position-boundary.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0034-command-center-asset-monitor-helpers.md +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0036-prepared-pricing-valuation-context.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0037-index-formula-and-custom-calculation-framework.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0038-index-user-api-and-fastapi-exploration.md +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0040-portfolio-temporal-ownership.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0041-installable-provider-http-toolkit.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0042-position-cash-flow-portfolio-accounting.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0043-sdk-9-metatables-client-hard-cut.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0044-namespaced-migration-provider-package.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0045-squashed-initial-schema-and-namespaced-packages.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/0046-legacy-0017-schema-bridge.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/README.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0001-calendar-crud-route.md +0 -0
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/ADR/fast_api/v1/0004-delete-impact-contract.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/changelog.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/concepts.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/accounts.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/assets.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/calendars.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/command_center_bulk_actions.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/fixed_income_pricer.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/indexes.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio_groups.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/portfolio_signal_metadata.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/pricing_curves.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/pricing_market_data.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/provider_adapter_toolkit.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/resource_contracts.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/settings.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/fast_api/v1/virtualfund.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/accounts/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/accounts/virtual_funds.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/asset_indexed_data_nodes.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/bonds.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/currency.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/assets/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/calendars/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/client/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/derivatives/futures.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/derivatives/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/execution/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/indices/formula_indexes.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/indices/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/models/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/platform/meta_table_registration.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/repositories/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm/services/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/portfolios/accounting.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_portfolios/portfolios/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/analytics.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/curves.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/fixings.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/instruments.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/market_data_sets.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/runtime_resolution.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/curves.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/knowledge/msm_pricing/scenarios/valuation.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/benchmark_curve_resolution_plan.md +0 -0
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/generic_curve_reconstruction_upstream_plan.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/planning/implementation_tasks/generic_valuation_scenario_workflow_plan.md +0 -0
- {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
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/reference/index.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/reference/indices.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/stylesheets/custom.css +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/01-assets.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/02-calendars.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/03-accounts.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/04-portfolios.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/05-pricing.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/docs/tutorial/06-index-formulas.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/account_portfolio_full_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/account_virtual_fund_allocation_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/utils/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/accounts/utils/reference_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_category_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_crud_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/asset_type_constants.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/bond_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/currency_spot_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/crypto_future_without_figi.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/derivatives/index_future_from_openfigi.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/us_treasury_bond_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/utils/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/assets/utils/reference_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/calendars/calendar_materialization_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/http_provider_contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/delta_hedged_option_index.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/extension_owned_index_storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/formula_index.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/index_values_frequency_migration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/indices/plain_index_values.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/custom_asset_details_extension.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/platform/inspect_markets_metatable_models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/workflows/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm/workflows/asset_category_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_cashflows_and_fx_valuation_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_custom_cashflow_model_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_custom_valuation_column_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_config.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_dynamic_migration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_prepare_schema.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_equal_weights_run.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_groups_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_midnight_timestamp_repair.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_perpetual_funding_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_read_services.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_trailing_adv_participation_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_portfolios/portfolio_trailing_adv_participation_preview.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/README.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_pricing_example/main.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/bond_terms.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/curve_reconstruction.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/curve_scenario.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/fixed_income_spread_analytics.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/import_pricing_runtime.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/instrument_identity_boundary.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/pricing_registry_rows.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/pricing_valuation_context.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/resolved_curve_scenario.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/utils/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/utils/mock_market_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/valuation_inputs.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/examples/msm_pricing/valuation_scenario_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/mkdocs.yml +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/engine.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/analytics/indices/spreads.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/accounts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/assets.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/_validation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/dates.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/events.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/calendars/sessions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/derivatives.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/execution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/formula_indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/_base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/bulk_actions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/collections.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/discovery.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/errors.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/operations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/table_impact.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/http/tabular.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/issuers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/portfolios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/api/virtual_funds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/constants.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/constants.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/virtual_funds/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/accounts/virtual_funds/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/asset_indexed.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/snapshots.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/assets/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/execution/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/execution/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/formula.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/timestamped.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/indices/values.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/namespaces.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/output_metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/stamped.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/storage_schema.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/data_nodes/utils/time.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/migrations/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/allocation_models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/groups.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/accounts/virtual_funds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/bonds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/categories.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/currency_spot.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/provider_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/assets/types.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/dates.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/events.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/calendars/sessions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/derivatives.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/execution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/index_dataset_availability.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/index_formulas.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/issuers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/groups.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/portfolios/signals.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/models/registration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/py.typed +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/account_allocation_models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/account_groups.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/accounts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/asset_categories.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/assets.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/dates.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/events.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/calendars/sessions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/crud.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/execution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/portfolios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/provider_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/repositories/virtual_funds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/account_virtual_allocations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/core.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_fund_holdings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_funds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/accounts/virtual_funds_public_api.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/asset_categories.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/asset_master_lists.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/open_figi_lists/market_sector.json +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/open_figi_lists/security_type.json +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/assets/reference_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/materialization.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/pandas_market.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/records.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/calendars/validation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/execution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/holdings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/availability.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/delete_impact.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/indices/relationships.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/portfolios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/provider_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/public_api_settings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/reference_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/related_meta_tables.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/table_impact.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/services/target_positions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm/settings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_cli/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_cli/main.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/env.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/registry.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/script.py.mako +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_examples/__init__.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0018_initial_schema.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/0020_expected_columns.json +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_migrations/versions/mainsequence_markets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/configuration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/lifecycle.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/projections.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/reducer.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/accounting/valuation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/market_metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/api/portfolios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/asset_scope.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/configuration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/data_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/prices/utils.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/external_weights.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/fixed_weights.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/intraday_trend.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/market_cap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/portfolio_replicator.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/contrib/signals/regression_utils.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/constants.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolio_identity.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/accounting.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/analytics.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/calendar_events.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/rebalance.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/temporal.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/portfolios/weights.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/prices/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/prices/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/data_nodes/signals/weights.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/enums.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/portfolios/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/portfolios/metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/rebalancing.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/models/signals.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/accounting.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/calendar_event.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/immediate_signal.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/liquidity_constrained.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/time_weighted.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/trailing_average_daily_volume.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/rebalance_strategy/volume_participation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/repositories/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/repositories/market_metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/calendars.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/market_metadata.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/portfolio_reads.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/portfolio_timestamp_repair.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/services/public_api.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_portfolios/utils.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/README.md +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/analytics/spreads/fixed_income.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/asset_pricing_operations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/curve_building_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/curves.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/index_convention_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/instruments.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/market_data_bindings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/api/pricing_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/config.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_interface/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_interface/data_interface.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curve_codec.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/key_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/curves/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/index_fixings/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/index_fixings/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/pricing_details/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/data_nodes/pricing_details/storage.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/base_instrument.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/bond.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/bond_terms.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/callability.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/interest_rate_swap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/json_codec.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/instruments/ql_fields.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/meta_tables.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/curve_building_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/curves.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/index_convention_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/market_data_bindings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/models/pricing_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/bond_analytics.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/bond_pricer.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/coupon_schedules.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curve_overlays.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/adapters.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/bond_helpers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/cross_currency_helpers.py +0 -0
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helper_key_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helper_resolution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/helpers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/observations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/quote_units.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/curves/reconstruction.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/indices_builders.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/resolvers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/pricing_engine/swap_pricer.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/engine.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/key_node_bumps.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/curves/models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/engine.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/impacts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/line_pricing.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/scenarios/valuation/models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/settings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/utils.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/src/msm_pricing/valuation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/__init__.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/README.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/contracts/command-center-sdk-v0.1.13/manifest.json +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/calendars/test_rows.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_assets.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_bonds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_derivatives.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_http.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_issuers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_portfolio_groups.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/api/test_rows.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/assets/test_asset_snapshots.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/bootstrap/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/bootstrap/test_bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_asset_indexed_data_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_datetime_normalization.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_index_stamped_data_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_package_structure.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_provisioning_boundary.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/data_nodes/test_target_positions_contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_accounts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_asset_categories.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_assets.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_bulk_action_contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_bulk_actions.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_calendars.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_command_center_adapter.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_common.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_dev_cors.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_indices.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_lifespan_discovery.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_openapi.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolio_groups.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolio_signals.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_portfolios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_assets.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_curves.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_pricing_market_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_runtime_bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_settings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/fastapi/v1/test_virtual_funds.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/imports/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/imports/test_import.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_data_nodes.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_engine.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_examples.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_formula_index_contract.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_availability.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_delete_impact.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_index_values.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_models_and_migration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_public_api.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_related_meta_tables.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_resolution_and_repository.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/indices/test_spread_compatibility.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/fixtures/legacy_0017.sql +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_ledger_hypertable_migration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_legacy_schema_migration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_migration_job.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/maintenance/test_migrations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/calendars/test_tables.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/models/test_metatable_models.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/repositories/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/repositories/test_repositories.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/assets/test_reference_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/calendars/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/calendars/test_materialization.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_account_virtual_allocations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_latest_asset_references.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/services/test_table_impact.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_cli.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_constants.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm/test_schema_names.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/accounting/test_accounting.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/api/test_rows.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/configuration/test_prices_configuration.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_daily_price_interpolation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_datetime_normalization.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_portfolio_contracts.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/data_nodes/test_storage_first_surface.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/examples/test_equal_weight_portfolio_schema.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/examples/test_trailing_adv_participation_preview.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/imports/test_bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/imports/test_boundaries.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/models/test_model_graph.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_calendars.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_portfolio_reads.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/services/test_portfolio_timestamp_repair.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_portfolios/test_portfolios_logger.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/analytics/spreads/test_base.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/analytics/spreads/test_fixed_income.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_asset_pricing_operations.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_curve_building_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_curves.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_index_convention_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_instruments.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_market_data_bindings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/api/test_pricing_details.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_interface/test_data_interface.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_nodes/test_curves.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/data_nodes/test_index_fixings.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/examples/test_mock_market_data.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_base_instrument.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_benchmark_curve_resolution.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_bond_terms.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_floating_bond_roundtrip.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/instruments/test_index_uid_references.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/models/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/models/test_pricing_details.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_bond_helpers.py +0 -0
- {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
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/curves/test_reconstruction.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/test_curve_overlays.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/pricing_engine/test_resolvers.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_curve_scenarios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_key_node_bumps.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/curves/test_resolved_curve_scenarios.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/valuation/test_line_pricing.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/scenarios/valuation/test_workflow.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_bond_pricing_example.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_bootstrap.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_config.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_meta_tables.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_package_boundaries.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/msm_pricing/test_valuation.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/packaging/__init__.py +0 -0
- {ms_markets-2.2.10.dev35 → ms_markets-2.2.11.dev36}/tests/packaging/test_dev_release_version.py +0 -0
- {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
|
|
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`
|
|
24
|
-
|
|
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/
|
|
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.
|
|
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.
|
|
231
|
-
Requires-Dist: mainsequence<10,>=9.0.
|
|
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.
|
|
388
|
-
the MetaTables client `mainsequence-metatable>=0.1.
|
|
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.
|
|
504
|
+
- `mainsequence>=9.0.29,<10` for identity, login, Git source context,
|
|
505
505
|
CodeRepository, jobs, and agents
|
|
506
|
-
- `mainsequence-metatable>=0.1.
|
|
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.
|
|
111
|
-
the MetaTables client `mainsequence-metatable>=0.1.
|
|
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.
|
|
227
|
+
- `mainsequence>=9.0.29,<10` for identity, login, Git source context,
|
|
228
228
|
CodeRepository, jobs, and agents
|
|
229
|
-
- `mainsequence-metatable>=0.1.
|
|
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
|
-
`
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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.
|
|
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
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
|
201
|
-
`
|
|
202
|
-
|
|
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.
|
|
4
|
-
the MetaTables client `mainsequence-metatable>=0.1.
|
|
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.
|
|
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
|
|
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
|
|
135
|
-
The migration Job runs as its own workload User
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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.
|
|
114
|
-
`mainsequence>=9.0.
|
|
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
|
|
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
|
|
182
|
-
`
|
|
183
|
-
`mainsequence
|
|
184
|
-
|
|
185
|
-
|
|
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
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
Environment
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
40
|
-
"mainsequence-metatable>=0.1.
|
|
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
|
-
|
|
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
|
|
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]:
|