jxp 4.1.0 → 4.1.1

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.
@@ -14,6 +14,8 @@ const loadModel = (modelDir, file) => {
14
14
  const mod = require(path.join(modelDir, file));
15
15
  return mod.default || mod;
16
16
  };
17
+ const bulkwrite_guard = require("./bulkwrite_guard");
18
+ const { logRequestError } = require("./request_log");
17
19
  const init = function (config) {
18
20
  APIKey = loadModel(config.model_dir, "apikey_model");
19
21
  Groups = loadModel(config.model_dir, "usergroups_model.js");
@@ -319,22 +321,25 @@ const auth = async (req, res) => {
319
321
  return await check_perms(res.user, res.groups, req.Model, method, req.params.item_id);
320
322
  }
321
323
  catch (err) {
322
- console.error(err);
324
+ logRequestError(req, res, err, "auth");
323
325
  if (err.code)
324
326
  throw err;
325
327
  throw new errors.ForbiddenError(err.toString());
326
328
  }
327
329
  };
328
- // Bulk auth requires all CRUD permissions
330
+ // Bulk auth: admins bypass; others need perms matching each operation (e.g. updateOne → create + update).
329
331
  const bulkAuth = async (req, res) => {
332
+ if (res.user?.admin) {
333
+ return;
334
+ }
330
335
  try {
331
- await check_perms(res.user, res.groups, req.Model, "c");
332
- await check_perms(res.user, res.groups, req.Model, "r");
333
- await check_perms(res.user, res.groups, req.Model, "u");
334
- await check_perms(res.user, res.groups, req.Model, "d");
336
+ const required = bulkwrite_guard.requiredPermsForBulkOps(req.body);
337
+ for (const method of required) {
338
+ await check_perms(res.user, res.groups, req.Model, method);
339
+ }
335
340
  }
336
341
  catch (err) {
337
- console.error(err);
342
+ logRequestError(req, res, err, "bulkAuth");
338
343
  if (err.code)
339
344
  throw err;
340
345
  throw new errors.ForbiddenError(err.toString());
@@ -392,10 +397,14 @@ const check_perms = async (user, groups, model, method, item_id) => {
392
397
  };
393
398
  const admin_only = (req, res, next) => {
394
399
  if (!res.user) {
395
- return next(new errors.ForbiddenError("User not logged in"));
400
+ const err = new errors.ForbiddenError("User not logged in");
401
+ logRequestError(req, res, err, "admin_only");
402
+ return next(err);
396
403
  }
397
404
  if (!res.user.admin) {
398
- return next(new errors.ForbiddenError("User not admin"));
405
+ const err = new errors.ForbiddenError("User not admin");
406
+ logRequestError(req, res, err, "admin_only");
407
+ return next(err);
399
408
  }
400
409
  next();
401
410
  };
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/libs/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/libs/security.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ const TestSchema = new schema_1.default({
24
24
  perms: {
25
25
  admin: "crud",
26
26
  owner: "crud",
27
- user: "cr",
27
+ user: "cur",
28
28
  all: "r",
29
29
  },
30
30
  callable_statics: ["test"],
@@ -1 +1 @@
1
- {"version":3,"file":"test_model.js","sourceRoot":"","sources":["../../src/models/test_model.ts"],"names":[],"mappings":";;;;;AAAA,oEAAoC;AACpC,4DAAuC;AAqBvC,MAAM,UAAU,GAAG,IAAI,gBAAS,CAC/B;IACC,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;IACzE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC,KAAK;IAClB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACjD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5E,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9F,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjD,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;CACvC,EACD;IACC,KAAK,EAAE;QACN,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,GAAG;KACR;IACD,gBAAgB,EAAE,CAAC,MAAM,CAAC;IAC1B,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;CACnE,CACD,CAAC;AAEF,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG;IACzB,OAAO,eAAe,CAAC;AACxB,CAAC,CAAC;AAEF,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI;IACpC,IAAI,IAAI,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAClC,MAAM,IAAI,wBAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,EAAE,CAAC;AACR,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,gBAAS,CAAC,KAAK,CAAQ,MAAM,EAAE,UAAU,CAAC,CAAC;AACxD,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"test_model.js","sourceRoot":"","sources":["../../src/models/test_model.ts"],"names":[],"mappings":";;;;;AAAA,oEAAoC;AACpC,4DAAuC;AAqBvC,MAAM,UAAU,GAAG,IAAI,gBAAS,CAC/B;IACC,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;IACzE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC,KAAK;IAClB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACjD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5E,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9F,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjD,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;CACvC,EACD;IACC,KAAK,EAAE;QACN,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,GAAG;KACR;IACD,gBAAgB,EAAE,CAAC,MAAM,CAAC;IAC1B,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;CACnE,CACD,CAAC;AAEF,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG;IACzB,OAAO,eAAe,CAAC;AACxB,CAAC,CAAC;AAEF,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI;IACpC,IAAI,IAAI,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAClC,MAAM,IAAI,wBAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,EAAE,CAAC;AACR,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,gBAAS,CAAC,KAAK,CAAQ,MAAM,EAAE,UAAU,CAAC,CAAC;AACxD,kBAAe,IAAI,CAAC"}
@@ -1,8 +1,15 @@
1
1
  # Bulk Writes
2
2
 
3
- You can perform bulk writes through the `/bulkwrite/<modelname>` endpoint. **Disabled by default** unless the model opts in with `advanced_queries: { bulkwrite: true }`. Only allowlisted operations (`insertOne`, `updateOne`, `replaceOne`, `deleteOne`) are accepted; `updateMany` / `deleteMany` require admin.
3
+ You can perform bulk writes through the `/bulkwrite/<modelname>` endpoint. **Disabled by default** for non-admin users unless the model opts in with `advanced_queries: { bulkwrite: true }`. **Admin users** may use bulk write on any model. Only allowlisted operations (`insertOne`, `updateOne`, `replaceOne`, `deleteOne`) are accepted; `updateMany` / `deleteMany` require admin.
4
4
 
5
- Authorisation works a little differently — the user must have **create, read, update, and delete** permissions on the model.
5
+ Authorisation is checked **per operation** (admins bypass):
6
+
7
+ | Operation | Permissions required |
8
+ |-----------|---------------------|
9
+ | `insertOne` | create |
10
+ | `updateOne` / `replaceOne` | update; plus create when `upsert: true` |
11
+ | `deleteOne` | delete |
12
+ | `updateMany` / `deleteMany` | admin only (updateMany follows the same upsert rule for admins) |
6
13
 
7
14
  ***WARNING*** Be cautious when using bulk writes because you can destroy your data. Don't forget to back up!
8
15
 
package/docs/changelog.md CHANGED
@@ -2,6 +2,60 @@
2
2
 
3
3
  Notable changes to [JXP](https://github.com/WorkSpaceMan/jxp).
4
4
 
5
+ ## v4.1.1 — 2026-05-25
6
+
7
+ Bulk write authorization fixes (admins no longer need per-model opt-in) and structured request error logging for security guards (query limits, filters, aggregate, bulkwrite, auth).
8
+
9
+ ### Bulk write
10
+
11
+ #### Changed
12
+
13
+ - **POST `/bulkwrite`** — **Admin** users may bulk write any model without `advanced_queries.bulkwrite: true`. Non-admins still require model opt-in on the schema.
14
+ - **`bulkAuth`** — Replaces the previous “full CRUD required” rule with **per-operation** permission checks (admins bypass entirely).
15
+ - **Upsert-aware `updateOne` / `replaceOne`** — requires **update** only; **create** is also required when the operation includes `upsert: true` (same as a single-record upsert). `insertOne` → create; `deleteOne` → delete; `updateMany` / `deleteMany` remain admin-only (validated by `bulkwrite_guard`).
16
+ - **Middleware order** — `middlewareBulkWriteAllowed` runs before `bulkAuth` so non-admins without opt-in receive “disabled for model” before a permission mismatch.
17
+
18
+ #### Added
19
+
20
+ - **`bulkwrite_guard.requiredPermsForBulkOps()`** — derives required permission letters from each bulk op payload (including per-entry upsert flags).
21
+
22
+ ### Request error logging (`request_log`)
23
+
24
+ Structured one-line `console.error` entries for guard and handler failures, so production issues are traceable without reading stack traces.
25
+
26
+ #### Log line format
27
+
28
+ Each line includes (when available):
29
+
30
+ - **Client** — `ip=` (`req.ip`, first `X-Forwarded-For` hop, `X-Real-IP`, or socket address), truncated `ua=` (`User-Agent`), `auth=` (`apikey-query`, `apikey-header`, `bearer`, `basic`; credentials are never logged)
31
+ - **Request** — HTTP method and path, `model=`, `id=`, resolved `user=` (email or id), `admin` flag
32
+ - **Context** — guard or handler label (e.g. `query_limit`, `filter`, `query_sanitize`, `aggregate_guard`, `bulkwrite disabled`, `bulkAuth`, `auth`, `admin_only`)
33
+ - **Detail** — operation-specific summary: `?limit` / `?page` / `filterKeys=N`, `bulk[N updateOne:2 …]`, `aggregate[N $match:1 …]`, `postQuery keys=N`, `call=methodName`, collection size hints for query limits (`~N docs threshold=…`)
34
+ - **Message** — the HTTP error message
35
+
36
+ Unexpected errors (non-4xx) still log a stack trace; expected `BadRequest` / `Forbidden` / `NotFound` do not.
37
+
38
+ #### Wired into
39
+
40
+ - **`query_limits.enforceListLimit`** — missing limit on large collections, limit over max
41
+ - **Filter parsing and `query_sanitize`** — denied operators, depth, regex
42
+ - **POST `/query` and `/aggregate`** — model opt-in middleware, pipeline stage guard, invalid body
43
+ - **POST `/bulkwrite`** — opt-in, `bulkAuth`, validation, Mongo errors
44
+ - **`/call`** — callable static guard
45
+ - **`security.auth`**, **`security.bulkAuth`**, **`security.admin_only`**
46
+ - **`middlewareModel`** (unknown model), **`password_override`**
47
+ - Global **`restError`** handler (fallback for other HTTP errors)
48
+
49
+ #### Added
50
+
51
+ - **`src/libs/request_log.ts`** — `clientIp`, `authHint`, `requestClientInfo`, `logRequestError`, `logAndThrow`, and request detail helpers.
52
+ - **`middlewareAdvancedQueryAllowed`** — shared opt-in check for POST `/query` and `/aggregate` with logging.
53
+ - **Tests** — `test/bulkwrite_guard.test.js`, `test/request_log.test.js`; extended `/POST bulkwrite` and guard coverage in `test/test.js`.
54
+
55
+ ### Documentation
56
+
57
+ - [bulk_writes.md](bulk_writes.md) — admin bypass, per-op permissions, and upsert behaviour.
58
+
5
59
  ## v4.1.0 — 2026-05-25
6
60
 
7
61
  API docs browser security: gated model explorer, real API login, and brute-force limits.
@@ -88,7 +142,7 @@ Consumer apps (e.g. RevEngine) should adjust clients and models as follows:
88
142
  | User PUT | Could set `admin` / `password` | Non-admins have privilege fields stripped |
89
143
  | `?filter[$where]=…` | Accepted | **400** — operator denied |
90
144
  | POST `/aggregate` | Any pipeline stage | Allowlisted stages; `$out` / `$merge` / `$function` need admin |
91
- | POST `/bulkwrite` | Open | **Disabled per model** unless `advanced_queries.bulkwrite: true`; op allowlist |
145
+ | POST `/bulkwrite` | Open | **Disabled per model** unless `advanced_queries.bulkwrite: true`; op allowlist; full CRUD required *(see v4.1.1)* |
92
146
  | List passwords | Could leak on `GET /api/user` | Stripped from list/query/aggregate responses |
93
147
 
94
148
  Example model opts:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jxp",
3
3
  "description": "An opinionated RESTful API library based on Mongoose and Restify. Make an API by just writing Mongoose models.",
4
- "version": "4.1.0",
4
+ "version": "4.1.1",
5
5
  "private": false,
6
6
  "main": "dist/libs/jxp.js",
7
7
  "types": "dist/libs/jxp.d.ts",
@@ -47,7 +47,7 @@
47
47
  "prepare": "node -e \"require('fs').existsSync('src')&&require('child_process').execSync('npm run build',{stdio:'inherit'})\"",
48
48
  "start": "node dist/bin/server.js",
49
49
  "dev": "nodemon --watch src --ext ts --exec 'npm run build && node dist/bin/server.js'",
50
- "test": "npm run build && mocha --require test/env.js --timeout 1000 -b --exit",
50
+ "test": "npm run build && mocha --require test/env.js test/bulkwrite_guard.test.js test/request_log.test.js test/test.js --timeout 1000 -b --exit",
51
51
  "setup": "node dist/bin/setup.js"
52
52
  },
53
53
  "bin": {