fix: close round-2 strict-proto config-field gaps (v0.2.3)#13
Merged
Conversation
BMW local smoke against workflow v0.51.5 surfaced two gaps the v0.2.2
sweep missed:
- step.auth_challenge_generate: replaced EmptyConfig with new
AuthChallengeGenerateConfig { signing_secret, ttl_minutes }. BMW passes
both fields in the step's config: block; strict-proto was rejecting them
under the EmptyConfig contract. Handler now falls back to
config.signing_secret and config.ttl_minutes when input lacks them.
- AuthPolicyGateConfig: confirmed all four BMW-supplied fields
(policy_step, signing_secret, tenant_id, required_runtime_keys) are
present and accepted. Added TestAuthPolicyGateConfig_AcceptsAllBMWFields
as exhaustive regression guard.
Also updated .github/fixtures/workflow-compat.yaml to exercise the new
challenge_generate config fields and the existing policy_gate tenant_id
field in the daily compat job.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
My v0.2.3 edit added a 'tenant_id added in v0.2.2' comment block above the already-present tenant_id key from v0.2.2, creating a duplicate-key YAML that strict wfctl validation rejects. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
BMW local smoke against workflow-server v0.51.5 surfaced two gaps the v0.2.2 sweep missed:
step.auth_challenge_generate— replacedEmptyConfigwith newAuthChallengeGenerateConfig { signing_secret, ttl_minutes }. BMW passes both fields in the step'sconfig:block; strict-proto was rejecting them under theEmptyConfigcontract. Handler now falls back toconfig.signing_secretandconfig.ttl_minuteswhen input lacks them.AuthPolicyGateConfig— confirmed all four BMW-supplied fields (policy_step,signing_secret,tenant_id,required_runtime_keys) are present and accepted. AddedTestAuthPolicyGateConfig_AcceptsAllBMWFieldsas exhaustive regression guard.Also updated
.github/fixtures/workflow-compat.yamlto exercise the new challenge_generate config fields and the existing policy_gate tenant_id field in the daily compat job.Files changed
internal/contracts/auth.proto— newAuthChallengeGenerateConfigmessageinternal/contracts/auth.pb.go— regenerated (protoc-gen-go v1.36.11)plugin.contracts.json—step.auth_challenge_generateconfig →AuthChallengeGenerateConfiginternal/plugin.go— runtime contract registry +CreateTypedStepfactory wiringinternal/step_challenge.go— handler accepts config, falls back forsigning_secret+ttl_minutesinternal/plugin_contracts_test.go— updated assertion for new config messageinternal/strict_proto_fields_test.go— 4 new tests (AllBMWFields, AcceptsSigningSecretAndTTL, FallsBackToConfigSigningSecret, FallsBackToConfigTTL).github/fixtures/workflow-compat.yaml— exercise new config fieldsCHANGELOG.md— v0.2.3 entryplugin.json— version bump 0.2.2 → 0.2.3Test plan
go test ./...passes (all tests including 4 new ones)go vet ./...cleango build ./...cleanworkflow-compat.ymlCI green against latestwfctlCo-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com