Skip to content

Add offline catalog support and preserve enterprise customizations during StartNet#345

Draft
KatsuhiroWatanabe wants to merge 1 commit intoOSDeploy:masterfrom
KatsuhiroWatanabe:opt/managed-catalog-workflow
Draft

Add offline catalog support and preserve enterprise customizations during StartNet#345
KatsuhiroWatanabe wants to merge 1 commit intoOSDeploy:masterfrom
KatsuhiroWatanabe:opt/managed-catalog-workflow

Conversation

@KatsuhiroWatanabe
Copy link
Contributor

Summary

This PR introduces opt‑in capabilities that make OSDCloud more adaptable in enterprise deployment scenarios—without changing the module’s default behavior.
It enables organizations to load offline catalogs, preserve enterprise customizations by controlling module self‑updates, and run post‑StartNet scripts when network connectivity is available.

These enhancements are intentionally scoped, self‑contained, and backward‑compatible.


Why

Enterprise IT teams often maintain their own validated or version‑pinned catalogs and need predictable behavior during deployment.
They may also embed custom StartNet logic or require early‑stage workflow extensions that should not be overwritten by automatic module updates.

This PR isolates a subset of improvements from a broader earlier proposal, keeping the scope narrowly focused on:

  1. Offline catalog enablement
  2. Preservation of enterprise customizations
  3. Controlled post‑StartNet workflow extension

All without altering the default OSDCloud experience.


What’s Included (All Optional)

1. Offline Catalog Loading (Drivers / OS)

  • Scans all non‑C: file system volumes for:
    • OSDCloud\Catalogs\build-driverpacks.xml
    • OSDCloud\Catalogs\CloudOperatingSystems.json
  • If one or more catalogs are found, the last detected catalog is used.
  • Allows enterprise environments to:
    • Supply validated or customized catalogs on removable or secondary media
    • Avoid modifying the module cache
    • Keep catalog behavior deterministic and version‑controlled

2. Preservation of Enterprise Customizations

  • Adds logic to skip automatic OSD module installation/updates when:
    • $Global:SkipOSDModuleInstall = $true
  • Prevents:
    • Overwriting embedded catalogs
    • Replacing enterprise customization logic
    • Accidental version drift during controlled deployment workflows

This maintains a clean separation between enterprise customizations and default module behavior.


3. Controlled Post‑StartNet Script Execution

  • When network connectivity becomes available in WinPE, OSDCloud may call an optional enterprise‑provided script such as DownloadValidatedCatalogs.ps1.
  • Scripts may be discovered under OSDCloud\Config\Scripts\StartNet2\*.ps1.
  • Allows organizations to:
    • Refresh or validate catalogs
    • Run compliance or environment checks

Execution only occurs when both network connectivity and enterprise script presence are confirmed.


Compatibility

  • Fully backward‑compatible
  • All enhancements are opt‑in and do not alter default OSDCloud behavior
  • Existing enterprise customizations remain untouched when skip‑update logic is enabled
  • Offline catalog handling is isolated from all other catalog‑related changes submitted previously

Testing

  • Tested using Start-OSDCloudGUI
  • Verified offline catalog detection on:
    • USB removable media (FAT32/NTFS)
    • Catalog files on enterprise-managed cloud storage
  • Confirmed that $Global:SkipOSDModuleInstall = $true correctly prevents self‑update
  • Validated StartNet2 execution triggers only under correct network conditions
  • Confirmed no regressions in default online‑catalog behavior

Future Considerations (Not part of this PR)

  • Optional explicit catalog‑path parameters
  • Enterprise catalog signing and validation
  • Enhanced logging for connectivity and script execution
  • Additional structured extension points for early‑stage workflows
    ``

@KatsuhiroWatanabe
Copy link
Contributor Author

This PR is for transitional v1 compatibility.
I understand new functionality will be focused on OSDCloud v2 and OSDWorkspace.

@KatsuhiroWatanabe KatsuhiroWatanabe marked this pull request as draft February 5, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant