jinaga-server 3.7.4 → 3.8.0
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/.claude/skills/degrees-of-freedom/.openskills.json +7 -0
- package/.claude/skills/degrees-of-freedom/SKILL.md +18 -0
- package/.claude/skills/degrees-of-freedom/degrees-of-freedom-constitution.md +142 -0
- package/.claude/skills/night-shift-setup/.openskills.json +7 -0
- package/.claude/skills/night-shift-setup/SKILL.md +95 -0
- package/.claude/skills/night-shift-setup/configuring-a-repository.md +111 -0
- package/.claude/skills/night-shift-setup/creating-the-log.md +59 -0
- package/.claude/skills/night-shift-setup/creating-the-routines.md +80 -0
- package/.claude/skills/night-shift-setup/log-model.factual +971 -0
- package/.claude/skills/night-shift-worker/.openskills.json +7 -0
- package/.claude/skills/night-shift-worker/SKILL.md +199 -0
- package/.claude/skills/night-shift-worker/night-shift-log.md +72 -0
- package/.claude/skills/night-shift-worker/scripts/register-stack.sh +173 -0
- package/.claude/skills/night-shift-worker/stacking.md +57 -0
- package/.claude/skills/night-shift-worker/verifying-a-merged-fix.md +16 -0
- package/.claude/skills/refining-issues/.openskills.json +7 -0
- package/.claude/skills/refining-issues/SKILL.md +327 -0
- package/.claude/skills/refining-issues/references/worked-example.md +234 -0
- package/.github/workflows/main.yml +2 -2
- package/.night-shift/config.md +84 -0
- package/.night-shift/skills.md +17 -0
- package/README.md +21 -0
- package/dist/http/router.js +207 -80
- package/dist/http/router.js.map +1 -1
- package/dist/http/stream.d.ts +0 -1
- package/dist/http/stream.js +6 -17
- package/dist/http/stream.js.map +1 -1
- package/dist/jinaga-server.js +74 -7
- package/dist/jinaga-server.js.map +1 -1
- package/integration-test/jinaga-test/package-lock.json +4 -4
- package/integration-test/jinaga-test/package.json +1 -1
- package/package.json +2 -2
- package/src/http/router.ts +249 -99
- package/src/http/stream.ts +21 -36
- package/src/jinaga-server.ts +92 -4
- package/test/http/errorStatusMappingSpec.ts +351 -0
- package/test/http/streamLogVolumeSpec.ts +284 -0
- package/test/jinaga-server/poolConfigurationSpec.ts +147 -0
- package/test/jinaga-server/tracePoolSpec.ts +368 -0
package/README.md
CHANGED
|
@@ -82,6 +82,27 @@ Or if you are running from the installed package, run the script from `node_modu
|
|
|
82
82
|
./node_modules/jinaga-server/setup.sh
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
## Configuring the connection pool
|
|
86
|
+
|
|
87
|
+
When you give Jinaga server a connection string, it builds the connection pool
|
|
88
|
+
for you, and these environment variables set it up. Each one defaults to the
|
|
89
|
+
value below when it is unset or empty, so a deployment that sets none of them
|
|
90
|
+
behaves exactly as it did before they existed.
|
|
91
|
+
|
|
92
|
+
| Variable | Units | Default | Meaning |
|
|
93
|
+
| --- | --- | --- | --- |
|
|
94
|
+
| `POSTGRES_POOL_MAX` | connections | `10` | The most connections the pool will open. Must be at least 1. |
|
|
95
|
+
| `POSTGRES_IDLE_TIMEOUT_MILLIS` | milliseconds | `30000` | How long an idle connection stays in the pool before it is closed. `0` keeps idle connections forever. |
|
|
96
|
+
| `POSTGRES_CONNECTION_TIMEOUT_MILLIS` | milliseconds | `0` | How long a query waits for a connection to come free before it fails. `0` waits forever. |
|
|
97
|
+
|
|
98
|
+
Each must be a whole number of its own unit. A value that is not makes
|
|
99
|
+
`JinagaServer.create` throw, naming the variable and the value it received,
|
|
100
|
+
rather than starting a server configured with something nobody chose.
|
|
101
|
+
|
|
102
|
+
These variables apply only to a pool that Jinaga server builds from a
|
|
103
|
+
connection string. If you pass your own `pg` `Pool` as `pgStore` or
|
|
104
|
+
`pgKeystore`, it is used exactly as you configured it.
|
|
105
|
+
|
|
85
106
|
## Migrating from version 2
|
|
86
107
|
|
|
87
108
|
If you are already running a Jinaga database, whether in a container or on your own PostgreSQL server, you will need to upgrade to get it to work with version 3.
|
package/dist/http/router.js
CHANGED
|
@@ -18,50 +18,55 @@ const line_reader_1 = require("./line-reader");
|
|
|
18
18
|
const output_formatters_1 = require("./output-formatters");
|
|
19
19
|
const result_stream_1 = require("./result-stream");
|
|
20
20
|
const stream_1 = require("./stream");
|
|
21
|
+
// A streaming response reports itself twice: one line when the stream opens
|
|
22
|
+
// and one when it ends, carrying the messages sent, how long it lasted, and
|
|
23
|
+
// what ended it. Issue #192: the per-message and per-lifecycle-step lines this
|
|
24
|
+
// replaces made the log grow with traffic rather than with the number of events
|
|
25
|
+
// worth knowing about, and `STREAM DONE`'s message count already said what the
|
|
26
|
+
// per-message lines said one at a time. A plain GET says nothing at all, since
|
|
27
|
+
// Trace.dependency already records it. Failures still log.
|
|
21
28
|
function getOrStream(getMethod, streamMethod) {
|
|
22
29
|
return (req, res, next) => {
|
|
23
30
|
const connectionId = Math.random().toString(36).substring(2, 10);
|
|
24
31
|
const user = req.user;
|
|
25
32
|
const accept = req.headers["accept"];
|
|
26
|
-
console.log(`[HttpConnection:${connectionId}] New request - User: ${(user === null || user === void 0 ? void 0 : user.id) || 'anonymous'}, Accept: ${accept}, URL: ${req.url}`);
|
|
27
33
|
if (accept && accept.indexOf("application/x-jinaga-feed-stream") >= 0) {
|
|
28
|
-
console.log(`[HttpConnection:${connectionId}] STREAMING request detected`);
|
|
29
34
|
streamMethod(user, req.params, req.query)
|
|
30
35
|
.then(response => {
|
|
31
36
|
if (!response) {
|
|
32
|
-
|
|
33
|
-
res.sendStatus(404);
|
|
37
|
+
sendRouteMiss(res);
|
|
34
38
|
next();
|
|
35
39
|
}
|
|
36
40
|
else {
|
|
37
|
-
console.log(`[HttpConnection:${connectionId}] Setting up streaming response`);
|
|
38
41
|
res.type("application/x-jinaga-feed-stream");
|
|
39
42
|
res.set("Connection", "keep-alive");
|
|
40
43
|
res.set("Cache-Control", "no-cache");
|
|
41
44
|
res.set("Access-Control-Allow-Origin", "*");
|
|
42
45
|
res.flushHeaders();
|
|
43
|
-
|
|
46
|
+
const openedAt = Date.now();
|
|
47
|
+
console.log(`[HttpConnection:${connectionId}] Stream opened - User: ${(user === null || user === void 0 ? void 0 : user.id) || 'anonymous'}, URL: ${req.url}`);
|
|
44
48
|
let clientDisconnected = false;
|
|
45
|
-
let timeoutTriggered = false;
|
|
46
49
|
let streamClosed = false;
|
|
50
|
+
// What closed the stream from outside, where something
|
|
51
|
+
// other than the feed itself closed it. One value
|
|
52
|
+
// rather than a flag per cause, because a stream ends
|
|
53
|
+
// exactly once and only the first cause is the reason.
|
|
54
|
+
let closedBy = null;
|
|
47
55
|
// Client disconnect handler
|
|
48
56
|
req.on("close", () => {
|
|
49
|
-
console.log(`[HttpConnection:${connectionId}] CLIENT DISCONNECTED`);
|
|
50
57
|
clientDisconnected = true;
|
|
51
58
|
if (!streamClosed) {
|
|
52
|
-
|
|
53
|
-
response.close();
|
|
59
|
+
closedBy = "client disconnect";
|
|
54
60
|
streamClosed = true;
|
|
61
|
+
response.close();
|
|
55
62
|
}
|
|
56
63
|
});
|
|
57
64
|
// Timeout handler
|
|
58
65
|
const timeout = setTimeout(() => {
|
|
59
|
-
console.log(`[HttpConnection:${connectionId}] TIMEOUT TRIGGERED (5 minutes)`);
|
|
60
|
-
timeoutTriggered = true;
|
|
61
66
|
if (!streamClosed) {
|
|
62
|
-
|
|
63
|
-
response.close();
|
|
67
|
+
closedBy = "timeout";
|
|
64
68
|
streamClosed = true;
|
|
69
|
+
response.close();
|
|
65
70
|
}
|
|
66
71
|
}, 5 * 60 * 1000);
|
|
67
72
|
let messageCount = 0;
|
|
@@ -77,7 +82,6 @@ function getOrStream(getMethod, streamMethod) {
|
|
|
77
82
|
const jsonData = JSON.stringify(data) + "\n\n";
|
|
78
83
|
res.write(jsonData);
|
|
79
84
|
const writeDuration = Date.now() - writeStart;
|
|
80
|
-
console.log(`[HttpConnection:${connectionId}] Message #${messageCount} sent - Size: ${jsonData.length} bytes, Duration: ${writeDuration}ms`);
|
|
81
85
|
if (writeDuration > 50) {
|
|
82
86
|
console.warn(`[HttpConnection:${connectionId}] SLOW write operation - Duration: ${writeDuration}ms`);
|
|
83
87
|
}
|
|
@@ -88,23 +92,18 @@ function getOrStream(getMethod, streamMethod) {
|
|
|
88
92
|
})
|
|
89
93
|
.done(() => {
|
|
90
94
|
var _a;
|
|
91
|
-
console.log(`[HttpConnection:${connectionId}] STREAM DONE - Messages sent: ${messageCount}, Client disconnected: ${clientDisconnected}, Timeout triggered: ${timeoutTriggered}`);
|
|
92
95
|
clearTimeout(timeout);
|
|
93
96
|
streamClosed = true;
|
|
97
|
+
console.log(`[HttpConnection:${connectionId}] Stream ended - Messages sent: ${messageCount}, Duration: ${Date.now() - openedAt}ms, Reason: ${closedBy !== null && closedBy !== void 0 ? closedBy : "done"}`);
|
|
94
98
|
try {
|
|
95
99
|
if (!clientDisconnected) {
|
|
96
|
-
console.log(`[HttpConnection:${connectionId}] Ending socket connection`);
|
|
97
100
|
(_a = res.socket) === null || _a === void 0 ? void 0 : _a.end();
|
|
98
101
|
}
|
|
99
|
-
else {
|
|
100
|
-
console.log(`[HttpConnection:${connectionId}] Client already disconnected - skipping socket end`);
|
|
101
|
-
}
|
|
102
102
|
}
|
|
103
103
|
catch (error) {
|
|
104
104
|
console.error(`[HttpConnection:${connectionId}] ERROR ending socket: ${error}`);
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
|
-
console.log(`[HttpConnection:${connectionId}] Stream handlers configured`);
|
|
108
107
|
}
|
|
109
108
|
})
|
|
110
109
|
.catch(error => {
|
|
@@ -113,16 +112,13 @@ function getOrStream(getMethod, streamMethod) {
|
|
|
113
112
|
});
|
|
114
113
|
}
|
|
115
114
|
else {
|
|
116
|
-
console.log(`[HttpConnection:${connectionId}] Regular GET request`);
|
|
117
115
|
getMethod(user, req.params, req.query)
|
|
118
116
|
.then(response => {
|
|
119
117
|
if (!response) {
|
|
120
|
-
|
|
121
|
-
res.sendStatus(404);
|
|
118
|
+
sendRouteMiss(res);
|
|
122
119
|
next();
|
|
123
120
|
}
|
|
124
121
|
else {
|
|
125
|
-
console.log(`[HttpConnection:${connectionId}] Sending JSON response`);
|
|
126
122
|
res.type("json");
|
|
127
123
|
res.send(JSON.stringify(response));
|
|
128
124
|
next();
|
|
@@ -155,9 +151,14 @@ function getAuthenticate(method) {
|
|
|
155
151
|
function post(parse, method, output) {
|
|
156
152
|
return (req, res, next) => {
|
|
157
153
|
const user = req.user;
|
|
158
|
-
const
|
|
154
|
+
const parsed = parseRequestInput(() => parse(req.body), req, res, next);
|
|
155
|
+
if (!parsed.ok) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const message = parsed.value;
|
|
159
159
|
if (!message) {
|
|
160
|
-
|
|
160
|
+
handleError(new jinaga_1.Invalid(`${MISSING_BODY} ${describeContentType(req)}`), req, res, next);
|
|
161
|
+
return;
|
|
161
162
|
}
|
|
162
163
|
method(user, message, req.params)
|
|
163
164
|
.then(response => {
|
|
@@ -176,8 +177,11 @@ function post(parse, method, output) {
|
|
|
176
177
|
function postCreate(parse, method) {
|
|
177
178
|
return (req, res, next) => {
|
|
178
179
|
const user = req.user;
|
|
179
|
-
const
|
|
180
|
-
|
|
180
|
+
const parsed = parseRequestInput(() => parse(req), req, res, next);
|
|
181
|
+
if (!parsed.ok) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
method(user, parsed.value)
|
|
181
185
|
.then(_ => {
|
|
182
186
|
res.sendStatus(201);
|
|
183
187
|
next();
|
|
@@ -188,45 +192,39 @@ function postCreate(parse, method) {
|
|
|
188
192
|
function postStringCreate(method) {
|
|
189
193
|
return (req, res, next) => {
|
|
190
194
|
const user = req.user;
|
|
191
|
-
const
|
|
192
|
-
if (!
|
|
193
|
-
|
|
194
|
-
res.status(500).send('Expected Content-Type text/plain. Ensure that you have called app.use(express.text()).');
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
method(user, input)
|
|
198
|
-
.then(_ => {
|
|
199
|
-
res.sendStatus(201);
|
|
200
|
-
next();
|
|
201
|
-
})
|
|
202
|
-
.catch(error => handleError(error, req, res, next));
|
|
195
|
+
const parsed = parseRequestInput(() => parseTextBody(req), req, res, next);
|
|
196
|
+
if (!parsed.ok) {
|
|
197
|
+
return;
|
|
203
198
|
}
|
|
199
|
+
method(user, parsed.value)
|
|
200
|
+
.then(_ => {
|
|
201
|
+
res.sendStatus(201);
|
|
202
|
+
next();
|
|
203
|
+
})
|
|
204
|
+
.catch(error => handleError(error, req, res, next));
|
|
204
205
|
};
|
|
205
206
|
}
|
|
206
207
|
function postReadWithStreaming(method) {
|
|
207
208
|
return (req, res, next) => {
|
|
208
209
|
const user = req.user;
|
|
209
|
-
const
|
|
210
|
-
if (!
|
|
211
|
-
|
|
212
|
-
res.status(500).send('Expected Content-Type text/plain. Ensure that you have called app.use(express.text()).');
|
|
210
|
+
const parsed = parseRequestInput(() => parseTextBody(req), req, res, next);
|
|
211
|
+
if (!parsed.ok) {
|
|
212
|
+
return;
|
|
213
213
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
acceptType = preferredType ? String(preferredType) : 'text/plain';
|
|
222
|
-
}
|
|
223
|
-
method(user, input, acceptType)
|
|
224
|
-
.then(({ resultStream, csvMetadata }) => {
|
|
225
|
-
outputReadResults(resultStream, res, acceptType, csvMetadata);
|
|
226
|
-
next();
|
|
227
|
-
})
|
|
228
|
-
.catch(error => handleError(error, req, res, next));
|
|
214
|
+
// Check if Accept header explicitly prefers a specific format
|
|
215
|
+
const acceptHeader = req.get('Accept');
|
|
216
|
+
let acceptType = 'text/plain'; // Default for backward compatibility
|
|
217
|
+
if (acceptHeader && acceptHeader !== '*/*') {
|
|
218
|
+
// Only use req.accepts() when there's a specific preference
|
|
219
|
+
const preferredType = req.accepts(['text/csv', 'application/x-ndjson', 'application/json', 'text/plain']);
|
|
220
|
+
acceptType = preferredType ? String(preferredType) : 'text/plain';
|
|
229
221
|
}
|
|
222
|
+
method(user, parsed.value, acceptType)
|
|
223
|
+
.then(({ resultStream, csvMetadata }) => {
|
|
224
|
+
outputReadResults(resultStream, res, acceptType, csvMetadata);
|
|
225
|
+
next();
|
|
226
|
+
})
|
|
227
|
+
.catch(error => handleError(error, req, res, next));
|
|
230
228
|
};
|
|
231
229
|
}
|
|
232
230
|
function subscriptionOwnerKey(userIdentity) {
|
|
@@ -252,7 +250,7 @@ function inputSaveMessage(req) {
|
|
|
252
250
|
read: (onEnvelopes) => __awaiter(this, void 0, void 0, function* () {
|
|
253
251
|
const message = (0, jinaga_1.parseSaveMessage)(req.body);
|
|
254
252
|
if (!message) {
|
|
255
|
-
throw new
|
|
253
|
+
throw new jinaga_1.Invalid(MISSING_JSON_BODY);
|
|
256
254
|
}
|
|
257
255
|
yield onEnvelopes(message.facts.map(fact => ({
|
|
258
256
|
fact: fact,
|
|
@@ -287,7 +285,9 @@ function outputReadResults(result, res, acceptType, csvMetadata) {
|
|
|
287
285
|
.catch(error => {
|
|
288
286
|
console.error('Error in outputReadResults:', error);
|
|
289
287
|
if (!res.headersSent) {
|
|
290
|
-
res.
|
|
288
|
+
// Without an explicit type, res.send of a string makes Express
|
|
289
|
+
// infer text/html and label an error body as markup.
|
|
290
|
+
res.type("text").status(500).send('Internal server error');
|
|
291
291
|
}
|
|
292
292
|
});
|
|
293
293
|
}
|
|
@@ -432,11 +432,20 @@ class HttpRouter {
|
|
|
432
432
|
factRecords.push(value.declared.fact);
|
|
433
433
|
}
|
|
434
434
|
const userIdentity = serializeUserIdentity(user);
|
|
435
|
-
|
|
435
|
+
const envelopes = factRecords
|
|
436
436
|
.map(fact => ({
|
|
437
437
|
fact: fact,
|
|
438
438
|
signatures: []
|
|
439
|
-
}))
|
|
439
|
+
}));
|
|
440
|
+
try {
|
|
441
|
+
yield this.authorization.save(userIdentity, envelopes);
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
// /write reaches the same authorization path as /save, so it
|
|
445
|
+
// needs the same translation of predecessor-resolution
|
|
446
|
+
// failures into a diagnosable 4xx (issue #182 finding 2).
|
|
447
|
+
throw toSaveAuthorizationError(error, envelopes);
|
|
448
|
+
}
|
|
440
449
|
}));
|
|
441
450
|
}
|
|
442
451
|
feeds(user, input) {
|
|
@@ -815,28 +824,142 @@ class FeedNotFound extends Error {
|
|
|
815
824
|
}
|
|
816
825
|
}
|
|
817
826
|
exports.FeedNotFound = FeedNotFound;
|
|
827
|
+
// Both message shapes below are matched by prose, because jinaga reports a
|
|
828
|
+
// missing predecessor as a plain Error. That is fragile: an upstream wording
|
|
829
|
+
// change silently turns these back into 500s (issue #182 finding 5). The
|
|
830
|
+
// end-to-end cases in test/http/errorStatusMappingSpec.ts drive the real
|
|
831
|
+
// AuthorizationEngine so that drift fails the build.
|
|
832
|
+
//
|
|
833
|
+
// jinaga 6.11.3 landed the typed errors of jinaga.js#234, so the topological
|
|
834
|
+
// sort's failure is now an instanceof check below. One prose pattern remains:
|
|
835
|
+
// specification-runner still reports its missing fact as a plain Error.
|
|
818
836
|
// Authorization rule evaluation reports a missing predecessor as a plain
|
|
819
|
-
// Error of this shape (
|
|
820
|
-
//
|
|
821
|
-
//
|
|
822
|
-
//
|
|
837
|
+
// Error of this shape (specification-runner.ts in jinaga, still untyped as of
|
|
838
|
+
// 6.11.3). It surfaces when the client's save request didn't include the full
|
|
839
|
+
// closure of facts a rule needs to walk. Map it to a diagnosable 4xx instead
|
|
840
|
+
// of an opaque 500 (issue #175).
|
|
823
841
|
const FACT_NOT_DEFINED_PATTERN = /^The fact (\S+):(\S+) is not defined\.$/;
|
|
824
842
|
function toSaveAuthorizationError(error, envelopes) {
|
|
825
|
-
if (error instanceof Error) {
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
843
|
+
if (!(error instanceof Error)) {
|
|
844
|
+
return error;
|
|
845
|
+
}
|
|
846
|
+
const describeBatch = () => {
|
|
847
|
+
const factTypesInBatch = Array.from(new Set(envelopes.map(e => e.fact.type))).join(", ");
|
|
848
|
+
return `${envelopes.length} fact(s) in the request (types: ${factTypesInBatch})`;
|
|
849
|
+
};
|
|
850
|
+
// The batch named a predecessor that is in neither the batch nor storage,
|
|
851
|
+
// so the topological sort could never reach the facts that depend on it.
|
|
852
|
+
// A client data problem, not a server fault (issue #182 finding 1).
|
|
853
|
+
if (error instanceof jinaga_1.PredecessorNotResolvedError) {
|
|
854
|
+
const missing = error.missingPredecessors.map(r => `${r.type}:${r.hash}`);
|
|
855
|
+
const unresolved = error.unresolvedFacts.map(r => `${r.type}:${r.hash}`);
|
|
856
|
+
jinaga_1.Trace.warn(`Save authorization could not resolve ${missing.length} predecessor(s) [${missing.join(", ")}] ` +
|
|
857
|
+
`needed by ${unresolved.length} fact(s) [${unresolved.join(", ")}] among ${describeBatch()}.`);
|
|
858
|
+
const advice = `Send the full closure of predecessors together, or commit the predecessors first.`;
|
|
859
|
+
if (missing.length === 1) {
|
|
860
|
+
return new jinaga_1.Invalid(`The fact ${missing[0]} is named as a predecessor, but it was not found in storage ` +
|
|
861
|
+
`and was not included in the request. ${advice}`);
|
|
834
862
|
}
|
|
863
|
+
if (missing.length > 1) {
|
|
864
|
+
return new jinaga_1.Invalid(`${missing.length} facts are named as predecessors, but they were not found in storage ` +
|
|
865
|
+
`and were not included in the request: ${missing.join(", ")}. ${advice}`);
|
|
866
|
+
}
|
|
867
|
+
// The engine could not attribute the failure to specific references.
|
|
868
|
+
return new jinaga_1.Invalid(`${unresolved.length} fact(s) could not be authorized because one or more predecessors ` +
|
|
869
|
+
`were not found in storage and were not included in the request. ${advice}`);
|
|
870
|
+
}
|
|
871
|
+
const notDefined = FACT_NOT_DEFINED_PATTERN.exec(error.message);
|
|
872
|
+
if (notDefined) {
|
|
873
|
+
const [, factType, factHash] = notDefined;
|
|
874
|
+
jinaga_1.Trace.warn(`Save authorization could not resolve predecessor ${factType}:${factHash} ` +
|
|
875
|
+
`among ${describeBatch()}.`);
|
|
876
|
+
return new jinaga_1.Invalid(`The fact ${factType}:${factHash} is required to authorize this save but was not included in the request. ` +
|
|
877
|
+
`Ensure the full closure of predecessors needed by your authorization rules is sent together.`);
|
|
835
878
|
}
|
|
836
879
|
return error;
|
|
837
880
|
}
|
|
881
|
+
// post() serves both a JSON route (/load) and a text route (/feeds), so its
|
|
882
|
+
// message names no particular parser; the single-content-type entry points
|
|
883
|
+
// keep the specific hint they have always given.
|
|
884
|
+
const MISSING_BODY = 'The request body is empty or could not be read. Ensure that the body parser for this Content-Type is registered.';
|
|
885
|
+
const MISSING_JSON_BODY = 'Ensure that you have called app.use(express.json()).';
|
|
886
|
+
const MISSING_TEXT_BODY = 'Expected Content-Type text/plain. Ensure that you have called app.use(express.text()).';
|
|
887
|
+
// A request body that fails to parse is a client error. Both this module's
|
|
888
|
+
// parseString and jinaga's message parsers signal that by throwing
|
|
889
|
+
// synchronously from the handler, where Express hands it to its default error
|
|
890
|
+
// handler and reports 500. Classify parse failures as Invalid so handleError
|
|
891
|
+
// renders a 400 (issue #182 finding 3).
|
|
892
|
+
function toInvalidInput(error) {
|
|
893
|
+
if (error instanceof jinaga_1.Invalid) {
|
|
894
|
+
return error;
|
|
895
|
+
}
|
|
896
|
+
return new jinaga_1.Invalid(error instanceof Error ? error.message : String(error));
|
|
897
|
+
}
|
|
898
|
+
// /read and /write accept text/plain only, so every unreadable body there has
|
|
899
|
+
// the same cause and deserves the same actionable hint. Checking req.body here
|
|
900
|
+
// rather than deferring to parseString keeps a missing body parser — the common
|
|
901
|
+
// misconfiguration — from being reported with parseString's generic
|
|
902
|
+
// content-type message.
|
|
903
|
+
function parseTextBody(req) {
|
|
904
|
+
const body = req.body;
|
|
905
|
+
if (typeof body !== 'string' || !body) {
|
|
906
|
+
throw new jinaga_1.Invalid(`${MISSING_TEXT_BODY} ${describeContentType(req)}`);
|
|
907
|
+
}
|
|
908
|
+
return body;
|
|
909
|
+
}
|
|
910
|
+
// Naming what arrived turns "check your setup" into something the caller can
|
|
911
|
+
// act on without guessing which end is misconfigured. The value is echoed from
|
|
912
|
+
// the request, so cap it: a real content type is short, and the body should
|
|
913
|
+
// not grow with whatever the caller chose to send.
|
|
914
|
+
const MAX_ECHOED_CONTENT_TYPE = 80;
|
|
915
|
+
function describeContentType(req) {
|
|
916
|
+
const contentType = req.get('Content-Type');
|
|
917
|
+
if (!contentType) {
|
|
918
|
+
return `No Content-Type header was received.`;
|
|
919
|
+
}
|
|
920
|
+
const echoed = contentType.length > MAX_ECHOED_CONTENT_TYPE
|
|
921
|
+
? `${contentType.substring(0, MAX_ECHOED_CONTENT_TYPE)}…`
|
|
922
|
+
: contentType;
|
|
923
|
+
return `Received Content-Type: ${echoed}.`;
|
|
924
|
+
}
|
|
925
|
+
function parseRequestInput(parse, req, res, next) {
|
|
926
|
+
try {
|
|
927
|
+
return { ok: true, value: parse() };
|
|
928
|
+
}
|
|
929
|
+
catch (error) {
|
|
930
|
+
handleError(toInvalidInput(error), req, res, next);
|
|
931
|
+
return { ok: false };
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
// A route miss (no :hash in the URL) is a 404 just like a feed-cache miss,
|
|
935
|
+
// but for a different reason. Send a machine-readable body so a client can
|
|
936
|
+
// always tell "wrong URL" from "re-subscribe via POST /feeds" (issue #182
|
|
937
|
+
// finding 6); handleError sends "feed_not_found" for the latter.
|
|
938
|
+
function sendRouteMiss(res) {
|
|
939
|
+
res.type("text");
|
|
940
|
+
res.status(404).send("not_found");
|
|
941
|
+
}
|
|
942
|
+
// These bodies are diagnostics, not markup, but they quote client-supplied
|
|
943
|
+
// text: a Content-Type header, a fact type named in a parse failure. The
|
|
944
|
+
// response is text/plain and marked nosniff, yet that is the content type
|
|
945
|
+
// saying so — neutralize the characters that could start markup here, at the
|
|
946
|
+
// one place every error body is written, so the guarantee does not rest on a
|
|
947
|
+
// header a proxy or a later edit could change. Quotes are left alone: they
|
|
948
|
+
// only matter inside a tag, which escaping '<' already prevents, and messages
|
|
949
|
+
// quote identifiers routinely.
|
|
950
|
+
const HTML_META_CHARACTERS = {
|
|
951
|
+
"&": "&",
|
|
952
|
+
"<": "<",
|
|
953
|
+
">": ">"
|
|
954
|
+
};
|
|
955
|
+
function sanitizeErrorBody(message) {
|
|
956
|
+
return message.replace(/[&<>]/g, character => HTML_META_CHARACTERS[character]);
|
|
957
|
+
}
|
|
838
958
|
function handleError(error, req, res, next) {
|
|
839
959
|
const requestPath = req.path;
|
|
960
|
+
// Error bodies are plain text built partly from client-supplied input, so
|
|
961
|
+
// stop a browser from sniffing one as markup.
|
|
962
|
+
res.set("X-Content-Type-Options", "nosniff");
|
|
840
963
|
if (error instanceof FeedNotFound) {
|
|
841
964
|
jinaga_1.Trace.warn(`Feed not found: ${error.feedHash} (Path: ${requestPath})`);
|
|
842
965
|
res.type("text");
|
|
@@ -845,17 +968,21 @@ function handleError(error, req, res, next) {
|
|
|
845
968
|
else if (error instanceof jinaga_1.Forbidden) {
|
|
846
969
|
jinaga_1.Trace.warn(`Forbidden: ${error.message} (Path: ${requestPath})`);
|
|
847
970
|
res.type("text");
|
|
848
|
-
res.status(403).send(error.message);
|
|
971
|
+
res.status(403).send(sanitizeErrorBody(error.message));
|
|
849
972
|
}
|
|
850
973
|
else if (error instanceof jinaga_1.Invalid) {
|
|
851
974
|
jinaga_1.Trace.warn(`Invalid: ${error.message} (Path: ${requestPath})`);
|
|
852
975
|
res.type("text");
|
|
853
|
-
res.status(400).send(error.message);
|
|
976
|
+
res.status(400).send(sanitizeErrorBody(error.message));
|
|
854
977
|
}
|
|
855
978
|
else {
|
|
979
|
+
// Classification above is an allow-list, so anything reaching here is
|
|
980
|
+
// unclassified — including genuine internal failures whose message can
|
|
981
|
+
// name internal hosts or credentials. Keep the detail in the trace and
|
|
982
|
+
// send a generic body to the caller (issue #182 finding 4).
|
|
856
983
|
jinaga_1.Trace.error(`Error: ${error.message} (Path: ${requestPath})`);
|
|
857
984
|
res.type("text");
|
|
858
|
-
res.status(500).send(error
|
|
985
|
+
res.status(500).send("Internal server error");
|
|
859
986
|
}
|
|
860
987
|
next();
|
|
861
988
|
}
|
package/dist/http/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
|