@dudousxd/nestjs-filter 1.25.0 → 1.29.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/CHANGELOG.md CHANGED
@@ -1,5 +1,80 @@
1
1
  # @dudousxd/nestjs-filter
2
2
 
3
+ ## 1.29.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#104](https://github.com/DavideCarvalho/nestjs-filter/pull/104) [`d29d058`](https://github.com/DavideCarvalho/nestjs-filter/commit/d29d0584134b0cb828a8103339dc485a1db82e19) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - A JSON sub-path now filters through the structured `filter` object, not only through `where[]`.
8
+
9
+ `{ filter: { where: [{ field: 'metadata.tier', operator: 'equals', value: 'pro' }] } }` has always worked: `applyColumnFilters` receives the entity, so it can ask `resolveJsonPath` whether the head segment is a JSON column and compile the extract. The structured spelling of the same predicate — `{ filter: { 'metadata.tier': 'pro' } }` — did not. `resolveAutoFields` builds its key set from the entity's real scalar columns, and a sub-path is not one; the dot-notation branch below it only recognises relations; so the key reached `handleUnknownKey` and, under the default `throwOnInvalid: false`, was dropped in silence.
10
+
11
+ Silence is what makes this worth a release. A dropped `where[]` clause at least logs a warning naming the field. A dropped structured key returned **the complete, unfiltered result set** — a response that is indistinguishable from a successful query. A caller filtering an operations table by `searchAttributes.name` got every row back and no signal that the constraint had evaporated; the natural reading of that is "no rows matched my other criteria", not "your filter was discarded".
12
+
13
+ Both request shapes now resolve the same path the same way. When a dotted key is neither an auto-field nor a relation, the runner asks `adapter.resolveFieldPath(entity, key)`; if the answer is `'json'`, the value is expanded through the existing `valueToColumnFilters` (array → `in`, operator object → its operators, scalar → `equals`) and handed to `applyColumnFilters` — the same capability `where[]` already used, so the emitted SQL is identical for both spellings. Fixed in the static (`@Filterable`) path and in `applyDynamic`, because fixing one would have recreated the static-vs-dynamic asymmetry that the previous release closed for `where[]`.
14
+
15
+ Four things deliberately do NOT change:
16
+
17
+ - **A dotted path whose head is not a JSON column stays unknown.** `status.name` over a string column does not become an extract just because it is dotted. The gate is the adapter's own answer, so this widens what _resolves_, never what is _invented_ — a key that named nothing before still names nothing, and still goes through `handleUnknownKey`.
18
+ - **The existing gates still apply.** On the `@Filterable` path the expanded filters pass through `enforceOperatorAllowlist` and then `validateColumnFilters` — the same two checks, in the same order, that `where[]` clauses go through — so `allowed` constrains a JSON sub-path exactly as it constrains a column, and an SQL-unsafe path is still rejected loudly. A sub-path is not a way around an endpoint's operator policy. (Dynamic mode has no filter class and therefore no allowlist to enforce; it keeps the grammar check.)
19
+ - **Adapters without `resolveFieldPath` behave as before.** No capability, no branch — the key falls through to `handleUnknownKey` as it always did. An adapter that cannot tell a JSON column from any other is not asked to guess.
20
+ - **Nested-object filtering is untouched.** `{ metadata: { tier: 'pro' } }` already reached the ORM as an equality condition on the JSON column and still does. It remains equality-only; the dotted spelling is the one that carries operators.
21
+
22
+ Minor rather than patch: no API is added, but a request that previously returned unfiltered rows now returns filtered ones. That is the point of the release, and a result set changing size deserves a deliberate upgrade rather than arriving in a patch — particularly for anyone who has (reasonably) built around the old response, or who compensated for it with a `@FilterFor` remap that can now be deleted.
23
+
24
+ ## 1.28.0
25
+
26
+ ### Minor Changes
27
+
28
+ - [#100](https://github.com/DavideCarvalho/nestjs-filter/pull/100) [`ca9bdd9`](https://github.com/DavideCarvalho/nestjs-filter/commit/ca9bdd98b14cabecc36edc06f767e6654a6d8357) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - `where[]` columns are now checked against the entity, not just against the alphabet.
29
+
30
+ A `where[]` clause passed exactly two gates before it reached the ORM: the field-path grammar (`isValidFieldPath` — letters, digits, `_`, `.`, `[]`) and the operator allowlist. Neither asks whether the field is a column. So `{ field: "ghostColumn", operator: "equals", value: 1 }` is well-formed, sails through both, and fails inside the ORM. The consumer gets a 500 for what is a malformed request, and a background job filtering on a column that table does not have dies mid-run instead of at the boundary.
31
+
32
+ The library already knew the answer. `adapter.getEntityFields(entity)` is what `resolveAutoFields` uses to restrict the STRUCTURED filter keys to real columns, and `applyDynamic` already ran `pruneUnknownColumnFilters` over `where[]` for exactly this reason. Only the static (`@Filterable`) path was never wired to it — so the same unknown column was handled politely through one door and crashed through the other, on the same entity, in the same request.
33
+
34
+ Now both doors behave the same. Every `where[]` clause is resolved against the entity's real columns and relations (via `resolveFieldPath` when the adapter has it, else the path's root segment), recursing into AND/OR groups.
35
+
36
+ **The knob is `throwOnInvalid`, not `onUnknownKey`.** `FilterModuleOptions.throwOnInvalid` was already documented as covering "unknown `where` columns" — the static path simply never honoured it — and `applyDynamic` already routed this same check through it. Choosing the other knob would have recreated, one layer down, the static-vs-dynamic asymmetry this release closes. It is also overridable per-`@Filterable`, which matters here: whether a stray `where` column is a client bug or a tolerated legacy payload is an endpoint's judgement, not an application's. `onUnknownKey` keeps its own scope, which is the structured `filter` object — those keys are dispatch targets (`@FilterFor` / auto-field / relation / computed / aggregate), not column references, and they raise `UnknownFilterKeyException` rather than naming a column.
37
+
38
+ The default (`throwOnInvalid: false`) drops the clause and logs a warning naming the field. Dropping is what stops the crash without turning requests that work today into 400s, and it matches what `pruneBlacklistedColumnFilters` already does for the same tree; the warning is there because a dropped constraint is otherwise invisible, and an invisible dropped constraint is how you end up trusting a wider result set than you asked for. Set `throwOnInvalid: true` to get a `BadRequestException` naming the column instead.
39
+
40
+ Three things deliberately do NOT change:
41
+
42
+ - **A clause whose own field is unknown but which carries a surviving AND/OR group keeps the group.** Only the leaf goes. Dropping the whole clause would take its children's constraints with it and WIDEN the query — returning rows the client filtered out is a worse failure than the 500 this replaces.
43
+ - **Paths that were never plain columns still work.** Computed aliases and to-many aggregate paths (`posts.$max.publishedAt`) are peeled off by `splitSpecialColumnFilters` before this check and routed to `applyComputedField`/`applyAggregateField`, which have their own validation. Dotted relation paths (`base.name`) and JSON sub-paths (`metadata.tier`) resolve normally — and on an adapter without `resolveFieldPath`, a dotted path rooted at a scalar column is accepted rather than dropped, because such an adapter cannot tell a JSON column from any other and "we can't check this" must not become "this is wrong".
44
+ - **A malformed path is passed through, not swallowed.** Anything outside the SQL-safe grammar (`visits.$notafn`) still reaches `validateColumnFilters` and is still rejected loudly. This check answers "does this column exist", never "is this path legal" — quietly dropping SQL-unsafe input would trade a hard error for silence.
45
+
46
+ When the adapter implements no `getEntityFields` (or it returns nothing), the check falls back to accepting everything and warns — the same graceful degradation the auto-fields path uses, so an adapter that cannot introspect keeps its previous behaviour instead of having every `where` clause dropped.
47
+
48
+ Minor rather than patch: no API is added, but the queries the library emits for existing callers change. A `where[]` clause on a non-column that used to reach the database now does not, and under `throwOnInvalid: true` a request that used to 500 now 400s. Both are the point of the release, and both are worth a deliberate upgrade rather than arriving in a patch.
49
+
50
+ ## 1.27.0
51
+
52
+ ### Minor Changes
53
+
54
+ - [#99](https://github.com/DavideCarvalho/nestjs-filter/pull/99) [`28db30a`](https://github.com/DavideCarvalho/nestjs-filter/commit/28db30a4adf21c68d8e8912bcda026292d070b2e) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Let a trusted server-side call opt out of `maxPageSize`.
55
+
56
+ `maxPageSize` is configured once, on the module, and then has to answer two questions that want different answers. For a `size` that arrived on an HTTP request the cap is the whole point — it is what stops a client asking for a million rows. For a `size` the server itself wrote, it is not protection but a silent wrong answer: an export asks for 10 000 rows, is handed 100, reads `100 < 10 000` as "the table is exhausted", and writes a truncated CSV with nothing logged and nothing thrown. The runner cannot tell the two apart by looking at the number, so the only consumer that could opt out — trusted code — was the one that could not.
57
+
58
+ `findAndCount(entity, input, { trustedPageSize: true })` is the escape hatch, with the same option on `findPage` (lifting the cap off `first`/`last`) and on `applyDynamic`'s per-call `internal` bag for callers that build the query themselves. Nothing changes when it is not passed: the global cap still applies everywhere, which is the behaviour every existing call keeps.
59
+
60
+ It is a boolean, not a numeric per-call `maxPageSize`, because a number does not solve the problem it looks like it solves. The caller would have to invent a second ceiling that must be at least as large as the size it is already passing, and guessing it low reproduces the exact silent truncation the option exists to remove — one call site, two numbers that must agree, no error when they don't. The fact the call site actually holds is not a better ceiling; it is _this size did not come from a client_, which is one bit. `trustedPageSize: true` also reads as what it is at a glance, where `maxPageSize: 10_000` sitting in an options object reads like ordinary config and could as easily be tightening the cap as lifting it.
61
+
62
+ Deliberately absent from `apply()`: that is the filter-class path `@ApplyFilter` drives, where the input is the HTTP request by definition, and a trust flag travelling next to route-bound client input is the confusion this is trying to prevent. The minimum page size of 1 still applies to trusted calls — that one is a correctness floor (`LIMIT 0` is not a page), not a safety cap.
63
+
64
+ ### Patch Changes
65
+
66
+ - [#98](https://github.com/DavideCarvalho/nestjs-filter/pull/98) [`272fc75`](https://github.com/DavideCarvalho/nestjs-filter/commit/272fc75e8de5cbadf34495256672963f19df9051) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Accept a `string[]` sort, which used to be dropped without a word.
67
+
68
+ `parseSorts` read two shapes: the comma-joined string `"-createdAt,name"`, and an array of `SortItem` objects. An array of plain strings — `["-createdAt", "name"]` — matched neither. It reached the array branch, failed the `typeof item === 'object'` test every element was measured against, and was filtered away.
69
+
70
+ Nothing said so. No throw, no warning, not even a 400 with `throwOnInvalid` on: the request was well-formed, the parse produced an empty list, and an empty list is exactly what "the client sent no sort" looks like. So the query fell through to `defaultSort` or to no ORDER BY at all, and the only symptom was a grid that had quietly stopped sorting.
71
+
72
+ That shape is not exotic. `["-year", "nsn"]` is the array spelling of the JSON:API convention this parser already implements, and it is what a legacy `orderBy: string[]` hands over verbatim.
73
+
74
+ Each element is now read by its own type: a string goes through the same token rules as the comma form (leading `-` means desc, trimmed, blanks dropped), an object is validated as a `SortItem` as before. Mixed arrays work for the same reason — `["-a", { field: 'b', direction: 'asc' }]` parses.
75
+
76
+ Purely additive. A `string[]` produced nothing before, so no existing behaviour depended on the old result; the string and `SortItem[]` shapes are untouched, and an element that is neither is still discarded.
77
+
3
78
  ## 1.25.0
4
79
 
5
80
  ### Minor Changes
package/README.md CHANGED
@@ -102,7 +102,8 @@ class UsersController {
102
102
  |--------|------|---------|-------------|
103
103
  | `inputNormalizer` | `'camelCase' \| 'snakeCase' \| fn` | `'camelCase'` | Normalize input keys. |
104
104
  | `dropId` | `boolean` | _set explicitly_ | Strip trailing `Id`/`_id`. Effective default is currently inconsistent in the code — when run through `FilterRunner`/`@ApplyFilter` the suffix is stripped unless you pass `dropId: false`. |
105
- | `onUnknownKey` | `'ignore' \| 'warn' \| 'throw'` | `'ignore'` | Policy for unrecognized keys. |
105
+ | `onUnknownKey` | `'ignore' \| 'warn' \| 'throw'` | `'ignore'` | Policy for unrecognized **structured `filter` keys** (no `@FilterFor`, auto-field, relation, computed field or aggregate path). Unknown columns inside a `where[]` clause are governed by `throwOnInvalid` instead. |
106
+ | `throwOnInvalid` | `boolean` | `false` | When `true`, invalid sorts, distinct fields, and unknown `where[]` columns raise a `BadRequestException` instead of being dropped with a warning. Overridable per `@Filterable`. |
106
107
  | `validation` | `'auto' \| 'off'` | `'auto'` | Validate with class-validator if installed. |
107
108
 
108
109
  See the [root README](../../README.md) for full documentation.
package/dist/runner.d.ts CHANGED
@@ -282,6 +282,14 @@ export declare class FilterRunner {
282
282
  skipSortAndPagination?: boolean;
283
283
  native?: boolean;
284
284
  distinctOrder?: boolean | undefined;
285
+ /**
286
+ * Marks `paginate.size` as server-authored, lifting the module-level
287
+ * `maxPageSize` ceiling for this call only. See
288
+ * {@link FilterRunner.resolvePageSize}. Dynamic mode has no filter class
289
+ * and no route decorator, so — like `distinctOrder` — the per-call flag
290
+ * is the only way in.
291
+ */
292
+ trustedPageSize?: boolean;
285
293
  }): Promise<Q>;
286
294
  /**
287
295
  * Runs a dynamic query and **executes** it, returning the page of rows plus
@@ -295,10 +303,19 @@ export declare class FilterRunner {
295
303
  *
296
304
  * Requires an adapter implementing `getResultAndCount` (and `populate` for
297
305
  * to-many includes). `applyDynamic` is unchanged; this is additive.
306
+ *
307
+ * `opts.trustedPageSize` declares that `paginate.size` was written by the
308
+ * server, not received from a client, and lifts the module-level
309
+ * `maxPageSize` ceiling for this call — see
310
+ * {@link FilterRunner.resolvePageSize}. This is the entry point exports and
311
+ * batch jobs use, so it is where the escape hatch is needed; without it they
312
+ * abandon `paginate` for hand-built `limit`/`offset` and lose everything
313
+ * else this method does.
298
314
  */
299
315
  findAndCount<E>(entity: Type<E>, input: unknown, opts?: {
300
316
  qb?: unknown;
301
317
  context?: FilterContext;
318
+ trustedPageSize?: boolean;
302
319
  }): Promise<{
303
320
  rows: E[];
304
321
  total: number;
@@ -642,10 +659,18 @@ export declare class FilterRunner {
642
659
  * Requires an adapter implementing `getResult`, `getPrimaryKey`,
643
660
  * `applyKeysetPagination` and `applyKeysetOrderAndLimit`. Additive — does not
644
661
  * change `apply`/`applyDynamic`/`findAndCount`.
662
+ *
663
+ * `opts.trustedPageSize` lifts the module-level `maxPageSize` ceiling off
664
+ * `first`/`last` for this call — same meaning as on {@link findAndCount},
665
+ * and it belongs here for the same reason: keyset paging is the pagination a
666
+ * long server-side walk SHOULD use (it is stable under concurrent writes),
667
+ * so capping it would leave the recommended export path as the one that
668
+ * cannot opt out.
645
669
  */
646
670
  findPage<E>(entity: Type<E>, input: unknown, opts?: {
647
671
  qb?: unknown;
648
672
  context?: FilterContext;
673
+ trustedPageSize?: boolean;
649
674
  }): Promise<CursorPage<E>>;
650
675
  /** Flips every keyset column's direction (for backward cursor paging). */
651
676
  private reverseKeyset;
@@ -658,8 +683,37 @@ export declare class FilterRunner {
658
683
  * Drops `where` column-filter clauses whose field is not a known scalar
659
684
  * column, relation, or dotted relation path on the entity — so a client
660
685
  * filter on an absent column (e.g. a base-scope `baseId` on a base-less
661
- * table) is silently ignored instead of crashing the ORM. Recurses AND/OR.
662
- * No-op (pass-through) when the adapter exposes no metadata.
686
+ * table) is dropped instead of crashing the ORM. Recurses AND/OR.
687
+ *
688
+ * The grammar check (`validateColumnFilters` → `isValidFieldPath`) only
689
+ * proves the field name is SQL-SAFE, not that it EXISTS: `ghostColumn`
690
+ * satisfies the pattern, sails through the operator allowlist, and blows up
691
+ * inside the ORM. That surfaces as a 500 for the consumer, and as a mid-run
692
+ * failure for a background job — both worse than not applying a constraint
693
+ * the entity cannot express in the first place.
694
+ *
695
+ * **Policy knob: `throwOnInvalid`, not `onUnknownKey`.** Three reasons, in
696
+ * order of weight: (1) `FilterModuleOptions.throwOnInvalid` is already
697
+ * DOCUMENTED as covering "unknown `where` columns" — static mode was simply
698
+ * never wired to it; (2) `applyDynamic` already routes this same function
699
+ * through `throwOnInvalid`, so choosing the other knob would recreate, in a
700
+ * new place, the very static-vs-dynamic asymmetry this fix closes; (3)
701
+ * `throwOnInvalid` is overridable per-`@Filterable`, while `onUnknownKey` is
702
+ * module-global — and whether a stray `where` column is a client bug or a
703
+ * tolerated legacy payload is a per-endpoint judgement. `onUnknownKey` keeps
704
+ * its own scope: keys of the STRUCTURED filter object, which are dispatch
705
+ * targets (`@FilterFor` / auto-field / relation), not column references.
706
+ *
707
+ * Default (`throwOnInvalid: false`) is drop-with-a-warning rather than a
708
+ * 400: it is the change that stops the crash without turning requests that
709
+ * work today into errors, and the warning names the field so the drop is
710
+ * observable rather than silent. Mirrors
711
+ * {@link pruneBlacklistedColumnFilters}, which made the same call.
712
+ *
713
+ * Falls back to accept-all (with a warning) when the adapter exposes no
714
+ * metadata — the same graceful degradation `resolveAutoFields` uses, so an
715
+ * adapter that cannot introspect keeps its pre-fix behavior instead of
716
+ * having every `where` clause dropped.
663
717
  */
664
718
  private pruneUnknownColumnFilters;
665
719
  /**
@@ -787,12 +841,28 @@ export declare class FilterRunner {
787
841
  */
788
842
  private resolveDistinctOrder;
789
843
  private handleUnknownKey;
844
+ /**
845
+ * Narrows an already-structured sort element. The `direction` check is the
846
+ * strict part: an unrecognised direction is dropped rather than coerced,
847
+ * because guessing `asc` for a client that asked for something else silently
848
+ * returns the wrong page of a paginated result.
849
+ */
850
+ private isSortItem;
851
+ /**
852
+ * Parses one `"-field"` / `"field"` token into a {@link SortItem}, or
853
+ * `undefined` when there is no field left after trimming (`""`, `" "`,
854
+ * a bare `"-"`). Shared by both string shapes so a token means the same
855
+ * thing whether it arrived inside `"a,-b"` or as `["a", "-b"]`.
856
+ */
857
+ private parseSortToken;
790
858
  /**
791
859
  * Parses raw sort input into an array of SortItem objects.
792
860
  *
793
861
  * Supports:
794
862
  * - String: `"-createdAt,name"` → `[{ field: 'createdAt', direction: 'desc' }, { field: 'name', direction: 'asc' }]`
863
+ * - Array of tokens: `["-createdAt", "name"]` — same token rules as the string form
795
864
  * - Array of SortItem objects: passed through as-is
865
+ * - Arrays mixing the two: each element is read by its own type
796
866
  * - Falsy values: returns empty array
797
867
  *
798
868
  * Minus prefix = desc, no prefix = asc (JSON:API convention).
@@ -851,7 +921,32 @@ export declare class FilterRunner {
851
921
  /**
852
922
  * Applies offset or cursor pagination to the query builder.
853
923
  * Cursor pagination logs a warning (not yet implemented).
924
+ *
925
+ * `trusted` bypasses the `maxPageSize` ceiling — see
926
+ * {@link FilterRunner.resolvePageSize}.
854
927
  */
855
928
  private applyPagination;
929
+ /**
930
+ * Resolves the effective page size from a requested one.
931
+ *
932
+ * `maxPageSize` is a MODULE-level ceiling, so one number has to answer two
933
+ * different questions, and the right answers disagree. For a size that came
934
+ * off an HTTP request the ceiling is the whole point: it is what stops a
935
+ * client asking for a million rows. For a size that came from the server's
936
+ * own code — an export writing a CSV, a scheduled report, a batch job — the
937
+ * ceiling is not protection, it is a silent wrong answer: the runner is
938
+ * handed `size: 10_000`, returns 100 rows, and the export loop reads
939
+ * `100 < 10_000` as "table exhausted" and writes a truncated file with no
940
+ * error anywhere.
941
+ *
942
+ * The runner cannot tell the two apart by looking at the number, so the CALL
943
+ * SITE says which it is. `trusted` means "this size is server-authored, not
944
+ * client input" — the one fact the caller knows and the runner never can.
945
+ *
946
+ * The minimum of 1 still applies either way: that is not a safety cap but a
947
+ * correctness one (a `LIMIT 0` or a negative limit is not a page), and
948
+ * trusting the caller's intent does not make `size: -5` mean anything.
949
+ */
950
+ private resolvePageSize;
856
951
  }
857
952
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/runner.js CHANGED
@@ -28,7 +28,7 @@ import { resolveDispatchTarget } from './input/dispatcher.js';
28
28
  import { normalizeInput } from './input/normalizer.js';
29
29
  import { parseSpatieInput } from './input/spatie-parser.js';
30
30
  import { validateInput } from './input/validator.js';
31
- import { normalizeOperator, validateColumnFilters } from './operators/validate-column-filter.js';
31
+ import { isValidFieldPath, normalizeOperator, validateColumnFilters, } from './operators/validate-column-filter.js';
32
32
  import { buildKeyset, decodeCursor, encodeCursor, extractCursorValues, } from './pagination/cursor.js';
33
33
  import { CONTEXT_ACCESSOR, FILTER_ADAPTER, FILTER_MODULE_OPTIONS } from './tokens.js';
34
34
  const MATCH_ALL_SET = { has: () => true };
@@ -481,7 +481,17 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
481
481
  const { plain: plainColumnFilters, computed: computedColumnFilters, aggregate: aggregateColumnFilters, } = this.splitSpecialColumnFilters(scopedColumnFilters, computedRegistry);
482
482
  // Apply column filters via adapter before @FilterFor dispatch
483
483
  if (plainColumnFilters.length > 0 && adapter?.applyColumnFilters) {
484
- const opAllowed = this.enforceOperatorAllowlist(plainColumnFilters, normalizedAllowed, throwOnInvalidPolicy);
484
+ // Everything left in `plain` is claimed to be a real column path, so
485
+ // it has to actually BE one. Runs before the operator allowlist: a
486
+ // field the entity does not have has no operator policy to violate,
487
+ // and reporting "operator X is not allowed on ghostColumn" would
488
+ // name the wrong problem. Needs `entity` to check against — a filter
489
+ // class without `@Filterable` metadata keeps the pre-fix
490
+ // pass-through, same as every other metadata-dependent gate here.
491
+ const knownColumnFilters = filterableMeta?.entity
492
+ ? this.pruneUnknownColumnFilters(plainColumnFilters, filterableMeta.entity, adapter, throwOnInvalidPolicy)
493
+ : plainColumnFilters;
494
+ const opAllowed = this.enforceOperatorAllowlist(knownColumnFilters, normalizedAllowed, throwOnInvalidPolicy);
485
495
  if (opAllowed.length > 0) {
486
496
  validateColumnFilters(opAllowed);
487
497
  adapter.applyColumnFilters(qb, opAllowed, filterableMeta?.entity);
@@ -647,6 +657,38 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
647
657
  }
648
658
  }
649
659
  }
660
+ // A JSON sub-path (`searchAttributes.name`). Not a member of the
661
+ // auto-field set — that set is built from real scalar columns, and the
662
+ // sub-path is not one — and not a relation either, so both branches above
663
+ // decline it and it used to fall straight into `handleUnknownKey`: dropped
664
+ // in silence under the default `throwOnInvalid: false`.
665
+ //
666
+ // `where[]` has always resolved the very same path, because
667
+ // `applyColumnFilters` takes the entity and can ask whether the head
668
+ // segment is a JSON column. So one predicate filtered through one request
669
+ // shape and was ignored through the other — and the ignoring shape returns
670
+ // a complete, unfiltered result set, which reads exactly like a successful
671
+ // query. Route it to the capability that already understands it.
672
+ //
673
+ // `resolveFieldPath` gates this: only a head segment the adapter confirms
674
+ // is a JSON column qualifies. `status.name` over a string column stays
675
+ // unknown rather than becoming an extract, so this widens what resolves,
676
+ // never what is invented.
677
+ if (key.includes('.') &&
678
+ filterableMeta &&
679
+ adapter?.resolveFieldPath &&
680
+ adapter?.applyColumnFilters &&
681
+ adapter.resolveFieldPath(filterableMeta.entity, key) === 'json') {
682
+ const jsonFilters = this.enforceOperatorAllowlist(this.valueToColumnFilters(key, value), normalizedAllowed, throwOnInvalidPolicy);
683
+ if (jsonFilters.length > 0) {
684
+ // Same three gates, in the same order, as the `where[]` path above:
685
+ // operator allowlist, then the SQL-safe field-path grammar, then the
686
+ // adapter. A sub-path must not be a way around either policy.
687
+ validateColumnFilters(jsonFilters);
688
+ adapter.applyColumnFilters(qb, jsonFilters, filterableMeta.entity);
689
+ }
690
+ continue;
691
+ }
650
692
  this.handleUnknownKey(key);
651
693
  }
652
694
  // Apply relation constraints in batch per relation
@@ -1175,14 +1217,32 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1175
1217
  const dotIndex = key.indexOf('.');
1176
1218
  const relName = key.substring(0, dotIndex);
1177
1219
  const fieldName = key.substring(dotIndex + 1);
1220
+ let handled = false;
1178
1221
  if (fieldName.length > 0 &&
1179
1222
  adapter.getEntityRelations &&
1180
1223
  adapter.applyAutoRelationField) {
1181
1224
  const rels = adapter.getEntityRelations(entity);
1182
1225
  if (rels?.some((r) => r.name === relName)) {
1183
1226
  adapter.applyAutoRelationField(qb, relName, fieldName, value);
1227
+ handled = true;
1184
1228
  }
1185
- // Unknown relation: silently skipped
1229
+ // Unknown relation: falls through to the JSON check below
1230
+ }
1231
+ // A JSON sub-path (`searchAttributes.name`), which is neither a plain
1232
+ // column nor a relation. `where[]` resolves it through
1233
+ // `applyColumnFilters`; without this the structured form skipped it in
1234
+ // silence and answered with an unfiltered result set that is
1235
+ // indistinguishable from a successful query. Mirrors the same branch in
1236
+ // `apply()` — the two request paths must not disagree about what a path
1237
+ // means. Gated on the adapter confirming the head segment is JSON, so
1238
+ // `status.name` over a string column stays unhandled.
1239
+ if (!handled &&
1240
+ adapter.resolveFieldPath &&
1241
+ adapter.applyColumnFilters &&
1242
+ adapter.resolveFieldPath(entity, key) === 'json') {
1243
+ const jsonFilters = this.valueToColumnFilters(key, value);
1244
+ validateColumnFilters(jsonFilters);
1245
+ adapter.applyColumnFilters(qb, jsonFilters, entity);
1186
1246
  }
1187
1247
  }
