Skip to content

refactor(windows): consume OpenPath immutable deployment bundles as a thin wrapper #161

Description

@balejosg

Summary

Migrate ClassroomPath to the new canonical OpenPath Windows deployment capability once the fresh OpenPath implementation tickets are complete.

ClassroomPath must behave strictly as a wrapper:

ClassroomPath -> OpenPath

It may provide ClassroomPath-specific presentation, institution/tenant policy and gateway integration, but it must not implement a second generic Windows installer, deployment-grant, bundle, redemption, signing, provenance or per-device credential lifecycle.

This is a fresh implementation ticket. Older ClassroomPath Windows-installer issues may be referenced for historical context only; they are not the implementation contract for this migration.

Dependencies

Blocked by the fresh OpenPath roadmap:

  • OpenPath #250 — immutable Authenticode-signed Windows installer + external bootstrap;
  • OpenPath #248 — generic one/multi-device deployment grants and bundles;
  • OpenPath #249 — OpenPath cutover to the immutable deployment architecture;
  • OpenPath #251 — signed-installer promotion/provenance contract.

Use the final public OpenPath contracts shipped by those issues, not assumptions from the legacy personalized-EXE design.

Target ClassroomPath UX

A ClassroomPath operator should be able to select an aula and prepare a deployment for one or many devices, e.g. 30 PCs, while ClassroomPath delegates the complete generic mechanism to OpenPath.

Conceptually:

ClassroomPath aula UI
  -> request OpenPath deployment for OpenPath classroom/scope
  -> OpenPath creates bounded deployment
  -> ClassroomPath presents protected bundle download
  -> same immutable signed EXE installed on all PCs
  -> OpenPath performs redemption/accounting/device credential issuance
  -> ClassroomPath presents safe progress/status

Ownership

ClassroomPath may own:

  • mapping ClassroomPath domain concepts to the corresponding OpenPath public identifiers;
  • additional tenant/institution authorization before calling OpenPath;
  • wrapper UI/branding/text;
  • proxy/gateway wiring;
  • wrapper-level observability and integration canary.

ClassroomPath must not own:

  • Authenticode signing;
  • immutable installer build/provenance;
  • deployment bearer/reference format;
  • deployment limits/atomic redemption;
  • bundle schema/generation;
  • endpoint bootstrap protocol;
  • per-device credential creation;
  • OpenPath core readiness/canary;
  • Windows runtime behavior.

Historical context only

Previous ClassroomPath installer issues, including #157/#158, may help inventory legacy code and migration hazards, but this ticket is the new implementation authority.

Non-goals

  • modifying OpenPath code from the ClassroomPath repository;
  • maintaining a fallback second generic implementation indefinitely;
  • recreating OpenPath deployment state in ClassroomPath DB;
  • live staging/production deployment without explicit authorization.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions