feat: Add step.base64_decode pipeline step#195
Merged
Conversation
… base64/data-URI content Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add step.base64_decode for parsing base64 and data-URI content
feat: Add step.base64_decode pipeline step
Feb 27, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new built-in pipeline step type (step.base64_decode) to decode base64 payloads (raw base64 or data-URI), optionally validate MIME type and decoded size, and expose decoded metadata back to the pipeline context.
Changes:
- Implements
Base64DecodeStepwith config parsing, decoding, MIME detection, and optional validations. - Registers the new step type across plugin manifest/factory wiring, schema registries, and
wfctl’s type registry. - Adds a dedicated unit test suite for the new step and helper functions.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| schema/schema.go | Adds step.base64_decode to the engine’s known built-in module type list. |
| schema/module_schema.go | Defines the module schema for step.base64_decode (config fields, inputs/outputs). |
| plugins/pipelinesteps/plugin.go | Registers the step in the pipeline-steps plugin manifest and factory map. |
| module/pipeline_step_base64_decode.go | New step implementation (decode + validate + output metadata). |
| module/pipeline_step_base64_decode_test.go | New unit tests covering formats, validation, and dotted-path resolution. |
| cmd/wfctl/type_registry.go | Adds the new step type to wfctl’s known step registry and config keys list. |
Contributor
|
@copilot apply changes based on the comments in this thread Also fix the failing tests. |
…present, pre-decode size guard Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Contributor
|
@copilot tests are failing |
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Contributor
Author
Fixed in 7a99283. Two issues were causing failures after the main branch merge:
|
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.
module/pipeline_step_base64_decode.gowith Base64DecodeStep implementationmodule/pipeline_step_base64_decode_test.gowith 19 unit testsstep.base64_decodeinplugins/pipelinesteps/plugin.goschema/module_schema.goschema/schema.go(sorted correctly)cmd/wfctl/type_registry.goinput_frompath returnsvalid: false(not error)valid: false(not error)invalid()returns all output keys with zero defaultsmax_size_bytesis setTestKnownModuleTypes_Sorted—step.base64_decodenow in correct sorted position inschema/schema.goTestStepFactoriesandTestPluginLoads— updated expected counts to includestep.base64_decode🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.