1188
1248
  else if (fieldNames.has(key)) {
@@ -1251,7 +1311,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1251
1311
  }
1252
1312
  }
1253
1313
  // Pagination
1254
- this.applyPagination(qb, rawPaginate, adapter);
1314
+ this.applyPagination(qb, rawPaginate, adapter, internal.trustedPageSize === true);
1255
1315
  }
1256
1316
  return qb;
1257
1317
  }
@@ -1267,6 +1327,14 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1267
1327
  *
1268
1328
  * Requires an adapter implementing `getResultAndCount` (and `populate` for
1269
1329
  * to-many includes). `applyDynamic` is unchanged; this is additive.
1330
+ *
1331
+ * `opts.trustedPageSize` declares that `paginate.size` was written by the
1332
+ * server, not received from a client, and lifts the module-level
1333
+ * `maxPageSize` ceiling for this call — see
1334
+ * {@link FilterRunner.resolvePageSize}. This is the entry point exports and
1335
+ * batch jobs use, so it is where the escape hatch is needed; without it they
1336
+ * abandon `paginate` for hand-built `limit`/`offset` and lose everything
1337
+ * else this method does.
1270
1338
  */
1271
1339
  async findAndCount(entity, input, opts = {}) {
1272
1340
  const adapter = this.resolveAdapter();
@@ -1287,7 +1355,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1287
1355
  select: structured.select,
1288
1356
  paginate: structured.paginate,
1289
1357
  include: joinIncludes,
1290
- }, qb, opts.context, { native: true });
1358
+ }, qb, opts.context, { native: true, trustedPageSize: opts.trustedPageSize === true });
1291
1359
  if (distinctFields.length > 0) {
1292
1360
  if (!adapter?.getDistinctResultAndCount) {
1293
1361
  throw new Error('findAndCount requires an adapter that implements getDistinctResultAndCount() for distinct projections.');
@@ -1924,6 +1992,13 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1924
1992
  * Requires an adapter implementing `getResult`, `getPrimaryKey`,
1925
1993
  * `applyKeysetPagination` and `applyKeysetOrderAndLimit`. Additive — does not
1926
1994
  * change `apply`/`applyDynamic`/`findAndCount`.
1995
+ *
1996
+ * `opts.trustedPageSize` lifts the module-level `maxPageSize` ceiling off
1997
+ * `first`/`last` for this call — same meaning as on {@link findAndCount},
1998
+ * and it belongs here for the same reason: keyset paging is the pagination a
1999
+ * long server-side walk SHOULD use (it is stable under concurrent writes),
2000
+ * so capping it would leave the recommended export path as the one that
2001
+ * cannot opt out.
1927
2002
  */
1928
2003
  async findPage(entity, input, opts = {}) {
1929
2004
  const adapter = this.resolveAdapter();
@@ -1943,9 +2018,7 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
1943
2018
  const before = after === undefined && typeof paginate.before === 'string' ? paginate.before : undefined;
1944
2019
  const backward = before !== undefined;
1945
2020
  const cursorStr = after ?? before;
1946
- const maxSize = this.options.maxPageSize ?? 100;
1947
- const requested = backward ? Number(paginate.last) : Number(paginate.first);
1948
- const limit = Math.min(Math.max(1, requested || 25), maxSize);
2021
+ const limit = this.resolvePageSize(backward ? paginate.last : paginate.first, opts.trustedPageSize === true);
1949
2022
  // Resolve the effective sort (falling back to defaultSort) and validate it
1950
2023
  // against entity metadata, then append the primary key as a tiebreaker.
1951
2024
  const parsedSorts = this.remapSortAliases(this.parseSorts(structured.sort), filterableMeta);
@@ -2031,40 +2104,117 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
2031
2104
  * Drops `where` column-filter clauses whose field is not a known scalar
2032
2105
  * column, relation, or dotted relation path on the entity — so a client
2033
2106
  * filter on an absent column (e.g. a base-scope `baseId` on a base-less
2034
- * table) is silently ignored instead of crashing the ORM. Recurses AND/OR.
2035
- * No-op (pass-through) when the adapter exposes no metadata.
2107
+ * table) is dropped instead of crashing the ORM. Recurses AND/OR.
2108
+ *
2109
+ * The grammar check (`validateColumnFilters` → `isValidFieldPath`) only
2110
+ * proves the field name is SQL-SAFE, not that it EXISTS: `ghostColumn`
2111
+ * satisfies the pattern, sails through the operator allowlist, and blows up
2112
+ * inside the ORM. That surfaces as a 500 for the consumer, and as a mid-run
2113
+ * failure for a background job — both worse than not applying a constraint
2114
+ * the entity cannot express in the first place.
2115
+ *
2116
+ * **Policy knob: `throwOnInvalid`, not `onUnknownKey`.** Three reasons, in
2117
+ * order of weight: (1) `FilterModuleOptions.throwOnInvalid` is already
2118
+ * DOCUMENTED as covering "unknown `where` columns" — static mode was simply
2119
+ * never wired to it; (2) `applyDynamic` already routes this same function
2120
+ * through `throwOnInvalid`, so choosing the other knob would recreate, in a
2121
+ * new place, the very static-vs-dynamic asymmetry this fix closes; (3)
2122
+ * `throwOnInvalid` is overridable per-`@Filterable`, while `onUnknownKey` is
2123
+ * module-global — and whether a stray `where` column is a client bug or a
2124
+ * tolerated legacy payload is a per-endpoint judgement. `onUnknownKey` keeps
2125
+ * its own scope: keys of the STRUCTURED filter object, which are dispatch
2126
+ * targets (`@FilterFor` / auto-field / relation), not column references.
2127
+ *
2128
+ * Default (`throwOnInvalid: false`) is drop-with-a-warning rather than a
2129
+ * 400: it is the change that stops the crash without turning requests that
2130
+ * work today into errors, and the warning names the field so the drop is
2131
+ * observable rather than silent. Mirrors
2132
+ * {@link pruneBlacklistedColumnFilters}, which made the same call.
2133
+ *
2134
+ * Falls back to accept-all (with a warning) when the adapter exposes no
2135
+ * metadata — the same graceful degradation `resolveAutoFields` uses, so an
2136
+ * adapter that cannot introspect keeps its pre-fix behavior instead of
2137
+ * having every `where` clause dropped.
2036
2138
  */
2037
2139
  pruneUnknownColumnFilters(filters, entity, adapter, throwOnInvalid = false) {
2038
2140
  const fieldNames = new Set((adapter.getEntityFields?.(entity) ?? []).map((f) => f.name));
2039
2141
  const relationNames = new Set((adapter.getEntityRelations?.(entity) ?? []).map((r) => r.name));
2040
- if (fieldNames.size === 0 && relationNames.size === 0)
2142
+ if (fieldNames.size === 0 && relationNames.size === 0) {
2143
+ this.logger.warn(`where[] column filters on ${entity.name} cannot be validated against entity metadata. The adapter does not implement getEntityFields() or returned null. All where columns will be accepted (legacy behavior). Consider upgrading your adapter.`);
2041
2144
  return filters;
2145
+ }
2042
2146
  // When the adapter can resolve relation paths, validate the full chain
2043
2147
  // (`author.profile.country`) so a bad deep path is dropped instead of
2044
2148
  // reaching the ORM as an unknown column. Both scalar leaves and bare
2045
2149
  // relations (FK / nested constraints) are filterable. Otherwise fall back
2046
- // to a single-hop check (scalar, bare relation, or `relation.field`).
2150
+ // to a single-hop check on the path's ROOT segment.
2151
+ //
2152
+ // The fallback accepts a dotted path rooted at a scalar column too, not
2153
+ // just at a relation: `metadata.tier` is a JSON sub-path, and an adapter
2154
+ // without `resolveFieldPath` cannot tell a JSON column from any other
2155
+ // scalar. Refusing it would turn "we can't check this" into "this is
2156
+ // wrong" and break JSON filtering on exactly the adapters least able to
2157
+ // defend themselves.
2158
+ //
2159
+ // `[]` is stripped first: it is the JSON-array traversal marker
2160
+ // (`problems.checks[].field`, see `parseFieldPath`), never part of a
2161
+ // column name, so leaving it in would fail every lookup it appears in.
2162
+ const rootOf = (field) => {
2163
+ const dot = field.indexOf('.');
2164
+ const root = dot > 0 ? field.slice(0, dot) : field;
2165
+ return root.endsWith('[]') ? root.slice(0, -2) : root;
2166
+ };
2047
2167
  const isKnown = adapter.resolveFieldPath
2048
- ? (field) => adapter.resolveFieldPath(entity, field) !== null
2168
+ ? (field) => adapter.resolveFieldPath(entity, field.replaceAll('[]', '')) !== null
2049
2169
  : (field) => {
2050
- if (fieldNames.has(field) || relationNames.has(field))
2051
- return true;
2052
- const dot = field.indexOf('.');
2053
- return dot > 0 && relationNames.has(field.slice(0, dot));
2170
+ const root = rootOf(field);
2171
+ return fieldNames.has(root) || relationNames.has(root);
2054
2172
  };
2173
+ const warned = new Set();
2055
2174
  const prune = (clauses) => clauses
2056
- .filter((clause) => {
2057
- const known = !clause.field || isKnown(clause.field);
2058
- if (!known && throwOnInvalid) {
2175
+ .map((clause) => {
2176
+ const AND = clause.AND ? prune(clause.AND) : undefined;
2177
+ const OR = clause.OR ? prune(clause.OR) : undefined;
2178
+ const withGroups = {
2179
+ ...clause,
2180
+ ...(AND ? { AND } : {}),
2181
+ ...(OR ? { OR } : {}),
2182
+ };
2183
+ // A MALFORMED path (`visits.$notafn`, anything outside the SQL-safe
2184
+ // grammar) is deliberately passed through untouched, not dropped:
2185
+ // `validateColumnFilters` downstream rejects it loudly, and that
2186
+ // rejection is a safety guarantee. Quietly swallowing SQL-unsafe
2187
+ // input here would trade a hard error for silence — this prune
2188
+ // answers "does this column exist", never "is this path legal".
2189
+ if (!clause.field || !isValidFieldPath(clause.field) || isKnown(clause.field)) {
2190
+ return withGroups;
2191
+ }
2192
+ if (throwOnInvalid) {
2059
2193
  throw new BadRequestException(`Unknown filter column: "${clause.field}".`);
2060
2194
  }
2061
- return known;
2195
+ if (!warned.has(clause.field)) {
2196
+ warned.add(clause.field);
2197
+ this.logger.warn(`Column filter (where) on unknown column "${clause.field}" ignored — it is not a field or relation of ${entity.name}.`);
2198
+ }
2199
+ // The unknown LEAF goes; a group the clause carried stays. Dropping
2200
+ // the clause wholesale would take its children's constraints with
2201
+ // it, WIDENING the query — returning rows the client filtered out is
2202
+ // a worse failure than the 500 this replaces.
2203
+ if (AND?.length || OR?.length) {
2204
+ return {
2205
+ ...(AND?.length ? { AND } : {}),
2206
+ ...(OR?.length ? { OR } : {}),
2207
+ };
2208
+ }
2209
+ return null;
2062
2210
  })
2063
- .map((clause) => ({
2064
- ...clause,
2065
- ...(clause.AND && { AND: prune(clause.AND) }),
2066
- ...(clause.OR && { OR: prune(clause.OR) }),
2067
- }));
2211
+ .filter((clause) => clause !== null)
2212
+ // Collapse group nodes (no field of their own) emptied by pruning —
2213
+ // an empty `{ OR: [] }` reaching the adapter is a condition with no
2214
+ // operands, which each ORM renders differently and none usefully.
2215
+ .filter((clause) => Boolean(clause.field) ||
2216
+ Boolean(clause.AND && clause.AND.length > 0) ||
2217
+ Boolean(clause.OR && clause.OR.length > 0));
2068
2218
  return prune(filters);
2069
2219
  }
2070
2220
  /**
@@ -2383,12 +2533,41 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
2383
2533
  this.logger.warn(`Unknown filter key: "${key}"`);
2384
2534
  }
2385
2535
  }
2536
+ /**
2537
+ * Narrows an already-structured sort element. The `direction` check is the
2538
+ * strict part: an unrecognised direction is dropped rather than coerced,
2539
+ * because guessing `asc` for a client that asked for something else silently
2540
+ * returns the wrong page of a paginated result.
2541
+ */
2542
+ isSortItem(item) {
2543
+ if (item == null || typeof item !== 'object')
2544
+ return false;
2545
+ if (!('field' in item) || !('direction' in item))
2546
+ return false;
2547
+ return (typeof item.field === 'string' && (item.direction === 'asc' || item.direction === 'desc'));
2548
+ }
2549
+ /**
2550
+ * Parses one `"-field"` / `"field"` token into a {@link SortItem}, or
2551
+ * `undefined` when there is no field left after trimming (`""`, `" "`,
2552
+ * a bare `"-"`). Shared by both string shapes so a token means the same
2553
+ * thing whether it arrived inside `"a,-b"` or as `["a", "-b"]`.
2554
+ */
2555
+ parseSortToken(token) {
2556
+ const trimmed = token.trim();
2557
+ const desc = trimmed.startsWith('-');
2558
+ const field = desc ? trimmed.substring(1) : trimmed;
2559
+ if (field.length === 0)
2560
+ return undefined;
2561
+ return { field, direction: desc ? 'desc' : 'asc' };
2562
+ }
2386
2563
  /**
2387
2564
  * Parses raw sort input into an array of SortItem objects.
2388
2565
  *
2389
2566
  * Supports:
2390
2567
  * - String: `"-createdAt,name"` → `[{ field: 'createdAt', direction: 'desc' }, { field: 'name', direction: 'asc' }]`
2568
+ * - Array of tokens: `["-createdAt", "name"]` — same token rules as the string form
2391
2569
  * - Array of SortItem objects: passed through as-is
2570
+ * - Arrays mixing the two: each element is read by its own type
2392
2571
  * - Falsy values: returns empty array
2393
2572
  *
2394
2573
  * Minus prefix = desc, no prefix = asc (JSON:API convention).
@@ -2399,21 +2578,22 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
2399
2578
  if (typeof raw === 'string') {
2400
2579
  return raw
2401
2580
  .split(',')
2402
- .map((s) => s.trim())
2403
- .filter(Boolean)
2404
- .map((token) => {
2405
- if (token.startsWith('-')) {
2406
- return { field: token.substring(1), direction: 'desc' };
2407
- }
2408
- return { field: token, direction: 'asc' };
2409
- })
2410
- .filter((s) => s.field.length > 0);
2581
+ .map((token) => this.parseSortToken(token))
2582
+ .filter((s) => s !== undefined);
2411
2583
  }
2412
2584
  if (Array.isArray(raw)) {
2413
- return raw.filter((item) => item != null &&
2414
- typeof item === 'object' &&
2415
- typeof item.field === 'string' &&
2416
- (item.direction === 'asc' || item.direction === 'desc'));
2585
+ return raw.flatMap((item) => {
2586
+ // A `string[]` is what a JSON:API-ish array and a legacy
2587
+ // `orderBy: string[]` both look like. It used to fail the
2588
+ // `typeof item === 'object'` test and get filtered out, so the
2589
+ // ORDER BY disappeared with no error, no warning and no 400 — the
2590
+ // grid just silently stopped sorting. Read it as tokens instead.
2591
+ if (typeof item === 'string') {
2592
+ const parsed = this.parseSortToken(item);
2593
+ return parsed ? [parsed] : [];
2594
+ }
2595
+ return this.isSortItem(item) ? [item] : [];
2596
+ });
2417
2597
  }
2418
2598
  return [];
2419
2599
  }
@@ -2623,16 +2803,18 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
2623
2803
  /**
2624
2804
  * Applies offset or cursor pagination to the query builder.
2625
2805
  * Cursor pagination logs a warning (not yet implemented).
2806
+ *
2807
+ * `trusted` bypasses the `maxPageSize` ceiling — see
2808
+ * {@link FilterRunner.resolvePageSize}.
2626
2809
  */
2627
- applyPagination(qb, rawPaginate, adapter) {
2810
+ applyPagination(qb, rawPaginate, adapter, trusted = false) {
2628
2811
  if (!rawPaginate || typeof rawPaginate !== 'object')
2629
2812
  return;
2630
2813
  const p = rawPaginate;
2631
2814
  if ('page' in p && 'size' in p) {
2632
2815
  if (!adapter?.applyOffsetPagination)
2633
2816
  return;
2634
- const maxSize = this.options.maxPageSize ?? 100;
2635
- const size = Math.min(Math.max(1, Number(p.size) || 25), maxSize);
2817
+ const size = this.resolvePageSize(p.size, trusted);
2636
2818
  const page = Math.max(0, Number(p.page) || 0);
2637
2819
  adapter.applyOffsetPagination(qb, page, size);
2638
2820
  }
@@ -2640,6 +2822,33 @@ let FilterRunner = FilterRunner_1 = class FilterRunner {
2640
2822
  this.logger.warn('Cursor pagination is not yet implemented. Use offset pagination.');
2641
2823
  }
2642
2824
  }
2825
+ /**
2826
+ * Resolves the effective page size from a requested one.
2827
+ *
2828
+ * `maxPageSize` is a MODULE-level ceiling, so one number has to answer two
2829
+ * different questions, and the right answers disagree. For a size that came
2830
+ * off an HTTP request the ceiling is the whole point: it is what stops a
2831
+ * client asking for a million rows. For a size that came from the server's
2832
+ * own code — an export writing a CSV, a scheduled report, a batch job — the
2833
+ * ceiling is not protection, it is a silent wrong answer: the runner is
2834
+ * handed `size: 10_000`, returns 100 rows, and the export loop reads
2835
+ * `100 < 10_000` as "table exhausted" and writes a truncated file with no
2836
+ * error anywhere.
2837
+ *
2838
+ * The runner cannot tell the two apart by looking at the number, so the CALL
2839
+ * SITE says which it is. `trusted` means "this size is server-authored, not
2840
+ * client input" — the one fact the caller knows and the runner never can.
2841
+ *
2842
+ * The minimum of 1 still applies either way: that is not a safety cap but a
2843
+ * correctness one (a `LIMIT 0` or a negative limit is not a page), and
2844
+ * trusting the caller's intent does not make `size: -5` mean anything.
2845
+ */
2846
+ resolvePageSize(rawSize, trusted) {
2847
+ const requested = Math.max(1, Number(rawSize) || 25);
2848
+ if (trusted)
2849
+ return requested;
2850
+ return Math.min(requested, this.options.maxPageSize ?? 100);
2851
+ }
2643
2852
  };
2644
2853
  FilterRunner = FilterRunner_1 = __decorate([
2645
2854
  Injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dudousxd/nestjs-filter",
3
- "version": "1.25.0",
3
+ "version": "1.29.0",
4
4
  "description": "NestJS filter library — core abstractions, runner, decorators.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -82,16 +82,32 @@ constrain `where`. Source: `packages/core/src/runner.ts` (`pruneBlacklistedColum
82
82
 
83
83
  ### 2. `throwOnInvalid` and `onUnknownKey`: fail loud, not silent
84
84
 
85
- By default invalid sorts/distinct/unknown `where` columns are silently dropped and unknown
86
- keys ignored — fine for tolerant UIs, dangerous for debugging an API contract.
87
- `throwOnInvalid: true` makes them raise `BadRequestException`; `onUnknownKey: 'throw'` makes
88
- an unmapped key raise `UnknownFilterKeyException`. Both can be set per `@Filterable`:
85
+ By default invalid sorts/distinct/unknown `where` columns are dropped (with a warning) and
86
+ unknown structured keys ignored — fine for tolerant UIs, dangerous for debugging an API
87
+ contract. `throwOnInvalid: true` makes them raise `BadRequestException`; `onUnknownKey:
88
+ 'throw'` makes an unmapped key raise `UnknownFilterKeyException`. `throwOnInvalid` can be set
89
+ per `@Filterable`; `onUnknownKey` is module-level only:
89
90
 
90
91
  ```typescript
91
92
  @Filterable({ entity: User, throwOnInvalid: true })
92
93
  export class UserFilter extends MikroOrmFilter<User> {}
93
94
  ```
94
95
 
96
+ The two knobs do not overlap. `onUnknownKey` governs the **structured `filter` object**,
97
+ whose keys are dispatch targets (`@FilterFor` method, auto-field, relation, computed field,
98
+ aggregate path). `throwOnInvalid` governs things resolved as **entity paths** — `sort`,
99
+ `distinct`, `select`, and every `where[]` clause.
100
+
101
+ Unknown `where[]` columns are checked against ORM metadata in both the static
102
+ (`@Filterable`) and dynamic (`applyDynamic`) paths, recursing into AND/OR groups: without
103
+ that check `{ field: 'ghostColumn', operator: 'equals', value: 1 }` passes the SQL-safe-name
104
+ grammar and the operator allowlist, then fails inside the ORM — a 500 for the caller, or a
105
+ mid-run failure for a background job. When a clause's own field is unknown but it carries a
106
+ group, only the leaf is dropped; taking the whole clause would drop its children's
107
+ constraints and return rows the client filtered out. Computed aliases, aggregate paths,
108
+ dotted relation paths and JSON sub-paths are resolved by their own routes and unaffected,
109
+ and an adapter with no `getEntityFields` falls back to accepting everything with a warning.
110
+
95
111
  Source: `packages/core/src/runner.ts` (`resolveThrowOnInvalid`, `handleUnknownKey`,
96
112
  `validateSorts`, `validateDistinct`, `pruneUnknownColumnFilters`)
97
113
 
@@ -117,7 +117,8 @@ Source: `packages/core/src/runner.ts` (`resolveAutoFields`, `enforceAutoFieldOpe
117
117
  `static search = { vector, rank }`).
118
118
  - **distinct**: `SELECT DISTINCT` of a field — for populating filter dropdowns.
119
119
  - **select**: sparse fieldset (narrows the projection, no DISTINCT).
120
- - **paginate**: `{ page, size }` for offset paging (`size` capped by `maxPageSize`, default 100).
120
+ - **paginate**: `{ page, size }` for offset paging (`size` capped by `maxPageSize`, default 100
121
+ a trusted server-side caller lifts the cap with `trustedPageSize`, see below).
121
122
 
122
123
  Source: `packages/core/src/runner.ts` (`parseSorts`, `parseIncludes`, `applyGlobalSearch`, `applyProjection`, `applyPagination`)
123
124
 
@@ -129,11 +130,23 @@ Source: `packages/core/src/runner.ts` (`parseSorts`, `parseIncludes`, `applyGlob
129
130
  `{ items, nextCursor, prevCursor, hasNext, hasPrev }`.
130
131
  - `describe(entity)` returns `{ fields, relations }` from ORM metadata (memoized) for
131
132
  building dynamic UIs / column pickers.
133
+ - Both accept `{ trustedPageSize: true }` in their third `opts` argument, which lifts the
134
+ module-level `maxPageSize` ceiling for that call only. Use it when the size is written by
135
+ server code (exports, batch jobs, scheduled reports) — an export loop that asks for 10 000
136
+ and silently receives 100 reads the short page as "table exhausted" and truncates its file.
137
+ Never pass a client-supplied size through it.
132
138
 
133
139
  ```typescript
134
140
  const { rows, total } = await this.runner.findAndCount(User, input);
135
141
  const page = await this.runner.findPage(User, { paginate: { first: 25, after: cursor } });
136
142
  const meta = this.runner.describe(User); // { fields: {...}, relations: {...} }
143
+
144
+ // Export: the size is ours, not the client's — so say so.
145
+ const chunk = await this.runner.findAndCount(
146
+ User,
147
+ { paginate: { page, size: 10_000 } },
148
+ { trustedPageSize: true },
149
+ );
137
150
  ```
138
151
 
139
152
  Source: `packages/core/src/runner.ts`