json-rest-api 1.0.22 → 1.0.23

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.
Files changed (260) hide show
  1. package/CLAUDE.md +1 -2
  2. package/JSKIT_BACKEND_MIGRATION_TRACKER.txt +180 -0
  3. package/SINGLE_VALIDATION_CONTRACT_TODO.txt +172 -0
  4. package/docs/API.md +51 -14
  5. package/docs/COMPARISON.md +2 -2
  6. package/docs/GUIDE/GUIDE_1_Initial_Setup.md +28 -1
  7. package/docs/GUIDE/GUIDE_2_2_Manipulating_And_Searching_Tables.md +5 -1
  8. package/docs/GUIDE/GUIDE_2_7_Pagination_And_Ordering.md +3 -1
  9. package/docs/GUIDE/GUIDE_2_8_Effects_of_PUT_and_PATCH.md +12 -60
  10. package/docs/GUIDE/GUIDE_2_Data_And_Relations.md +2 -2
  11. package/docs/GUIDE/GUIDE_3_Field_Transformations.md +5 -1
  12. package/docs/GUIDE/GUIDE_7_Hooks_Data_Management_And_Plugins.md +2 -0
  13. package/docs/GUIDE/GUIDE_X_Autofiltering.md +355 -0
  14. package/docs/GUIDE/GUIDE_X_Fastify.md +78 -0
  15. package/docs/GUIDE/GUIDE_X_Knex_Schema_And_Migrations.md +250 -0
  16. package/docs/GUIDE/GUIDE_X_Query_Projections.md +159 -0
  17. package/docs/GUIDE/GUIDE_X_Writing_Plugins.md +199 -0
  18. package/docs/GUIDE/index.md +18 -9
  19. package/docs/QUICKSTART.md +5 -1
  20. package/docs/index.md +1 -1
  21. package/index.js +3 -2
  22. package/package.json +2 -2
  23. package/plugins/core/connectors/express-plugin.js +97 -184
  24. package/plugins/core/connectors/fastify-plugin.js +206 -0
  25. package/plugins/core/connectors/lib/connector-core.js +195 -0
  26. package/plugins/core/connectors/lib/transport-http-helpers.js +122 -0
  27. package/plugins/core/connectors/lib/transport-route-schemas.js +92 -0
  28. package/plugins/core/lib/dbIntrospection.js +1078 -0
  29. package/plugins/core/lib/dbTablesOperations.js +1104 -160
  30. package/plugins/core/lib/querying/knex-json-api-transformers-querying.js +5 -2
  31. package/plugins/core/lib/querying/knex-process-includes.js +3 -4
  32. package/plugins/core/lib/querying/knex-query-helpers.js +17 -71
  33. package/plugins/core/lib/querying/knex-relationship-includes.js +466 -206
  34. package/plugins/core/lib/querying/query-builder-utils.js +19 -0
  35. package/plugins/core/lib/querying/query-field-sort-helpers.js +135 -0
  36. package/plugins/core/lib/querying/sort-helpers.js +33 -0
  37. package/plugins/core/lib/querying/storage-adapter-utils.js +51 -0
  38. package/plugins/core/lib/querying/url-helpers.js +8 -2
  39. package/plugins/core/lib/querying-writing/compile-schemas.js +12 -1
  40. package/plugins/core/lib/querying-writing/knex-field-helpers.js +83 -13
  41. package/plugins/core/lib/querying-writing/knex-json-api-transformers.js +13 -12
  42. package/plugins/core/lib/querying-writing/query-field-helpers.js +88 -0
  43. package/plugins/core/lib/querying-writing/request-contracts.js +590 -0
  44. package/plugins/core/lib/storage/canonical-storage-mapping.js +113 -0
  45. package/plugins/core/lib/storage/storage-adapter.js +79 -2
  46. package/plugins/core/lib/storage/storage-mapping.js +204 -0
  47. package/plugins/core/rest-api-anyapi-knex-plugin.js +355 -228
  48. package/plugins/core/rest-api-autofilter-plugin.js +414 -0
  49. package/plugins/core/rest-api-knex-plugin.js +249 -211
  50. package/plugins/core/rest-api-plugin-hooks/register-relationship-routes.js +10 -5
  51. package/plugins/core/rest-api-plugin-hooks/register-scope-routes.js +12 -6
  52. package/plugins/core/rest-api-plugin-methods/apply-query-filters.js +41 -0
  53. package/plugins/core/rest-api-plugin-methods/common.js +121 -83
  54. package/plugins/core/rest-api-plugin-methods/enrich-attributes.js +6 -1
  55. package/plugins/core/rest-api-plugin-methods/get.js +23 -14
  56. package/plugins/core/rest-api-plugin-methods/patch.js +28 -12
  57. package/plugins/core/rest-api-plugin-methods/post.js +13 -8
  58. package/plugins/core/rest-api-plugin-methods/put.js +45 -21
  59. package/plugins/core/rest-api-plugin-methods/query.js +15 -53
  60. package/plugins/core/rest-api-plugin.js +2 -0
  61. package/plugins/core/rest-api-positioning-plugin.js +1 -1
  62. package/plugins/core/rest-api-query-projections-plugin.js +130 -0
  63. package/plugins/core/socketio-plugin.js +1 -3
  64. package/tests/autofilter.test.js +463 -0
  65. package/tests/custom-id-simplified-post.test.js +75 -0
  66. package/tests/custom-idproperty-relationships.test.js +33 -0
  67. package/tests/db-introspection.test.js +518 -0
  68. package/tests/db-table-operations.test.js +781 -0
  69. package/tests/fastify-plugin.test.js +141 -0
  70. package/tests/field-getters.test.js +1 -2
  71. package/tests/field-setters.test.js +0 -4
  72. package/tests/fixtures/api-configs.js +188 -219
  73. package/tests/helpers/fake-fastify.js +99 -0
  74. package/tests/http-connectors-parity.test.js +235 -0
  75. package/tests/projected-fields.test.js +319 -0
  76. package/tests/relationships.test.js +3 -3
  77. package/tests/searchschema-knex-behavior.test.js +187 -0
  78. package/tests/searchschema-merge.test.js +21 -69
  79. package/tests/storage-mapping.test.js +210 -0
  80. package/audit/00-charter.md +0 -103
  81. package/audit/01-scope-map.md +0 -84
  82. package/audit/02-coverage-matrix.csv +0 -174
  83. package/audit/03-invariants.md +0 -123
  84. package/audit/04-standards-rubric.md +0 -56
  85. package/audit/05-competitor-rubric.md +0 -77
  86. package/audit/06-findings.md +0 -160
  87. package/audit/07-risk-register.csv +0 -10
  88. package/audit/08-remediation-roadmap.md +0 -177
  89. package/audit/09-signoff-check.md +0 -23
  90. package/audit/10-final-synthesis.md +0 -29
  91. package/audit/evidence/code/all-files-json-rest-api.txt +0 -168
  92. package/audit/evidence/code/all-files-json-rest-schema.txt +0 -12
  93. package/audit/evidence/code/boundary-leak-checks.txt +0 -72
  94. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__bulk-operations-plugin.js.txt +0 -480
  95. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__express-plugin.js.txt +0 -532
  96. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__busboy-detector.js.txt +0 -175
  97. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__formidable-detector.js.txt +0 -138
  98. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__request-helpers.js.txt +0 -222
  99. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__file-handling-plugin.js.txt +0 -342
  100. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__dbTablesOperations.js.txt +0 -304
  101. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__fractional-positioning.js.txt +0 -188
  102. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__compile-schemas.js.txt +0 -336
  103. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__connectors-query-parser.js.txt +0 -165
  104. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-capabilities.js.txt +0 -265
  105. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-value-normalizers.js.txt +0 -369
  106. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__default-data-helpers.js.txt +0 -72
  107. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__field-utils.js.txt +0 -139
  108. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-constants.js.txt +0 -45
  109. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-field-helpers.js.txt +0 -396
  110. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-json-api-transformers.js.txt +0 -162
  111. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__payload-validators.js.txt +0 -1314
  112. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__schema-helpers.js.txt +0 -488
  113. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__scope-validations.js.txt +0 -484
  114. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__simplified-helpers.js.txt +0 -857
  115. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-cross-table-search.js.txt +0 -565
  116. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-json-api-transformers-querying.js.txt +0 -485
  117. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-pagination-helpers.js.txt +0 -560
  118. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-process-includes.js.txt +0 -167
  119. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers-base.js.txt +0 -109
  120. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers.js.txt +0 -1064
  121. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-relationship-includes.js.txt +0 -1983
  122. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-window-queries.js.txt +0 -328
  123. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__url-helpers.js.txt +0 -119
  124. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__storage__storage-adapter.js.txt +0 -160
  125. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__many-to-many-manipulations.js.txt +0 -300
  126. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__relationship-processor.js.txt +0 -245
  127. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-access.js.txt +0 -459
  128. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-cors-plugin.js.txt +0 -237
  129. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-knex-plugin.js.txt +0 -1135
  130. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-multihome-plugin.js.txt +0 -314
  131. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__compile-resource-schemas.js.txt +0 -7
  132. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-relationship-routes.js.txt +0 -71
  133. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-scope-routes.js.txt +0 -102
  134. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__turn-scope-init-into-vars.js.txt +0 -49
  135. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__validate-include-configurations.js.txt +0 -39
  136. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__add-route.js.txt +0 -23
  137. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__check-permissions.js.txt +0 -13
  138. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__common.js.txt +0 -639
  139. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete-relationship.js.txt +0 -117
  140. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete.js.txt +0 -104
  141. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__enrich-attributes.js.txt +0 -199
  142. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-related.js.txt +0 -353
  143. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-relationship.js.txt +0 -61
  144. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get.js.txt +0 -184
  145. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch-relationship.js.txt +0 -55
  146. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch.js.txt +0 -191
  147. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post-relationship.js.txt +0 -110
  148. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post.js.txt +0 -168
  149. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__put.js.txt +0 -253
  150. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__query.js.txt +0 -207
  151. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__release.js.txt +0 -12
  152. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin.js.txt +0 -165
  153. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-positioning-plugin.js.txt +0 -668
  154. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__socketio-plugin.js.txt +0 -621
  155. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__local-storage.js.txt +0 -218
  156. package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__s3-storage.js.txt +0 -124
  157. package/audit/evidence/code/critical-pass1/json-rest-schema__src__CorePlugin.js.txt +0 -269
  158. package/audit/evidence/code/critical-pass1/json-rest-schema__src__Schema.js.txt +0 -242
  159. package/audit/evidence/code/critical-pass1/json-rest-schema__src__index.js.txt +0 -77
  160. package/audit/evidence/code/critical-pass1-risk-keywords.txt +0 -238
  161. package/audit/evidence/code/critical-pass1-summary.csv +0 -67
  162. package/audit/evidence/code/critical-pass2-summary.csv +0 -67
  163. package/audit/evidence/code/early-silent-zones-no-test-token.txt +0 -57
  164. package/audit/evidence/code/error-model-signals.txt +0 -98
  165. package/audit/evidence/code/git-files-json-rest-api.txt +0 -171
  166. package/audit/evidence/code/git-files-json-rest-schema.txt +0 -27
  167. package/audit/evidence/code/hook-flow-signals.txt +0 -282
  168. package/audit/evidence/code/idproperty-signals.txt +0 -157
  169. package/audit/evidence/code/import-cycles-non-anyapi.txt +0 -3
  170. package/audit/evidence/code/import-hotspots-non-anyapi.txt +0 -96
  171. package/audit/evidence/code/imports-json-rest-api.txt +0 -354
  172. package/audit/evidence/code/imports-json-rest-schema.txt +0 -15
  173. package/audit/evidence/code/in-scope-files-json-rest-api.txt +0 -160
  174. package/audit/evidence/code/in-scope-files-json-rest-schema.txt +0 -13
  175. package/audit/evidence/code/non-anyapi-core-files.txt +0 -101
  176. package/audit/evidence/code/permission-signals.txt +0 -193
  177. package/audit/evidence/code/query-include-signals.txt +0 -687
  178. package/audit/evidence/code/transaction-signals.txt +0 -28
  179. package/audit/evidence/code/validation-signals.txt +0 -650
  180. package/audit/evidence/code/write-path-signals.txt +0 -61
  181. package/audit/evidence/docs/docs-claims-signals.txt +0 -1075
  182. package/audit/evidence/docs/schema-docs-claims-signals.txt +0 -179
  183. package/audit/evidence/external/corpus-freeze.md +0 -21
  184. package/audit/evidence/external/npm-competitor-metadata.txt +0 -70
  185. package/audit/evidence/external/npm-download-signals.txt +0 -23
  186. package/audit/evidence/external/npm-jsonapi-server.txt +0 -8
  187. package/audit/evidence/external/npm-modern-jsonapi-metadata.txt +0 -38
  188. package/audit/evidence/external/readme-fortune-signals.txt +0 -26
  189. package/audit/evidence/external/readme-fortune.md +0 -165
  190. package/audit/evidence/external/readme-json-api-serializer-signals.txt +0 -80
  191. package/audit/evidence/external/readme-json-api-serializer.md +0 -690
  192. package/audit/evidence/external/readme-jsonapi-serde-server-signals.txt +0 -0
  193. package/audit/evidence/external/readme-jsonapi-serde-server.md +0 -22
  194. package/audit/evidence/external/readme-jsonapi-serializer-signals.txt +0 -63
  195. package/audit/evidence/external/readme-jsonapi-serializer.md +0 -315
  196. package/audit/evidence/external/readme-jsonapi-server-signals.txt +0 -19
  197. package/audit/evidence/external/readme-jsonapi-server.md +0 -104
  198. package/audit/evidence/external/readme-nestjs-json-api-signals.txt +0 -4
  199. package/audit/evidence/external/readme-nestjs-json-api.md +0 -94
  200. package/audit/evidence/external/readme-yaser-json-api-nestjs-signals.txt +0 -47
  201. package/audit/evidence/external/readme-yaser-json-api-nestjs.md +0 -447
  202. package/audit/evidence/external/standard-jsonapi-snippets.txt +0 -84
  203. package/audit/evidence/external/standard-rfc-snippets.txt +0 -168
  204. package/audit/evidence/external/standards-sources.txt +0 -6
  205. package/audit/evidence/runtime/baseline-commits.txt +0 -2
  206. package/audit/evidence/runtime/db-adapter-assumptions.txt +0 -3
  207. package/audit/evidence/runtime/environment.txt +0 -4
  208. package/audit/evidence/runtime/invariant-runtime-mapping.md +0 -38
  209. package/audit/evidence/runtime/probe-patch-relationship-error.exitcode +0 -1
  210. package/audit/evidence/runtime/probe-patch-relationship-error.log +0 -76
  211. package/audit/evidence/runtime/probe-patch-relationship-error.mjs +0 -67
  212. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.exitcode +0 -1
  213. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.log +0 -62
  214. package/audit/evidence/runtime/probe-patch-relationship-referenceerror.mjs +0 -47
  215. package/audit/evidence/runtime/test-exitcodes.txt +0 -4
  216. package/audit/evidence/runtime/test-summary.md +0 -107
  217. package/audit/evidence/runtime/trace-anchors.txt +0 -61
  218. package/audit/evidence/tests/access-multitenancy-test-signals.txt +0 -125
  219. package/audit/evidence/tests/failing-tests-summary.txt +0 -25
  220. package/audit/evidence/tests/npm-test-json-rest-api.exitcode +0 -1
  221. package/audit/evidence/tests/npm-test-json-rest-api.log +0 -5885
  222. package/audit/evidence/tests/npm-test-json-rest-schema.exitcode +0 -1
  223. package/audit/evidence/tests/npm-test-json-rest-schema.log +0 -356
  224. package/audit/evidence/tests/query-include-test-signals.txt +0 -948
  225. package/audit/evidence/tests/relationship-test-signals.txt +0 -223
  226. package/audit/evidence/tests/skipped-tests.txt +0 -10
  227. package/audit/evidence/tests/test-suite-list-non-anyapi.txt +0 -30
  228. package/audit/evidence/tests/test-suite-list.txt +0 -32
  229. package/audit/subsystems/docs-drift.md +0 -49
  230. package/audit/subsystems/pass2-cross-review.md +0 -131
  231. package/audit/subsystems/plugins-access.md +0 -51
  232. package/audit/subsystems/plugins-bulk.md +0 -50
  233. package/audit/subsystems/plugins-cors.md +0 -48
  234. package/audit/subsystems/plugins-file.md +0 -53
  235. package/audit/subsystems/plugins-multihome.md +0 -50
  236. package/audit/subsystems/plugins-positioning.md +0 -54
  237. package/audit/subsystems/plugins-socketio.md +0 -50
  238. package/audit/subsystems/query-engine.md +0 -61
  239. package/audit/subsystems/relationships.md +0 -55
  240. package/audit/subsystems/rest-orchestration.md +0 -66
  241. package/audit/subsystems/schema-core.md +0 -64
  242. package/audit/subsystems/storage-knex.md +0 -57
  243. package/audit/subsystems/tests.md +0 -48
  244. package/audit/subsystems/transport-express.md +0 -55
  245. package/audit/traces/trace-read-get.md +0 -22
  246. package/audit/traces/trace-read-query.md +0 -25
  247. package/audit/traces/trace-relationship-endpoints.md +0 -31
  248. package/audit/traces/trace-write-delete.md +0 -17
  249. package/audit/traces/trace-write-patch.md +0 -26
  250. package/audit/traces/trace-write-post.md +0 -22
  251. package/audit/traces/trace-write-put.md +0 -23
  252. package/docs/GUIDE/GUIDE_4_Authentication_And_Permissions.md +0 -707
  253. package/docs/GUIDE/GUIDE_X_Multihome.md +0 -666
  254. package/plugins/core/lib/querying-writing/payload-validators.js +0 -1314
  255. package/plugins/core/rest-api-access.js +0 -459
  256. package/plugins/core/rest-api-multihome-plugin.js +0 -314
  257. package/tests/multihome.test.js +0 -553
  258. package/tests/multihome.test.js.bak +0 -550
  259. package/tests/ownership-optout.test.js +0 -76
  260. package/tests/rest-api-access.test.js +0 -206
