Loading
Add MFE vendor pin file and reader
What does this MR do and why?
Adds the committed MFE version pin file and its reader — the first part of the registry-direct micro-frontend (MFE) delivery series (see below for the full picture).
vendor/mfe.ymlpins each MFE app as{name, version, sha}, whereshais the SHA256 of the app's registry version manifest ({registry_url}/{name}/{version}/manifest.json) — the same value the registry app index publishes asversions[].checksum. The file has lockfile semantics and is seeded with the real publishedduo_chat 0.4.0.Gitlab::Mfe::VendorFileparses and validates the pins: name/semver/sha format checks, duplicate-pin rejection, and actionableInvalidEntryErrors for every malformed-input case (non-map root, non-listapps, non-map entries, unreadable or syntactically broken file). Entries are memoized and deep-frozen (structs, array, and strings) so no consumer can corrupt the shared pin data, and a no-stub smoke test guards the committed file itself against hand-editing mistakes.
Nothing is wired into any runtime or build path yet — this is dead code until the final MR of the stack lands, which is the safety guard for the whole series.
The series
GitLab-hosted micro-frontend apps are pinned to exact versions and baked into release assets after byte-level verification against the MFE registry (demo registry: https://gitlab-mfe-registry-demo.storage.googleapis.com). The work is split into five small stacked MRs, merged bottom-up:
| # | MR | Content |
|---|---|---|
| 1 | !249067 (merged) | Vendor pin file and reader (this MR) |
| 2 | !249068 (closed) | Registry version manifest contract |
| 3 | !249069 (closed) | Baked manifest writer/reader |
| 4 | !249070 (closed) | Verified bake orchestrator |
| 5 | !249071 (closed) | Rake task and asset-compile wiring (the integration flip) |
Related to #605798 (closed) (MFE Phase 1: verified delivery foundation).
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.
Edited by Illya Klymov