Summary
After #250 and #248 are complete, make the immutable signed installer + external deployment bootstrap the canonical OpenPath Windows installation path and retire the obsolete per-request personalized-EXE lifecycle introduced by earlier work.
This is deliberately a separate cutover/cleanup issue so #250 can deliver the signed immutable release artifact without waiting for the complete multi-device deployment system, and #248 can build against that artifact without requiring the legacy path to disappear in the same change.
Dependencies
Blocked by:
Coordinate final release identity with #251.
Do not start destructive cleanup until both capabilities are proven by OpenPath standalone tests and Windows target-platform evidence.
Target state
OpenPath release
-> one immutable signed OpenPath-Windows-Setup.exe
OpenPath enrollment/deployment API
-> one-device or multi-device deployment authority
-> external bootstrap/bundle
Windows endpoint
-> same signed EXE
-> bootstrap redemption
-> unique durable device credential
No supported runtime request should need to copy a template and mutate PE bytes with applyOverlay().
Ownership
OpenPath remains the sole owner of the generic installer/deployment lifecycle. This issue must not add downstream wrapper concepts.
Cleanup targets
Inventory and retire/rework as appropriate:
- per-request
applyOverlay() generation in windows-offline-installer-artifact.service.ts;
- private storage used only for personalized
.exe artifacts;
- reference persistence/routes that exist only to stream those personalized
.exe files;
- runtime template provisioning/readiness requirements that are obsolete once the immutable signed release artifact is the canonical input;
- personalized-EXE canaries/E2E fixtures superseded by immutable-EXE + deployment-bootstrap coverage;
- API/SPA contracts whose semantics still promise a newly personalized executable on every click.
Do not remove generic primitives still used by deployment-bundle delivery, rollback/provenance, or compatibility windows.
Migration invariant
There must be no long-lived dual authority:
old personalized EXE path = compatibility only
new immutable signed deployment path = canonical
Once the compatibility window ends, repository tests should prevent accidental reintroduction of runtime PE personalization as a supported path.
Related
Non-goals
Summary
After #250 and #248 are complete, make the immutable signed installer + external deployment bootstrap the canonical OpenPath Windows installation path and retire the obsolete per-request personalized-EXE lifecycle introduced by earlier work.
This is deliberately a separate cutover/cleanup issue so #250 can deliver the signed immutable release artifact without waiting for the complete multi-device deployment system, and #248 can build against that artifact without requiring the legacy path to disappear in the same change.
Dependencies
Blocked by:
Coordinate final release identity with #251.
Do not start destructive cleanup until both capabilities are proven by OpenPath standalone tests and Windows target-platform evidence.
Target state
No supported runtime request should need to copy a template and mutate PE bytes with
applyOverlay().Ownership
OpenPath remains the sole owner of the generic installer/deployment lifecycle. This issue must not add downstream wrapper concepts.
Cleanup targets
Inventory and retire/rework as appropriate:
applyOverlay()generation inwindows-offline-installer-artifact.service.ts;.exeartifacts;.exefiles;Do not remove generic primitives still used by deployment-bundle delivery, rollback/provenance, or compatibility windows.
Migration invariant
There must be no long-lived dual authority:
Once the compatibility window ends, repository tests should prevent accidental reintroduction of runtime PE personalization as a supported path.
Related
Non-goals