mirror of
https://github.com/reconurge/flowsint.git
synced 2026-05-07 04:09:49 -05:00
[GH-ISSUE #94] Configurable API-Based Enricher Type [with YAML templates] #756
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @xhzeem on GitHub (Dec 11, 2025).
Original GitHub issue: https://github.com/reconurge/flowsint/issues/94
It would be very helpful to introduce a new category of enrichers that operate through simple, configurable API requests. The idea is to allow users to define an API call using a YAML-based template, including request parameters, variable placeholders, and response-mapping logic that aligns the returned data to a specific type within Flowsint.
This addition would enable the creation of a broad marketplace of web-based API enrichers, significantly simplifying the process of designing and implementing new integrations. Instead of writing custom code, users could quickly assemble enrichers by describing the request/response flow in a declarative format.
From a security standpoint, this feature should be limited to basic, controlled web requests with safe encoding/decoding utilities. The system must prevent any functionality that could introduce remote code execution risks or otherwise compromise the server environment.
@dextmorgn commented on GitHub (Dec 12, 2025):
hey @xhzeem, kind of nuclei like ?
@xhzeem commented on GitHub (Dec 12, 2025):
Yes
Something close to that for API or just extraction kind of Enrichers
@xhzeem commented on GitHub (Jan 25, 2026):
These are key security considerations I wrote from a security engineer’s perspective (with some AI assistance) that should be helpful to keep in mind while implementing this feature.
What to keep (core safety) without over-restricting the feature
Got it — here’s a cleaner summary that keeps the feature flexible and template-driven, but safe by default, without over-restricting things like headers.
Safe-by-default guardrails (without making it too limited)
1) Prevent internal network access (SSRF protection)
2) Keep templates declarative (no code execution surface)
3) Allow custom headers & payloads, but block a tiny set of dangerous ones
Connection,Transfer-Encoding,Proxy-*) and prevent manualHostmismatch.4) Safe auth + secret handling
secret_ref(recommended).5) Abuse/DoS controls that don’t reduce functionality
6) Response parsing and mapping that stays safe
7) Observability + audit trail
Sure — add this as a dedicated guardrail that still keeps the feature powerful.
8) Safe data-type handlers (parse anything into an object, safely)
To let templates consume many response formats (and reuse the parsed object later), support multiple data type handlers with strict “safe parsing” rules:
json,urlencoded,csv,xml,html, maybeyaml(careful).Critical security rules:
XML/HTML:
YAML (if supported):
All formats:
This way, you can safely say: “any response type can be parsed into an object for later use,” while keeping the system protected from XXE, entity expansion, parser bombs, and unsafe deserialization.
Minimal “v1” philosophy
Flexible requests + flexible mapping, but with strong boundaries on:
If you share your current draft YAML fields (even just the top-level keys), I can suggest a compact schema that matches this philosophy and is easy to validate.
@jonathafernandez85-tech commented on GitHub (Feb 17, 2026):
servicios@enviospremiuncorreos.es