@melra/http-runtime 0.3.0-alpha.14 → 0.3.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAElD,OAAO,CACX,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsLpC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,26 @@ import { request as httpRequest } from "node:http";
|
|
|
4
4
|
import { request as httpsRequest } from "node:https";
|
|
5
5
|
import { outcomeUnknown } from "@melra/protocol";
|
|
6
6
|
import { assertSafeDestination, classifyOperation, } from "@melra/policy-core";
|
|
7
|
+
const REDACTED_CREDENTIAL = "[REDACTED_CREDENTIAL]";
|
|
8
|
+
/**
|
|
9
|
+
* `text` with every brokered value the far end echoed replaced. Exact matches
|
|
10
|
+
* only: a credential echoed transformed (encoded, masked, split) is not caught.
|
|
11
|
+
*/
|
|
12
|
+
function scrubbed(text, { headers, secrets }, cut) {
|
|
13
|
+
let out = text;
|
|
14
|
+
// Longest first, so a whole header value goes as one marker.
|
|
15
|
+
for (const value of [...Object.values(headers), ...secrets].sort((a, b) => b.length - a.length)) {
|
|
16
|
+
out = out.replaceAll(value, REDACTED_CREDENTIAL);
|
|
17
|
+
}
|
|
18
|
+
if (!cut || secrets.length === 0)
|
|
19
|
+
return out;
|
|
20
|
+
// A body cut at the size cap can end partway through a secret, so its end
|
|
21
|
+
// goes whatever it holds. Deciding by whether it looks like the start of one
|
|
22
|
+
// would tell the caller something about the secret. The whole length of the
|
|
23
|
+
// longest; the broker passes only printable ASCII, so a character is a byte.
|
|
24
|
+
const tail = Math.max(...secrets.map((secret) => secret.length));
|
|
25
|
+
return `${out.slice(0, Math.max(0, out.length - tail))}${REDACTED_CREDENTIAL}`;
|
|
26
|
+
}
|
|
7
27
|
/**
|
|
8
28
|
* One governed HTTP call.
|
|
9
29
|
*
|
|
@@ -83,14 +103,19 @@ export class HttpRuntime {
|
|
|
83
103
|
let bytes = 0;
|
|
84
104
|
let truncated = false;
|
|
85
105
|
response.on("data", (chunk) => {
|
|
86
|
-
|
|
87
|
-
if (
|
|
106
|
+
const room = operation.maxResponseBytes - bytes;
|
|
107
|
+
if (chunk.length > room) {
|
|
88
108
|
// Stop reading rather than buffering an unbounded body into the
|
|
89
|
-
// host's heap. What arrived is still reported, flagged
|
|
109
|
+
// host's heap. What arrived is still reported, flagged, up to the
|
|
110
|
+
// cap: the chunk that crosses it is cut there, not dropped, or a
|
|
111
|
+
// body that arrives in one read came back empty.
|
|
112
|
+
chunks.push(chunk.subarray(0, room));
|
|
113
|
+
bytes += room;
|
|
90
114
|
truncated = true;
|
|
91
115
|
response.destroy();
|
|
92
116
|
return;
|
|
93
117
|
}
|
|
118
|
+
bytes += chunk.length;
|
|
94
119
|
chunks.push(chunk);
|
|
95
120
|
});
|
|
96
121
|
const finish = () => {
|
|
@@ -103,6 +128,25 @@ export class HttpRuntime {
|
|
|
103
128
|
return;
|
|
104
129
|
}
|
|
105
130
|
const status = response.statusCode ?? 0;
|
|
131
|
+
// A provider can echo the credential it was sent, in an error, a
|
|
132
|
+
// debug header or the reason phrase. The caller, the verifier and
|
|
133
|
+
// every stored copy get what follows, so it goes here, once.
|
|
134
|
+
let redacted = false;
|
|
135
|
+
const scrub = (text, cut = false) => {
|
|
136
|
+
if (brokered === undefined)
|
|
137
|
+
return text;
|
|
138
|
+
const out = scrubbed(text, brokered, cut);
|
|
139
|
+
// A cut body always counts, whatever its end held.
|
|
140
|
+
if (out !== text || (cut && brokered.secrets.length > 0))
|
|
141
|
+
redacted = true;
|
|
142
|
+
return out;
|
|
143
|
+
};
|
|
144
|
+
const statusText = scrub(response.statusMessage ?? "");
|
|
145
|
+
const headers = Object.fromEntries(Object.entries(response.headers).map(([name, value]) => [
|
|
146
|
+
name,
|
|
147
|
+
Array.isArray(value) ? value.map((item) => scrub(item)) : typeof value === "string" ? scrub(value) : value,
|
|
148
|
+
]));
|
|
149
|
+
const content = scrub(Buffer.concat(chunks).toString("utf8"), truncated);
|
|
106
150
|
resolve({
|
|
107
151
|
// The far end's own word, which is all HTTP can offer. A caller
|
|
108
152
|
// who needs more declares an independent re-read as evidence.
|
|
@@ -114,9 +158,10 @@ export class HttpRuntime {
|
|
|
114
158
|
// a second governed request to wherever it points.
|
|
115
159
|
success: status >= 200 && status < 300,
|
|
116
160
|
status,
|
|
117
|
-
statusText
|
|
118
|
-
headers
|
|
119
|
-
content
|
|
161
|
+
statusText,
|
|
162
|
+
headers,
|
|
163
|
+
content,
|
|
164
|
+
// As received, so it can still be checked against the cap.
|
|
120
165
|
bytes,
|
|
121
166
|
truncated,
|
|
122
167
|
url: url.toString(),
|
|
@@ -125,6 +170,7 @@ export class HttpRuntime {
|
|
|
125
170
|
// receipt should record; its value is the one thing that must not
|
|
126
171
|
// leave this function.
|
|
127
172
|
credentials: brokered?.used ?? [],
|
|
173
|
+
...(redacted ? { redactions: [REDACTED_CREDENTIAL] } : {}),
|
|
128
174
|
// Echoed back so a reconciliation predicate can be written
|
|
129
175
|
// against the one fact that was true *before* the call. After a
|
|
130
176
|
// request that went unanswered there is no response to read, so
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sCAAsC;AAEtC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@melra/http-runtime",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.15",
|
|
4
4
|
"description": "HTTP/API reference effect adapter for the MELRA kernel.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@melra/
|
|
25
|
-
"@melra/
|
|
24
|
+
"@melra/protocol": "0.3.0-alpha.15",
|
|
25
|
+
"@melra/policy-core": "0.3.0-alpha.15"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc -p tsconfig.json",
|