feat(cms): harden backend export contract #48

Open
moeardent wants to merge 3 commits from feature/medcms-backend-export-contract into dev
Owner

Summary

  • add backend-safe metadata fields to the MedCMS export payload
  • emit tenant-aware public CMS media URLs instead of export-host/raw paths
  • normalize accessTier to public|restricted with legacy reserved input mapped to restricted
  • add normalized events change-feed records while preserving tombstones and siteContextChanges compatibility arrays
  • add export-contract specs and verification coverage

Verification

  • python3 scripts/verify/medcms_export_contract_static_checks.py
  • python3 scripts/verify/medcms_quality_gate_static_checks.py
  • python3 scripts/verify/medcms_ci_governance_static_checks.py
  • python3 scripts/verify/medcms_package_inventory_static_checks.py
  • python3 scripts/verify/medcms_reference_url_static_checks.py
  • python3 scripts/verify/medcms_related_language_static_checks.py
  • python3 scripts/verify/medcms_education_filter_static_checks.py
  • python3 scripts/verify/medcms_domain_context_static_checks.py
  • python3 scripts/verify/medcms_workbench_static_checks.py
  • python3 scripts/verify/medcms_sso_static_checks.py
  • git diff --check

Notes

  • Local PHP lint was not available in this shell; TeamCity Validate must provide PHP lint/Qodana evidence.
  • The untracked docu/staging/backend-sex-at-birth-screening-parity-handover.md file is preserved and not part of this PR.
## Summary - add backend-safe metadata fields to the MedCMS export payload - emit tenant-aware public CMS media URLs instead of export-host/raw paths - normalize `accessTier` to `public|restricted` with legacy `reserved` input mapped to `restricted` - add normalized `events` change-feed records while preserving `tombstones` and `siteContextChanges` compatibility arrays - add export-contract specs and verification coverage ## Verification - `python3 scripts/verify/medcms_export_contract_static_checks.py` - `python3 scripts/verify/medcms_quality_gate_static_checks.py` - `python3 scripts/verify/medcms_ci_governance_static_checks.py` - `python3 scripts/verify/medcms_package_inventory_static_checks.py` - `python3 scripts/verify/medcms_reference_url_static_checks.py` - `python3 scripts/verify/medcms_related_language_static_checks.py` - `python3 scripts/verify/medcms_education_filter_static_checks.py` - `python3 scripts/verify/medcms_domain_context_static_checks.py` - `python3 scripts/verify/medcms_workbench_static_checks.py` - `python3 scripts/verify/medcms_sso_static_checks.py` - `git diff --check` ## Notes - Local PHP lint was not available in this shell; TeamCity Validate must provide PHP lint/Qodana evidence. - The untracked `docu/staging/backend-sex-at-birth-screening-parity-handover.md` file is preserved and not part of this PR. <!-- migrated-from: pull-request Moebiusol/oculus_vita-cms #71 -->
Extends the M2M MedCMS export payload with existing editorial metadata needed by backend mobile catalog/detail DTOs.

Verification: php CLI is not installed in this environment; diff check passed.
Add tenant-aware public media URL generation, normalized export events, canonical restricted access-tier output, and export contract verification coverage.

Human-Sponsor: Cristian Cotosman

Execution-Identity: Moe TheBot Lorand2 <moe.lorand.bot@moebiusol.eu>
Pass public base URL into export item mapping, remove duplicate compatibility key, and clean branch-scan local-variable finding.

Human-Sponsor: Cristian Cotosman

Execution-Identity: Moe TheBot Lorand2 <moe.lorand.bot@moebiusol.eu>
This pull request has changes conflicting with the target branch.
  • libraries/medcms/domain_context.php
  • libraries/medcms/export_contract.php
  • plugins/ajax/medcmsexport/src/Extension/Medcmsexport.php
  • scripts/verify/export_contract.sh
  • scripts/verify/medcms_export_contract_static_checks.py
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/medcms-backend-export-contract:feature/medcms-backend-export-contract
git switch feature/medcms-backend-export-contract
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: moebiusol/oculus_vita-cms#48
No description provided.