Merge 2.0.1 to main - #18
Merged
Merged
Conversation
* ADO 84076: Apply template parameter defaults when Command omits them Enrollment against a template that was added but never saved arrives with the plugin's declared template parameters absent from ProductParameters, because Command does not populate a template's parameter collection with the annotation defaults until the template is saved. Previously this failed enrollment (ValidityPeriod/ValidityUnits threw ArgumentException; RenewalDays returned a failure result), matching the "given key was not present in the dictionary" class of bug reported in 81803. Add RequestManager.ResolveTemplateParameter, which returns the value supplied by Command or falls back to the DefaultValue declared in GetTemplateParameterAnnotations(). Use it for ValidityPeriod, ValidityUnits, and RenewalDays so enrollment succeeds against an unsaved template using the same defaults the annotations advertise. Only a parameter with neither a supplied value nor a declared default remains an error. * Target 26.2 gateway framework and align IAnyCAPlugin to 3.3.0 Update gateway_framework to 26.2 in integration-manifest.json and bump Keyfactor.AnyGateway.IAnyCAPlugin from 3.0.0 to 3.3.0, matching the versions used by the cscglobal and sslstore plugins on the 26.2 framework. * Update generated docs * Upgrade starter workflow to starter.yml@v5 Bump the Keyfactor bootstrap workflow from starter.yml@v3 to @v5, matching the cscglobal and sslstore plugins. Adds the Command connection inputs (command_token_url, command_hostname, command_base_api_path) and the entra / command client secrets required by v5, and drops the obsolete APPROVE_README_PUSH secret. * docs: auto-generate README and documentation [skip ci] * Add unit test project with coverage for RequestManager Add HydrantCAProxy.Tests (xUnit) and wire it into the solution. Covers the ADO 84076 template-parameter-default fix (ResolveTemplateParameter and its wiring through GetEnrollmentRequest) plus the previously untested RequestManager surface: revocation-reason mapping (including reason 0), status mapping, renewal/enrollment request building, SAN construction, certificate list requests, and enrollment result mapping. 38 tests. --------- Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The functional changes are coherent and tested, with only minor documentation corrections noted.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Updates the plugin for Gateway 26.2 and improves enrollment reliability.
Changes:
- Applies annotation defaults for missing template parameters.
- Correctly decodes Base64 certificates during renewal.
- Adds tests and updates framework, workflow, and installation metadata.
| File | Description |
|---|---|
README.md |
Updates compatibility and .NET 10 installation guidance. |
integration-manifest.json |
Targets Gateway framework 26.2. |
HydrantIdCAProxy.sln |
Adds the test project and build configurations. |
HydrantCAProxy/RequestManager.cs |
Adds template-parameter default resolution. |
HydrantCAProxy/HydrantIdCAPlugin.csproj |
Upgrades the AnyCA plugin dependency. |
HydrantCAProxy/HydrantIdCAPlugin.cs |
Fixes certificate decoding and renewal defaults. |
HydrantCAProxy.Tests/RequestManagerTests.cs |
Adds request-manager coverage. |
HydrantCAProxy.Tests/HydrantCAProxy.Tests.csproj |
Defines the xUnit test project. |
.github/workflows/keyfactor-starter-workflow.yml |
Upgrades the reusable workflow and credentials. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| } | ||
|
|
||
| [Theory] | ||
| [InlineData(2u)] // certificateHold — not supported |
| 2. ### Template (Product) Configuration | ||
|
|
||
| Each certificate template (policy) discovered from HydrantId requires configuration for enrollment: | ||
| Each certificate template (policy) discovered from HydrantId requires configuration for enrollment: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Merge release-2.0 to main - Automated PR