Summary
Add a first-class generic OpenPath deployment capability for enrolling a bounded set of endpoint devices with one operator-prepared bundle, without personalizing or modifying the signed Windows executable.
This is the operator workflow required after #250 moves Windows enrollment data outside the PE bytes.
Target operator experience:
OpenPath admin/teacher
-> create deployment for N devices
-> download one deployment bundle
-> copy to USB/share
-> run the same signed OpenPath installer on N Windows PCs
-> zero classroom codes typed per PC
-> each PC receives its own durable device credential
The core must remain usable by OpenPath standalone. Downstream wrappers may label a deployment as an aula/classroom deployment in their own UI, but no downstream product concept belongs in this implementation.
Architecture boundary
Per AGENTS.md:
OpenPath owns:
- deployment-grant lifecycle;
- authorization;
- max-enrollment accounting;
- expiry/revocation;
- atomic redemption;
- per-device credential issuance;
- generic bundle/config schema;
- Windows installer consumption of the bundle;
- interactive and silent install contract;
- standalone API/UI;
- readiness/observability/security semantics;
- core canary and Windows E2E.
A wrapper owns only presentation, additional upstream policy and mapping its domain concepts to an OpenPath deployment.
Dependency
Blocked by / designed with: #250.
The final Windows .exe must be a release artifact whose bytes and Authenticode signature do not change per deployment. The deployment bundle carries the short-lived enrollment authority outside the PE.
Target artifact
Conceptually:
openpath-windows-deployment.zip
├── OpenPath-Windows-Setup.exe # immutable signed release artifact
└── openpath-deployment.json # deployment-specific bootstrap reference
The sidecar must contain an opaque deployment reference, not a long-lived device credential and not a ClassroomPath-specific identifier.
Security invariant
One deployment authority may authorize several initial enrollments, but it must never become the durable credential shared by those devices.
deployment grant
-> atomic redemption #1 -> device credential A
-> atomic redemption #2 -> device credential B
-> ...
-> redemption #N -> device credential N
The grant is bounded, expiring and revocable. Every successful device gets a distinct durable identity/credential.
Related
Non-goals
- ClassroomPath-specific classrooms/tenants/schools
- embedding enrollment secrets into the signed
.exe
- one permanent credential shared by multiple endpoints
- unbounded or non-expiring deployment tokens
- making the installer dependent on a wrapper
- replacing normal one-device enrollment where it remains useful
Summary
Add a first-class generic OpenPath deployment capability for enrolling a bounded set of endpoint devices with one operator-prepared bundle, without personalizing or modifying the signed Windows executable.
This is the operator workflow required after #250 moves Windows enrollment data outside the PE bytes.
Target operator experience:
The core must remain usable by OpenPath standalone. Downstream wrappers may label a deployment as an aula/classroom deployment in their own UI, but no downstream product concept belongs in this implementation.
Architecture boundary
Per
AGENTS.md:OpenPath owns:
A wrapper owns only presentation, additional upstream policy and mapping its domain concepts to an OpenPath deployment.
Dependency
Blocked by / designed with: #250.
The final Windows
.exemust be a release artifact whose bytes and Authenticode signature do not change per deployment. The deployment bundle carries the short-lived enrollment authority outside the PE.Target artifact
Conceptually:
The sidecar must contain an opaque deployment reference, not a long-lived device credential and not a ClassroomPath-specific identifier.
Security invariant
One deployment authority may authorize several initial enrollments, but it must never become the durable credential shared by those devices.
The grant is bounded, expiring and revocable. Every successful device gets a distinct durable identity/credential.
Related
Non-goals
.exe