Skip to content

fix: add auth.m2m and all missing built-in plugin types to schema registry#348

Merged
intel352 merged 4 commits intomainfrom
copilot/fix-unknown-module-type-authm2m
Mar 18, 2026
Merged

fix: add auth.m2m and all missing built-in plugin types to schema registry#348
intel352 merged 4 commits intomainfrom
copilot/fix-unknown-module-type-authm2m

Conversation

Copy link
Contributor

Copilot AI commented Mar 17, 2026

wfctl validate reported unknown module type "auth.m2m" (and many others) because schema.coreModuleTypes — the hardcoded list used by schema.ValidateConfig() — was missing types registered at runtime by built-in plugins. The workaround was --skip-unknown-types.

Changes

schema/schema.go

  • Added 36 missing module types (auth.m2m, auth.oauth2, auth.token-blacklist, actor.pool/system, nosql.*, platform.*, gitlab.*, cache.redis, security.field-protection, security.scanner, storage.artifact, tracing.propagation, etc.)
  • Added 88 missing step types (step.git_*, step.gitlab_*, step.trace_*, step.k8s_*, step.ecs_*, step.iac_*, step.policy_*, step.actor_*, step.marketplace_*, etc.)

schema/module_schema.go + schema/step_schema_builtins.go

  • Added registerBuiltins() entries for all new types, satisfying the existing TestModuleSchemaRegistry_RegisterAndGet / TestCoreStepTypesHaveSchemas contracts.

cmd/wfctl/type_registry.go

  • Added missing module types to wfctl's KnownModuleTypes() registry (used for help/discovery), including all platform.*, actor.*, iac.state, argo.workflows, security.*.

Contract tests (prevent recurrence)

  • consistency_test.go: New sub-test loads all DefaultPlugins() via PluginLoader and asserts every type from ModuleFactories() / StepFactories() appears in schema.KnownModuleTypes(). This is the test that would have caught the auth.m2m gap at authoring time.
  • cmd/wfctl/type_registry_test.go: TestKnownModuleTypesCoverAllPlugins — mirrors the existing TestKnownStepTypesCoverAllPlugins pattern for module types.
Original prompt

This section details on the original issue you should resolve

<issue_title>wfctl validate: unknown module type "auth.m2m" — missing from schema registry</issue_title>
<issue_description>## Summary

wfctl validate (v0.3.47) reports auth.m2m as an unknown module type, even though it is a core engine type used for OAuth2 M2M authentication.

$ wfctl validate --plugin-dir plugins workflow/api/base.yaml
error: 1 config(s) failed validation

modules[3].type: unknown module type "auth.m2m"

Context

auth.m2m is registered at runtime in the engine (used since v0.3.10 for client_credentials, JWT-bearer grants, token introspection/revocation, JWKS, trusted keys, etc.), but it is not in coreModuleTypes or the schema registry that wfctl uses for validation.

This is the same class of issue as #305 (step types missing from wfctl), which was resolved in v0.3.36.

Expected behavior

wfctl validate should recognize auth.m2m as a valid module type.

Workaround

wfctl validate --skip-unknown-types passes validation.</issue_description>

<agent_instructions>We're supposed to have a test that ensures a contract failure will occur when modules/steps types, etc, are missing from wfctl, validation, mcp or from the engine. Make sure we have a test that catches this issue automatically, and then add all missing modules/step types.</agent_instructions>

Comments on the Issue (you are @copilot in this section)


📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Copilot AI and others added 2 commits March 17, 2026 16:00
…y + contract tests

Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix wfctl validate error for unknown module type auth.m2m fix: add auth.m2m and all missing built-in plugin types to schema registry Mar 17, 2026
Copilot AI requested a review from intel352 March 17, 2026 16:01
@intel352 intel352 marked this pull request as ready for review March 17, 2026 18:19
Copilot AI review requested due to automatic review settings March 17, 2026 18:19
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to eliminate wfctl validate false-negatives for built-in plugin module/step types by expanding the schema registry’s hardcoded known-type lists and adding contract tests to prevent future drift between built-in plugins and schema/wfctl registries.

