bounded-https

Bounded public HTTPS fetch with configurable byte limits, deadlines and allowed targets

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.2.0
Author: nova969

Documentation

Bounded HTTPS Fetch

Configurable bounded public HTTPS fetch for self-hosted n8n.
Early release for self-hosted n8n. Transport and node loading are tested locally;
acceptance on the intended live server is still pending.

Sources and security

Built-in choices: Binance time, metadata for BTCEUR/ETHEUR/SOLEUR/XRPEUR/ADAEUR,
hourly candles for those symbols, Bitcoin Core, Bitcoin Optech and Fed monetary.
Additional Allowed HTTPS Target accepts a URL only when it is also listed in
Options → Additional Allowed HTTPS URLs. List one exact complete URL per line.
Matching normalizes the URL but includes its path and query; no wildcards.

HTTPS port443, no URL credentials or fragments, and public-only DNS answers are
mandatory. One validated IP is pinned; TLS certificates, hostname validation and
SNI remain enabled. Environment proxies are not used. TLS/DNS protections cannot
be disabled. Provider state, retries, parsing and storage belong to consuming workflows.

Options

Setting Default Behavior
Maximum Response Size (MiB) 2 Positive whole MiB, for example10; streaming byte limit.
Total Timeout (Seconds) 20 Positive finite milliseconds-precise budget for DNS, TLS, headers, body and all redirects.
Additional Allowed HTTPS URLs Empty One exact additional target per line.
Follow Redirects Off Every hop must be explicitly allowed and pass fresh DNS/TLS checks.
Maximum Redirects 3 when enabled Integer1–20; deadline never resets.
HTTP Status Handling Return All Statuses Preserve final status and selected headers for downstream policy.
Accepted HTTP Status Codes 200 Require Selected Statuses accepts comma-separated codes such as200,201,304; other final statuses throw.

Size/deadline cannot be disabled: zero, infinity and invalid values fail before
network access. Budgets must fit Node's safe buffer/timer ranges. Existing node
configurations without options retain2MiB/20seconds/no redirects.
Limits apply per node; consuming workflows define their own collection policy.

Output

sourceId, statusCode, selected headers, receivedAt (UTC), bodyBase64, bodyBytes,
sha256, redirectCount and policy with effective limits/settings.
Policy diagnostics omit URLs and input items.

Return All Statuses preserves the original behavior: read200 bodies; other
statuses return an empty body and close the connection. Require Selected Statuses
reads accepted2xx bodies and returns accepted other statuses with empty bodies;
unaccepted final statuses throw. Enabled redirect handling precedes final-status
selection. Missing/disallowed locations or excessive hops fail.

Only complete identity-encoded bodies are accepted. Declared Content-Length and
streaming overflow are checked. SHA256 hashes exact returned bytes, including
an empty body for a discarded provider error; decimal strings are not parsed.
Exactly one input item is accepted. Use Return All Statuses when downstream
workflows need Retry-After, durable429/418 cooldowns and403/451 manual blocks.

Installation and release

Intended route: Settings → Community nodes → Install an approved npm name/version.
Official guide.

Licensed under MIT; see LICENSE. This license covers this node package only.
Package: n8n-nodes-bounded-https, published by nova969. npm publication
does not imply n8n verification or live compatibility. Manual custom-directory
copying is not the intended route. Future rollback: restore consumer workflows
while inactive, then uninstall via Community nodes; preserve data and unrelated
workflows. Activation is separate.

Development

Node>=22, no runtime dependencies; CommonJS source is under dist/.
npm test uses local fixtures only. TLS tests need OpenSSL and temporary local
certificates. Run npm pack --ignore-scripts and inspect the actual archive.

Expected files: package.json, README.md, LICENSE, dist/fetch.cjs and
dist/nodes/BoundedHttpsFetch/BoundedHttpsFetch.node.js. Exclude tests, handoff/audit notes,
exports, logs, .env and .npmrc. Re-audit every changed release.

Discussion