@@ -1,101 +0,0 @@
1
- lib/enhanced-logger.js
2
- lib/error-formatter.js
3
- lib/rest-api-errors.js
4
- plugins/core/bulk-operations-plugin.js
5
- plugins/core/connectors/express-plugin.js
6
- plugins/core/connectors/lib/busboy-detector.js
7
- plugins/core/connectors/lib/formidable-detector.js
8
- plugins/core/connectors/lib/request-helpers.js
9
- plugins/core/file-handling-plugin.js
10
- plugins/core/lib/dbTablesOperations.js
11
- plugins/core/lib/fractional-positioning.js
12
- plugins/core/lib/querying-writing/compile-schemas.js
13
- plugins/core/lib/querying-writing/connectors-query-parser.js
14
- plugins/core/lib/querying-writing/database-capabilities.js
15
- plugins/core/lib/querying-writing/database-value-normalizers.js
16
- plugins/core/lib/querying-writing/default-data-helpers.js
17
- plugins/core/lib/querying-writing/field-utils.js
18
- plugins/core/lib/querying-writing/knex-constants.js
19
- plugins/core/lib/querying-writing/knex-field-helpers.js
20
- plugins/core/lib/querying-writing/knex-json-api-transformers.js
21
- plugins/core/lib/querying-writing/payload-validators.js
22
- plugins/core/lib/querying-writing/schema-helpers.js
23
- plugins/core/lib/querying-writing/scope-validations.js
24
- plugins/core/lib/querying-writing/simplified-helpers.js
25
- plugins/core/lib/querying/knex-cross-table-search.js
26
- plugins/core/lib/querying/knex-json-api-transformers-querying.js
27
- plugins/core/lib/querying/knex-pagination-helpers.js
28
- plugins/core/lib/querying/knex-process-includes.js
29
- plugins/core/lib/querying/knex-query-helpers-base.js
30
- plugins/core/lib/querying/knex-query-helpers.js
31
- plugins/core/lib/querying/knex-relationship-includes.js
32
- plugins/core/lib/querying/knex-window-queries.js
33
- plugins/core/lib/querying/url-helpers.js
34
- plugins/core/lib/storage/storage-adapter.js
35
- plugins/core/lib/writing/knex-json-api-transformers-writing.js
36
- plugins/core/lib/writing/many-to-many-manipulations.js
37
- plugins/core/lib/writing/relationship-processor.js
38
- plugins/core/rest-api-access.js
39
- plugins/core/rest-api-cors-plugin.js
40
- plugins/core/rest-api-knex-plugin.js
41
- plugins/core/rest-api-label-plugin.js
42
- plugins/core/rest-api-multihome-plugin.js
43
- plugins/core/rest-api-plugin-hooks/compile-resource-schemas.js
44
- plugins/core/rest-api-plugin-hooks/register-relationship-routes.js
45
- plugins/core/rest-api-plugin-hooks/register-scope-routes.js
46
- plugins/core/rest-api-plugin-hooks/turn-scope-init-into-vars.js
47
- plugins/core/rest-api-plugin-hooks/validate-include-configurations.js
48
- plugins/core/rest-api-plugin-methods/add-route.js
49
- plugins/core/rest-api-plugin-methods/check-permissions.js
50
- plugins/core/rest-api-plugin-methods/common.js
51
- plugins/core/rest-api-plugin-methods/delete-relationship.js
52
- plugins/core/rest-api-plugin-methods/delete.js
53
- plugins/core/rest-api-plugin-methods/enrich-attributes.js
54
- plugins/core/rest-api-plugin-methods/get-related.js
55
- plugins/core/rest-api-plugin-methods/get-relationship.js
56
- plugins/core/rest-api-plugin-methods/get.js
57
- plugins/core/rest-api-plugin-methods/patch-relationship.js
58
- plugins/core/rest-api-plugin-methods/patch.js
59
- plugins/core/rest-api-plugin-methods/post-relationship.js
60
- plugins/core/rest-api-plugin-methods/post.js
61
- plugins/core/rest-api-plugin-methods/put.js
62
- plugins/core/rest-api-plugin-methods/query.js
63
- plugins/core/rest-api-plugin-methods/release.js
64
- plugins/core/rest-api-plugin.js
65
- plugins/core/rest-api-positioning-plugin.js
66
- plugins/core/socketio-plugin.js
67
- tests/README.md
68
- tests/TEST_TEMPLATE.test.js
69
- tests/bulk-operations.test.js
70
- tests/computed-fields.test.js
71
- tests/cors.test.js
72
- tests/curl.test.js
73
- tests/custom-idproperty-relationships.test.js
74
- tests/field-getters.test.js
75
- tests/field-setters.test.js
76
- tests/fixtures/api-configs.js
77
- tests/helpers/storage-mode.js
78
- tests/helpers/test-utils.js
79
- tests/include-depth-validation.test.js
80
- tests/includes.test.js
81
- tests/multihome.test.js
82
- tests/nested-includes.test.js
83
- tests/ownership-optout.test.js
84
- tests/pagination-cursor-multifield.test.js
85
- tests/pagination-enhanced.test.js
86
- tests/polymorphic-relationships.test.js
87
- tests/polymorphic-simple.test.js
88
- tests/positioning-advanced.test.js
89
- tests/positioning-extended.test.js
90
- tests/positioning-multifilter.test.js
91
- tests/positioning.test.js
92
- tests/queries.test.js
93
- tests/query-limits.test.js
94
- tests/relationship-endpoints.test.js
95
- tests/relationships.test.js
96
- tests/rest-api-access.test.js
97
- tests/rest-api.test.js
98
- tests/searchschema-merge.test.js
99
- tests/socketio.test.js
100
- tests/test-development-guide.md
101
- tests/virtual-fields.test.js
@@ -1,193 +0,0 @@
1
- plugins/core/rest-api-plugin.js:18:import checkPermissionsMethod from './rest-api-plugin-methods/check-permissions.js'
2
- plugins/core/rest-api-plugin.js:150: addScopeMethod('checkPermissions', checkPermissionsMethod)
3
- plugins/core/rest-api-multihome-plugin.js:2: name: 'multihome',
4
- plugins/core/rest-api-multihome-plugin.js:11: const multihomeOptions = pluginOptions || {}
5
- plugins/core/rest-api-multihome-plugin.js:14: vars.multihome = {
6
- plugins/core/rest-api-multihome-plugin.js:15: field: multihomeOptions.field || 'multihome_id',
7
- plugins/core/rest-api-multihome-plugin.js:16: excludeResources: multihomeOptions.excludeResources || ['system_migrations', 'system_logs'],
8
- plugins/core/rest-api-multihome-plugin.js:17: requireAuth: multihomeOptions.requireAuth !== undefined ? multihomeOptions.requireAuth : true,
9
- plugins/core/rest-api-multihome-plugin.js:18: allowMissing: multihomeOptions.allowMissing || false
10
- plugins/core/rest-api-multihome-plugin.js:52: // Don't use 'www' or 'api' as tenant IDs
11
- plugins/core/rest-api-multihome-plugin.js:58: return request.headers?.['x-multihome-id'] || null
12
- plugins/core/rest-api-multihome-plugin.js:62: helpers.extractMultihomeId = multihomeOptions.extractor || defaultSubdomainExtractor
13
- plugins/core/rest-api-multihome-plugin.js:64: // Hook into transport layer to extract multihome_id
14
- plugins/core/rest-api-multihome-plugin.js:65: addHook('transport:request', 'extract-multihome-id', {}, async ({ context, request, helpers }) => {
15
- plugins/core/rest-api-multihome-plugin.js:66: // Extract multihome_id using configured extractor
16
- plugins/core/rest-api-multihome-plugin.js:67: const multihomeId = helpers.extractMultihomeId(request)
17
- plugins/core/rest-api-multihome-plugin.js:69: if (multihomeId) {
18
- plugins/core/rest-api-multihome-plugin.js:72: context.auth.multihome_id = multihomeId
19
- plugins/core/rest-api-multihome-plugin.js:75: multihome_id: multihomeId,
20
- plugins/core/rest-api-multihome-plugin.js:78: } else if (vars.multihome.requireAuth) {
21
- plugins/core/rest-api-multihome-plugin.js:79: log.warn('No multihome ID found in request', {
22
- plugins/core/rest-api-multihome-plugin.js:86: // Validate that resources have multihome field when added
23
- plugins/core/rest-api-multihome-plugin.js:87: addHook('scope:added', 'validate-multihome-field', {}, ({ context, vars }) => {
24
- plugins/core/rest-api-multihome-plugin.js:91: if (vars.multihome.excludeResources.includes(scopeName)) {
25
- plugins/core/rest-api-multihome-plugin.js:92: log.debug(`Resource ${scopeName} excluded from multihome validation`)
26
- plugins/core/rest-api-multihome-plugin.js:96: // Check if schema has multihome field
27
- plugins/core/rest-api-multihome-plugin.js:98: if (schema && !schema[vars.multihome.field]) {
28
- plugins/core/rest-api-multihome-plugin.js:99: if (vars.multihome.allowMissing) {
29
- plugins/core/rest-api-multihome-plugin.js:100: log.warn(`Resource ${scopeName} missing ${vars.multihome.field} field - multihome filtering disabled for this
30
- plugins/core/rest-api-multihome-plugin.js:104: `Resource '${scopeName}' must have '${vars.multihome.field}' field in schema for multi-tenancy`
31
- plugins/core/rest-api-multihome-plugin.js:111: log.debug('Registering multihome filter hook')
32
- plugins/core/rest-api-multihome-plugin.js:112: addHook('knexQueryFiltering', 'multihome-filter', {}, async ({ context, vars }) => {
33
- plugins/core/rest-api-multihome-plugin.js:117: if (vars.multihome.excludeResources.includes(scopeName)) {
34
- plugins/core/rest-api-multihome-plugin.js:118: log.trace(`Skipping multihome filter for excluded resource: ${scopeName}`)
35
- plugins/core/rest-api-multihome-plugin.js:122: // Skip if no multihome context
36
- plugins/core/rest-api-multihome-plugin.js:123: if (!context.auth?.multihome_id) {
37
- plugins/core/rest-api-multihome-plugin.js:124: if (vars.multihome.requireAuth) {
38
- plugins/core/rest-api-multihome-plugin.js:125: throw new Error('No multihome context available - cannot execute query')
39
- plugins/core/rest-api-multihome-plugin.js:130: log.debug('Applying multihome tenant filter', {
40
- plugins/core/rest-api-multihome-plugin.js:133: tenant: context.auth.multihome_id,
41
- plugins/core/rest-api-multihome-plugin.js:136: // Check if this resource has multihome field
42
- plugins/core/rest-api-multihome-plugin.js:138: const hasMultihomeField = scope?.vars?.schemaInfo?.schemaStructure?.[vars.multihome.field]
43
- plugins/core/rest-api-multihome-plugin.js:141: if (vars.multihome.allowMissing) {
44
- plugins/core/rest-api-multihome-plugin.js:142: log.trace(`Resource ${scopeName} has no ${vars.multihome.field} field - skipping filter`)
45
- plugins/core/rest-api-multihome-plugin.js:145: throw new Error(`Resource ${scopeName} missing required ${vars.multihome.field} field`)
46
- plugins/core/rest-api-multihome-plugin.js:155: field: vars.multihome.field,
47
- plugins/core/rest-api-multihome-plugin.js:161: const tenantValue = translateFilterValue({
48
- plugins/core/rest-api-multihome-plugin.js:162: field: vars.multihome.field,
49
- plugins/core/rest-api-multihome-plugin.js:163: value: context.auth.multihome_id,
50
- plugins/core/rest-api-multihome-plugin.js:168: if (tenantValue === null) {
51
- plugins/core/rest-api-multihome-plugin.js:171: query.where(columnRef, tenantValue)
52
- plugins/core/rest-api-multihome-plugin.js:174: log.trace('Added multihome filter', {
53
- plugins/core/rest-api-multihome-plugin.js:177: multihome_id: context.auth.multihome_id
54
- plugins/core/rest-api-multihome-plugin.js:181: // Set multihome_id on new records
55
- plugins/core/rest-api-multihome-plugin.js:182: addHook('beforeSchemaValidate', 'set-multihome-id', {}, async ({ context, scopeName, vars }) => {
56
- plugins/core/rest-api-multihome-plugin.js:184: if (vars.multihome.excludeResources.includes(scopeName)) {
57
- plugins/core/rest-api-multihome-plugin.js:188: // Skip if no multihome context
58
- plugins/core/rest-api-multihome-plugin.js:189: if (!context.auth?.multihome_id) {
59
- plugins/core/rest-api-multihome-plugin.js:190: if (vars.multihome.requireAuth) {
60
- plugins/core/rest-api-multihome-plugin.js:191: throw new Error('Cannot create record without multihome context')
61
- plugins/core/rest-api-multihome-plugin.js:196: // Check if this resource has multihome field
62
- plugins/core/rest-api-multihome-plugin.js:198: const hasMultihomeField = scope?.vars?.schemaInfo?.schemaStructure?.[vars.multihome.field]
63
- plugins/core/rest-api-multihome-plugin.js:201: if (!vars.multihome.allowMissing) {
64
- plugins/core/rest-api-multihome-plugin.js:202: throw new Error(`Resource ${scopeName} missing required ${vars.multihome.field} field`)
65
- plugins/core/rest-api-multihome-plugin.js:207: // For POST, always set multihome_id
66
- plugins/core/rest-api-multihome-plugin.js:210: context.inputRecord.data.attributes[vars.multihome.field] = context.auth.multihome_id
67
- plugins/core/rest-api-multihome-plugin.js:212: log.debug('Set multihome_id on new record', {
68
- plugins/core/rest-api-multihome-plugin.js:214: multihome_id: context.auth.multihome_id
69
- plugins/core/rest-api-multihome-plugin.js:218: // For PUT/PATCH, validate multihome_id if provided
70
- plugins/core/rest-api-multihome-plugin.js:220: context.inputRecord.data.attributes?.[vars.multihome.field]) {
71
- plugins/core/rest-api-multihome-plugin.js:221: const providedId = context.inputRecord.data.attributes[vars.multihome.field]
72
- plugins/core/rest-api-multihome-plugin.js:222: if (providedId !== context.auth.multihome_id) {
73
- plugins/core/rest-api-multihome-plugin.js:224: `Cannot set ${vars.multihome.field} to '${providedId}' - must match current context '${context.auth.multihome_id}'`
74
- plugins/core/rest-api-multihome-plugin.js:230: // Add checkPermissions hook to enforce tenant isolation
75
- plugins/core/rest-api-multihome-plugin.js:232: addHook('checkPermissions', 'multihome-check-permissions', {}, async ({ context, scopeName }) => {
76
- plugins/core/rest-api-multihome-plugin.js:239: if (vars.multihome.excludeResources.includes(scopeName)) {
77
- plugins/core/rest-api-multihome-plugin.js:243: // Skip if no multihome context
78
- plugins/core/rest-api-multihome-plugin.js:244: if (!auth?.multihome_id) {
79
- plugins/core/rest-api-multihome-plugin.js:245: if (vars.multihome.requireAuth) {
80
- plugins/core/rest-api-multihome-plugin.js:246: throw new Error('No multihome context available')
81
- plugins/core/rest-api-multihome-plugin.js:251: // Get the scope to check if it has multihome field
82
- plugins/core/rest-api-multihome-plugin.js:253: const hasMultihomeField = scope?.vars?.schemaInfo?.schemaStructure?.[vars.multihome.field]
83
- plugins/core/rest-api-multihome-plugin.js:256: return // Resource doesn't support multihome
84
- plugins/core/rest-api-multihome-plugin.js:259: // For operations on existing records, verify tenant ownership
85
- plugins/core/rest-api-multihome-plugin.js:261: // minimalRecord is in JSON:API format, so tenant_id is in attributes
86
- plugins/core/rest-api-multihome-plugin.js:262: const recordTenant = minimalRecord.attributes?.[vars.multihome.field]
87
- plugins/core/rest-api-multihome-plugin.js:263: const userTenant = auth.multihome_id
88
- plugins/core/rest-api-multihome-plugin.js:266: log.error('Multihome permission violation', {
89
- plugins/core/rest-api-multihome-plugin.js:281: const error = new Error('Access denied - insufficient permissions')
90
- plugins/core/rest-api-multihome-plugin.js:290: // doesn't exist due to tenant filtering in the GET operation that precedes them
91
- plugins/core/rest-api-multihome-plugin.js:292: // Add API method to get current multihome context
92
- plugins/core/rest-api-multihome-plugin.js:293: api.multihome = {
93
- plugins/core/rest-api-multihome-plugin.js:302: ...vars.multihome,
94
- plugins/core/rest-api-multihome-plugin.js:308: field: vars.multihome.field,
95
- plugins/core/rest-api-multihome-plugin.js:309: excludedResources: vars.multihome.excludeResources,
96
- plugins/core/rest-api-multihome-plugin.js:310: requireAuth: vars.multihome.requireAuth,
97
- plugins/core/rest-api-access.js:8: const ownershipOptions = pluginOptions.ownership || pluginOptions.autoOwnership || {}
98
- plugins/core/rest-api-access.js:11: ownership: {
99
- plugins/core/rest-api-access.js:12: enabled: ownershipOptions.enabled !== false,
100
- plugins/core/rest-api-access.js:13: field: ownershipOptions.field || 'user_id',
101
- plugins/core/rest-api-access.js:14: userResource: ownershipOptions.userResource || 'users',
102
- plugins/core/rest-api-access.js:15: excludeResources: ownershipOptions.excludeResources || [],
103
- plugins/core/rest-api-access.js:16: filterByOwner: ownershipOptions.filterByOwner !== false,
104
- plugins/core/rest-api-access.js:17: requireOwnership: ownershipOptions.requireOwnership || false
105
- plugins/core/rest-api-access.js:25: const ownershipField = () => config.ownership.field
106
- plugins/core/rest-api-access.js:27: // Minimal helper: treat ownerField false/null as ownership disabled (alias)
107
- plugins/core/rest-api-access.js:29: scopeOptions?.ownership === false ||
108
- plugins/core/rest-api-access.js:30: scopeOptions?.ownerField === false ||
109
- plugins/core/rest-api-access.js:31: scopeOptions?.ownerField === null
110
- plugins/core/rest-api-access.js:132: const field = scopeVars?.ownershipField || ownershipField()
111
- plugins/core/rest-api-access.js:135: const ownershipStatus = evaluateOwnership({
112
- plugins/core/rest-api-access.js:142: return ownershipStatus === 'match'
113
- plugins/core/rest-api-access.js:156: scope.vars.ownershipField = context.scopeOptions?.ownershipField
114
- plugins/core/rest-api-access.js:167: addHook('schema:enrich', 'rest-auth-auto-ownership-field', {}, ({ context }) => {
115
- plugins/core/rest-api-access.js:168: if (!config.ownership.enabled) return
116
- plugins/core/rest-api-access.js:170: if (config.ownership.excludeResources.includes(scopeName)) return
117
- plugins/core/rest-api-access.js:173: const field = ownershipField()
118
- plugins/core/rest-api-access.js:178: fields[field].belongsTo = config.ownership.userResource
119
- plugins/core/rest-api-access.js:188: belongsTo: config.ownership.userResource,
120
- plugins/core/rest-api-access.js:192: description: 'Automatically managed ownership field'
121
- plugins/core/rest-api-access.js:197: if (!config.ownership.enabled) return
122
- plugins/core/rest-api-access.js:198: if (config.ownership.excludeResources.includes(scopeName)) return
123
- plugins/core/rest-api-access.js:200: if (config.ownership.requireOwnership) {
124
- plugins/core/rest-api-access.js:208: const field = ownershipField()
125
- plugins/core/rest-api-access.js:213: const shouldSet = scopeOptions?.ownership === true || (scopeOptions?.ownership === undefined && hasField)
126
- plugins/core/rest-api-access.js:230: type: fieldSchema.belongsTo || config.ownership.userResource || 'users',
127
- plugins/core/rest-api-access.js:239: addHook('beforeProcessingPost', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
128
- plugins/core/rest-api-access.js:242: addHook('beforeProcessingPatch', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
129
- plugins/core/rest-api-access.js:245: addHook('beforeProcessingPut', 'rest-auth-auto-set-owner', {}, ({ context, scopeName, scopes, scopeOptions }) => {
130
- plugins/core/rest-api-access.js:249: addHook('knexQueryFiltering', 'rest-auth-filter-by-owner', { sequence: -40 }, ({ context, scopes, scopeOptions }) => {
131
- plugins/core/rest-api-access.js:250: if (!config.ownership.enabled || !config.ownership.filterByOwner) return
132
- plugins/core/rest-api-access.js:255: throw new Error('AccessPlugin: knexQuery must provide query and tableName for ownership filtering')
133
- plugins/core/rest-api-access.js:258: if (config.ownership.excludeResources.includes(scopeName)) return
134
- plugins/core/rest-api-access.js:260: if (config.ownership.requireOwnership) {
135
- plugins/core/rest-api-access.js:269: const field = ownershipField()
136
- plugins/core/rest-api-access.js:273: const shouldFilter = scopeOptions?.ownership === true || (scopeOptions?.ownership === undefined && hasField)
137
- plugins/core/rest-api-access.js:282: const ownerValue = translateFilterValue({ field, value: context.auth.userId, scopeName, hookContext: context })
138
- plugins/core/rest-api-access.js:284: if (ownerValue === null) {
139
- plugins/core/rest-api-access.js:287: query.where(columnRef, ownerValue)
140
- plugins/core/rest-api-access.js:291: addHook('checkPermissions', 'rest-auth-enforce', { sequence: -100 }, async ({ context, scope, scopeName }) => {
141
- plugins/core/rest-api-access.js:343: addHook('checkPermissions', 'rest-auth-check-get-ownership', { sequence: -80 }, ({ context, scope, scopeName, scopeOptions }) => {
142
- plugins/core/rest-api-access.js:344: if (!config.ownership.enabled || !config.ownership.filterByOwner) return
143
- plugins/core/rest-api-access.js:345: if (config.ownership.excludeResources.includes(scopeName)) return
144
- plugins/core/rest-api-access.js:354: const field = ownershipField()
145
- plugins/core/rest-api-access.js:357: const shouldCheck = scopeOptions?.ownership === true || (scopeOptions?.ownership === undefined && hasField)
146
- plugins/core/rest-api-access.js:374: const ownershipStatus = evaluateOwnership({
147
- plugins/core/rest-api-access.js:381: if (ownershipStatus === 'mismatch') {
148
- plugins/core/rest-api-access.js:401: const field = ownershipField()
149
- plugins/core/rest-api-access.js:403: let ownerId
150
- plugins/core/rest-api-access.js:406: ownerId = resourceOrUserId[field]
151
- plugins/core/rest-api-access.js:407: if (!ownerId) {
152
- plugins/core/rest-api-access.js:408: throw new Error(`Resource does not have ownership field '${field}'`)
153
- plugins/core/rest-api-access.js:411: ownerId = resourceOrUserId
154
- plugins/core/rest-api-access.js:413: ownerId = context.existingRecord[field]
155
- plugins/core/rest-api-access.js:414: if (!ownerId) {
156
- plugins/core/rest-api-access.js:415: throw new Error(`Resource does not have ownership field '${field}'`)
157
- plugins/core/rest-api-access.js:418: throw new Error('No resource or user ID provided for ownership check')
158
- plugins/core/rest-api-access.js:421: if (String(auth.userId) !== String(ownerId)) {
159
- plugins/core/rest-api-access.js:434: helpers.auth.checkPermission = async function checkPermission (context, rules, options = {}) {
160
- plugins/core/rest-api-plugin-methods/query.js:125: // Centralised checkPermissions function
161
- plugins/core/rest-api-plugin-methods/query.js:126: await scope.checkPermissions({
162
- plugins/core/rest-api-plugin-methods/get-relationship.js:30: // Check permissions
163
- plugins/core/rest-api-plugin-methods/get-relationship.js:31: await runHooks('checkPermissions')
164
- plugins/core/rest-api-plugin-methods/get-relationship.js:32: await runHooks('checkPermissionsGetRelationship')
165
- plugins/core/rest-api-plugin-methods/get-related.js:51: // Check permissions
166
- plugins/core/rest-api-plugin-methods/get-related.js:52: await runHooks('checkPermissions')
167
- plugins/core/rest-api-plugin-methods/get-related.js:53: await runHooks('checkPermissionsGetRelated')
168
- plugins/core/rest-api-plugin-methods/delete-relationship.js:47: // Check permissions
169
- plugins/core/rest-api-plugin-methods/delete-relationship.js:48: await runHooks('checkPermissions')
170
- plugins/core/rest-api-plugin-methods/delete-relationship.js:49: await runHooks('checkPermissionsDeleteRelationship')
171
- plugins/core/rest-api-plugin-methods/patch-relationship.js:23: // Check permissions
172
- plugins/core/rest-api-plugin-methods/patch-relationship.js:24: await runHooks('checkPermissions')
173
- plugins/core/rest-api-plugin-methods/patch-relationship.js:25: await runHooks('checkPermissionsPatchRelationship')
174
- plugins/core/rest-api-plugin-methods/common.js:445: method: 'get', // We're checking read permission
175
- plugins/core/rest-api-plugin-methods/common.js:460: // Check permissions using the related scope's checkPermissions
176
- plugins/core/rest-api-plugin-methods/common.js:461: await relatedScope.checkPermissions({
177
- plugins/core/rest-api-plugin-methods/patch.js:102: // Centralised checkPermissions function
178
- plugins/core/rest-api-plugin-methods/patch.js:103: await scope.checkPermissions({
179
- plugins/core/rest-api-plugin-methods/post-relationship.js:49: // Check permissions
180
- plugins/core/rest-api-plugin-methods/post-relationship.js:50: await runHooks('checkPermissions')
181
- plugins/core/rest-api-plugin-methods/post-relationship.js:51: await runHooks('checkPermissionsPostRelationship')
182
- plugins/core/rest-api-plugin-methods/get.js:88: // Centralised checkPermissions function
183
- plugins/core/rest-api-plugin-methods/get.js:89: await scope.checkPermissions({
184
- plugins/core/rest-api-plugin-methods/check-permissions.js:2: * checkPermissions
185
- plugins/core/rest-api-plugin-methods/check-permissions.js:3: * Check if ther are permissions to access a resource.
186
- plugins/core/rest-api-plugin-methods/check-permissions.js:6:export default async function checkPermissionsMethod ({ context, params, runHooks, scopeName, scopes, helpers }) {
187
- plugins/core/rest-api-plugin-methods/check-permissions.js:12: await runHooks('checkPermissions')
188
- plugins/core/rest-api-plugin-methods/put.js:170: // Centralised checkPermissions function
189
- plugins/core/rest-api-plugin-methods/put.js:171: await scope.checkPermissions({
190
- plugins/core/rest-api-plugin-methods/delete.js:67: // Centralised checkPermissions function
191
- plugins/core/rest-api-plugin-methods/delete.js:68: await scope.checkPermissions({
192
- plugins/core/rest-api-plugin-methods/post.js:97: // Centralised checkPermissions function
193
- plugins/core/rest-api-plugin-methods/post.js:98: await scope.checkPermissions({