Skip to content

Conversation

@mamoreau-devolutions
Copy link
Contributor

Replaces the legacy flat key-value productinfo.htm format with a structured JSON format that provides better organization and extensibility. The new format supports multiple release channels (Current, Beta, Update, Stable) and includes explicit architecture and file type metadata.

Changes:

  • Update productinfo URL from .htm to .json endpoint
  • Rewrite parser using serde for JSON deserialization
  • Add architecture detection (x64/arm64) with x64 fallback
  • Implement file selection by architecture and type (MSI)
  • Simplify product IDs to match JSON structure (Gateway, HubServices)
  • Update PowerShell updater script to parse JSON instead of regex
  • Convert test fixtures to JSON format with multi-arch support
  • Update error messages to reference .json format

The parser now uses the 'Current' channel and automatically selects the appropriate MSI file based on the target platform architecture.

Replaces the legacy flat key-value productinfo.htm format with a structured
JSON format that provides better organization and extensibility. The new
format supports multiple release channels (Current, Beta, Update, Stable)
and includes explicit architecture and file type metadata.

Changes:
- Update productinfo URL from .htm to .json endpoint
- Rewrite parser using serde for JSON deserialization
- Add architecture detection (x64/arm64) with x64 fallback
- Implement file selection by architecture and type (MSI)
- Simplify product IDs to match JSON structure (Gateway, HubServices)
- Update PowerShell updater script to parse JSON instead of regex
- Convert test fixtures to JSON format with multi-arch support
- Update error messages to reference .json format

The parser now uses the 'Current' channel and automatically selects the
appropriate MSI file based on the target platform architecture.
@github-actions
Copy link

Let maintainers know that an action is required on their side

  • Add the label release-required Please cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module) when you request a maintainer to cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)

  • Add the label release-blocker Follow-up is required before cutting a new release if a follow-up is required before cutting a new release

  • Add the label publish-required Please publish libraries (`Devolutions.Gateway.Utils`, OpenAPI clients, etc) when you request a maintainer to publish libraries (Devolutions.Gateway.Utils, OpenAPI clients, etc.)

  • Add the label publish-blocker Follow-up is required before publishing libraries if a follow-up is required before publishing libraries

@CBenoit CBenoit changed the title refactor(agent): migrate from productinfo.htm to productinfo.json format feat(agent): migrate from productinfo.htm to productinfo.json format Nov 27, 2025
Copy link
Member

@CBenoit CBenoit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@CBenoit CBenoit merged commit aaf5156 into master Nov 27, 2025
42 checks passed
@CBenoit CBenoit deleted the use-productinfo-json branch November 27, 2025 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants