Zum Inhalt springen
#0891
ExecCurl

Every outbound request passes a reviewer before it leaves

Every scraper, sync job and integration in the container makes its outbound calls through hoody-curl: one POST /api/v1/curl/request carrying a url, headers, and a body. That makes outbound traffic one service, and one service can be hooked.

The hook rule matches POST /api/v1/curl/request* and dispatches to a script in your hoody-exec. The script reads the buffered req.rawBody, parses the request the caller wants sent, and checks it: destination host on the allowlist, nothing card-shaped or key-shaped in data or json. Pass, and it calls metadata.hook.forward(). Fail, and it answers 403 with the reason; the request never leaves. Callers use mode: async, so the hook returns the job_id at once and the transfer runs outside the hook's timeout.

Nothing in the scrapers changed. The exit got a reader.

Data-loss prevention is a script in front of the request service.