gchq / gchq/CyberChef

Feature request: Allow recipe pipeline to work on 'JSON' data instead of strings

Open
#1,987 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
JavaScript
Stars
35.8k
Forks
4.1k
Avg merge
2d 26m
Merged PRs (30d)
33

Description

**Is your feature request related to a problem? Please describe.**
While CyberChef is a very powerful tool, operations are working on strings. For certain problems that requires trying to interpret the string, for instance with regular expressions (Subsection).

An example use case I had, was that I needed to base64 decode part of a URI query parameter, using split to split the value.

**Describe the solution you'd like**
It would be very powerful if certain operations can optionally work on structured data. In the title I've mentioned 'JSON', altough that is more intended as a processing model than literal JSON.

For instance, ParseURL could have an option to return structured data instead of a string. Subsection could than select its target based on a JSON path instead of a regular expression.

All this would probably require operations to have a bit more meta-data and configuration to specify if they can accept strings and/or structured data and if they can produce string and/or structured data. I do think this would make CyberChef even more powerful.

**Additional context**
With the above changes, the following issues would probably be easily solvable:
https://github.com/gchq/CyberChef/issues/1820
https://github.com/gchq/CyberChef/issues/1756

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Start by mapping how recipe operations declare and pass their inputs and outputs, then assess structured-data handling, ParseURL results, and JSON-path selection. Done would require a defined, tested design for compatible operations and conversions.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
data, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.