Changes:

  • Expanded schema.coreModuleTypes to include module/step types that are registered at runtime by built-in plugins.
  • Added built-in registrations to the module/step schema registries so existing registry-contract tests pass.
  • Added contract tests to assert that types exposed by DefaultPlugins() are covered by schema.KnownModuleTypes() and wfctl’s KnownModuleTypes().

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
schema/step_schema_builtins.go Adds many built-in StepSchema entries for previously missing step types.
schema/schema.go Expands coreModuleTypes with missing built-in plugin module + step types.
schema/module_schema.go Adds built-in ModuleSchema entries for newly included module types and registers step types as module types.
consistency_test.go Adds contract test ensuring schema-known types cover built-in plugin factories.
cmd/wfctl/type_registry_test.go Adds contract test ensuring wfctl-known module types cover built-in plugin module factories.
cmd/wfctl/type_registry.go Extends wfctl’s known module type registry for help/discovery.
.gitignore Ignores cmd/wfctl/.wfctl.yaml.

Comment on lines +1396 to +1402
r.Register(&StepSchema{
Type: "step.apigw_apply",
Plugin: "platform",
Description: "Applies (provisions or updates) an API gateway configuration.",
ConfigFields: []ConfigFieldDef{
{Key: "module", Type: FieldTypeString, Description: "Name of the platform.apigateway module", Required: true},
},
@github-actions
Copy link

github-actions bot commented Mar 17, 2026

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:244: parsing iteration count: invalid syntax
baseline-bench.txt:302834: parsing iteration count: invalid syntax
baseline-bench.txt:611013: parsing iteration count: invalid syntax
baseline-bench.txt:899428: parsing iteration count: invalid syntax
baseline-bench.txt:1193045: parsing iteration count: invalid syntax
baseline-bench.txt:1493583: parsing iteration count: invalid syntax
benchmark-results.txt:244: parsing iteration count: invalid syntax
benchmark-results.txt:297362: parsing iteration count: invalid syntax
benchmark-results.txt:592920: parsing iteration count: invalid syntax
benchmark-results.txt:912847: parsing iteration count: invalid syntax
benchmark-results.txt:1203227: parsing iteration count: invalid syntax
benchmark-results.txt:1524153: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │       benchmark-results.txt        │
                            │       sec/op       │    sec/op     vs base              │
InterpreterCreation-4               9.289m ± 68%   7.440m ± 59%       ~ (p=0.937 n=6)
ComponentLoad-4                     3.469m ±  5%   3.456m ±  5%       ~ (p=0.589 n=6)
ComponentExecute-4                  2.013µ ±  3%   2.038µ ±  2%       ~ (p=0.677 n=6)
PoolContention/workers-1-4          1.095µ ±  1%   1.090µ ±  2%       ~ (p=0.589 n=6)
PoolContention/workers-2-4          1.084µ ±  3%   1.091µ ±  3%       ~ (p=0.310 n=6)
PoolContention/workers-4-4          1.088µ ±  1%   1.089µ ±  1%       ~ (p=0.621 n=6)
PoolContention/workers-8-4          1.093µ ±  1%   1.095µ ±  4%       ~ (p=0.329 n=6)
PoolContention/workers-16-4         1.092µ ±  1%   1.095µ ±  2%       ~ (p=0.457 n=6)
ComponentLifecycle-4                3.446m ±  1%   3.513m ±  1%  +1.94% (p=0.002 n=6)
SourceValidation-4                  2.313µ ±  3%   2.305µ ±  0%       ~ (p=0.699 n=6)
RegistryConcurrent-4                793.9n ±  3%   774.6n ±  8%       ~ (p=0.240 n=6)
LoaderLoadFromString-4              3.473m ±  0%   3.514m ±  1%  +1.17% (p=0.002 n=6)
geomean                             18.98µ         18.67µ        -1.67%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               1.944Mi ± 0%   1.944Mi ± 0%       ~ (p=0.859 n=6)
ComponentLoad-4                     2.097Mi ± 0%   2.097Mi ± 0%       ~ (p=0.420 n=6)
ComponentExecute-4                  1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4         1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                2.099Mi ± 0%   2.099Mi ± 0%       ~ (p=0.861 n=6)
SourceValidation-4                  1.984Ki ± 0%   1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                1.133Ki ± 0%   1.133Ki ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4              2.099Mi ± 0%   2.099Mi ± 0%       ~ (p=0.197 n=6)
geomean                             15.05Ki        15.05Ki       +0.00%
¹ all samples are equal

                            │ baseline-bench.txt │        benchmark-results.txt        │
                            │     allocs/op      │  allocs/op   vs base                │
InterpreterCreation-4                15.09k ± 0%   15.09k ± 0%       ~ (p=1.000 n=6) ¹
ComponentLoad-4                      17.43k ± 0%   17.43k ± 0%       ~ (p=1.000 n=6)
ComponentExecute-4                    25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4           25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                 17.48k ± 0%   17.48k ± 0%       ~ (p=1.000 n=6) ¹
SourceValidation-4                    32.00 ± 0%    32.00 ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                  2.000 ± 0%    2.000 ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4               17.47k ± 0%   17.47k ± 0%       ~ (p=1.000 n=6) ¹
geomean                               181.2         181.2       +0.00%
¹ all samples are equal

pkg: github.com/GoCodeAlone/workflow/middleware
                                  │ baseline-bench.txt │       benchmark-results.txt       │
                                  │       sec/op       │   sec/op     vs base              │
CircuitBreakerDetection-4                  287.7n ± 3%   286.3n ± 6%       ~ (p=0.286 n=6)
CircuitBreakerExecution_Success-4          22.52n ± 0%   22.49n ± 0%       ~ (p=0.461 n=6)
CircuitBreakerExecution_Failure-4          65.39n ± 0%   65.42n ± 0%       ~ (p=0.582 n=6)
geomean                                    75.10n        74.97n       -0.17%

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │        B/op        │    B/op     vs base                │
CircuitBreakerDetection-4                 144.0 ± 0%     144.0 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │     allocs/op      │ allocs/op   vs base                │
CircuitBreakerDetection-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │       sec/op       │    sec/op     vs base              │
JQTransform_Simple-4                     899.6n ± 23%   871.9n ± 28%       ~ (p=0.240 n=6)
JQTransform_ObjectConstruction-4         1.479µ ±  1%   1.461µ ±  1%  -1.18% (p=0.045 n=6)
JQTransform_ArraySelect-4                3.366µ ±  2%   3.369µ ±  0%       ~ (p=1.000 n=6)
JQTransform_Complex-4                    38.60µ ±  1%   38.26µ ±  1%       ~ (p=0.065 n=6)
JQTransform_Throughput-4                 1.805µ ±  2%   1.801µ ±  1%       ~ (p=0.139 n=6)
SSEPublishDelivery-4                     68.90n ±  0%   66.69n ±  1%  -3.20% (p=0.002 n=6)
geomean                                  1.667µ         1.644µ        -1.43%

                                 │ baseline-bench.txt │        benchmark-results.txt         │
                                 │        B/op        │     B/op      vs base                │
JQTransform_Simple-4                   1.273Ki ± 0%     1.273Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4       1.773Ki ± 0%     1.773Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4              2.625Ki ± 0%     2.625Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                  16.22Ki ± 0%     16.22Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4               1.984Ki ± 0%     1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                 +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │     allocs/op      │ allocs/op   vs base                │
JQTransform_Simple-4                     10.00 ± 0%     10.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4         15.00 ± 0%     15.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4                30.00 ± 0%     30.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                    324.0 ± 0%     324.0 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4                 17.00 ± 0%     17.00 ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
                                    │ baseline-bench.txt │       benchmark-results.txt       │
                                    │       sec/op       │   sec/op     vs base              │
SchemaValidation_Simple-4                    1.114µ ± 4%   1.109µ ± 3%       ~ (p=0.485 n=6)
SchemaValidation_AllFields-4                 1.693µ ± 3%   1.681µ ± 4%       ~ (p=1.000 n=6)
SchemaValidation_FormatValidation-4          1.601µ ± 1%   1.594µ ± 2%       ~ (p=0.784 n=6)
SchemaValidation_ManySchemas-4               1.827µ ± 2%   1.805µ ± 2%       ~ (p=0.132 n=6)
geomean                                      1.532µ        1.522µ       -0.70%

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │        B/op        │    B/op     vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │     allocs/op      │ allocs/op   vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │       sec/op       │    sec/op     vs base               │
EventStoreAppend_InMemory-4                1.320µ ± 18%   1.188µ ±  9%        ~ (p=0.093 n=6)
EventStoreAppend_SQLite-4                  1.390m ± 10%   1.362m ±  4%        ~ (p=0.394 n=6)
GetTimeline_InMemory/events-10-4           15.49µ ±  5%   13.75µ ±  3%  -11.21% (p=0.002 n=6)
GetTimeline_InMemory/events-50-4           84.87µ ±  3%   75.73µ ± 18%  -10.78% (p=0.002 n=6)
GetTimeline_InMemory/events-100-4          134.3µ ±  1%   124.3µ ±  1%   -7.43% (p=0.002 n=6)
GetTimeline_InMemory/events-500-4          682.3µ ±  1%   637.3µ ±  1%   -6.59% (p=0.002 n=6)
GetTimeline_InMemory/events-1000-4         1.391m ±  1%   1.307m ±  1%   -6.04% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4             114.5µ ±  0%   110.4µ ±  2%   -3.60% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             266.1µ ±  0%   251.3µ ±  0%   -5.57% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            447.3µ ±  0%   423.7µ ±  5%   -5.29% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4            1.899m ±  2%   1.788m ±  2%   -5.83% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4           3.683m ±  3%   3.483m ±  6%   -5.43% (p=0.041 n=6)
geomean                                    235.6µ         219.9µ         -6.68%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                 776.5 ± 10%     790.5 ± 8%       ~ (p=0.981 n=6)
EventStoreAppend_SQLite-4                 1.985Ki ±  1%   1.984Ki ± 1%       ~ (p=0.613 n=6)
GetTimeline_InMemory/events-10-4          7.953Ki ±  0%   7.953Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4          46.62Ki ±  0%   46.62Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4         94.48Ki ±  0%   94.48Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4         472.8Ki ±  0%   472.8Ki ± 0%       ~ (p=0.455 n=6)
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%   944.3Ki ± 0%       ~ (p=0.141 n=6)
GetTimeline_SQLite/events-10-4            16.74Ki ±  0%   16.74Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4            87.14Ki ±  0%   87.14Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4           175.4Ki ±  0%   175.4Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4           846.1Ki ±  0%   846.1Ki ± 0%  -0.00% (p=0.022 n=6)
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%   1.639Mi ± 0%       ~ (p=0.177 n=6)
geomean                                   67.25Ki         67.35Ki       +0.14%
¹ all samples are equal

                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │     allocs/op      │  allocs/op   vs base                │
EventStoreAppend_InMemory-4                  7.000 ± 0%    7.000 ± 0%       ~ (p=1.000 n=6) ¹
EventStoreAppend_SQLite-4                    53.00 ± 0%    53.00 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-10-4             125.0 ± 0%    125.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4             653.0 ± 0%    653.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4           1.306k ± 0%   1.306k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4           6.514k ± 0%   6.514k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-1000-4          13.02k ± 0%   13.02k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-10-4               382.0 ± 0%    382.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.852k ± 0%   1.852k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             3.681k ± 0%   3.681k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             18.54k ± 0%   18.54k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            37.29k ± 0%   37.29k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.162k        1.162k       +0.00%
¹ all samples are equal

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

@intel352
Copy link
Contributor

@copilot apply changes based on the comments in this thread

Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 17, 2026

@copilot apply changes based on the comments in this thread

Fixed in bcac0aa. The config field keys in the newly added platform/storage/cicd step schemas now match their step factory implementations:

  • apigw_*: modulegateway
  • app_*: moduleapp
  • argo_*: moduleservice, plus corrected step-specific fields (workflow_run instead of name/namespace for delete/logs/status; workflow_name/steps instead of template/namespace/parameters for submit; removed unused namespace from list)
  • artifact_*: modulestore, idkey, destinationdest, pathsource
  • codebuild_*: moduleproject
  • dns_*: modulezone
  • do_*: moduleapp
  • ecs_*: moduleservice
  • iac_*: moduleplatform + added resource_id, state_store (and config for drift_detect)
  • k8s_*: modulecluster
  • network_*: modulenetwork
  • nosql_delete: modulestore
  • scaling_*: modulescaling
  • secret_rotate: moduleprovider

@intel352 intel352 merged commit aa05f79 into main Mar 18, 2026
15 checks passed
@intel352 intel352 deleted the copilot/fix-unknown-module-type-authm2m branch March 18, 2026 00:39
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.

wfctl validate: unknown module type "auth.m2m" — missing from schema registry

3 participants