@directus/api 15.0.0 → 17.0.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.
Files changed (185) hide show
  1. package/dist/app.js +6 -4
  2. package/dist/auth/drivers/ldap.js +7 -4
  3. package/dist/auth/drivers/local.js +3 -2
  4. package/dist/auth/drivers/oauth2.js +9 -2
  5. package/dist/auth/drivers/openid.js +9 -2
  6. package/dist/auth/drivers/saml.js +6 -4
  7. package/dist/auth.js +7 -4
  8. package/dist/bus/index.d.ts +1 -0
  9. package/dist/bus/index.js +1 -0
  10. package/dist/bus/lib/use-bus.d.ts +9 -0
  11. package/dist/bus/lib/use-bus.js +21 -0
  12. package/dist/cache.js +9 -9
  13. package/dist/cli/commands/bootstrap/index.js +6 -2
  14. package/dist/cli/commands/count/index.js +2 -1
  15. package/dist/cli/commands/database/install.js +2 -1
  16. package/dist/cli/commands/database/migrate.js +2 -1
  17. package/dist/cli/commands/roles/create.js +2 -1
  18. package/dist/cli/commands/schema/apply.js +2 -1
  19. package/dist/cli/commands/schema/snapshot.js +6 -5
  20. package/dist/cli/commands/users/create.js +4 -3
  21. package/dist/cli/commands/users/passwd.js +5 -4
  22. package/dist/cli/load-extensions.js +4 -2
  23. package/dist/cli/utils/create-env/env-stub.liquid +1 -1
  24. package/dist/constants.d.ts +1 -1
  25. package/dist/constants.js +4 -1
  26. package/dist/controllers/assets.js +5 -3
  27. package/dist/controllers/auth.js +5 -4
  28. package/dist/controllers/extensions.js +18 -6
  29. package/dist/controllers/files.js +3 -3
  30. package/dist/controllers/permissions.js +11 -2
  31. package/dist/controllers/schema.js +3 -2
  32. package/dist/controllers/shares.js +3 -3
  33. package/dist/controllers/utils.js +13 -32
  34. package/dist/database/helpers/index.d.ts +1 -1
  35. package/dist/database/index.js +9 -2
  36. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +3 -1
  37. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +3 -1
  38. package/dist/database/migrations/20210802A-replace-groups.js +2 -1
  39. package/dist/database/migrations/20230721A-require-shares-fields.js +2 -1
  40. package/dist/database/migrations/20231215A-add-focalpoints.d.ts +3 -0
  41. package/dist/database/migrations/20231215A-add-focalpoints.js +12 -0
  42. package/dist/database/migrations/run.js +2 -1
  43. package/dist/database/run-ast.js +5 -2
  44. package/dist/database/system-data/app-access-permissions/app-access-permissions.yaml +0 -7
  45. package/dist/database/system-data/fields/files.yaml +16 -0
  46. package/dist/emitter.js +3 -1
  47. package/dist/extensions/lib/get-extensions-path.d.ts +1 -1
  48. package/dist/extensions/lib/get-extensions-path.js +2 -1
  49. package/dist/extensions/lib/get-extensions.d.ts +1 -1
  50. package/dist/extensions/lib/get-extensions.js +32 -8
  51. package/dist/extensions/lib/get-shared-deps-mapping.js +6 -4
  52. package/dist/extensions/lib/sandbox/register/call-reference.js +4 -2
  53. package/dist/extensions/lib/sandbox/sdk/generators/log.js +2 -1
  54. package/dist/extensions/lib/sync-extensions.js +6 -4
  55. package/dist/extensions/manager.js +43 -19
  56. package/dist/flows.js +13 -7
  57. package/dist/logger.d.ts +7 -7
  58. package/dist/logger.js +116 -92
  59. package/dist/mailer.js +4 -2
  60. package/dist/middleware/cache.js +4 -2
  61. package/dist/middleware/check-ip.js +25 -6
  62. package/dist/middleware/cors.js +2 -1
  63. package/dist/middleware/error-handler.js +5 -5
  64. package/dist/middleware/rate-limiter-global.js +4 -2
  65. package/dist/middleware/rate-limiter-ip.js +2 -1
  66. package/dist/middleware/respond.js +5 -3
  67. package/dist/operations/log/index.js +2 -1
  68. package/dist/rate-limiter.d.ts +2 -1
  69. package/dist/rate-limiter.js +5 -2
  70. package/dist/redis/index.d.ts +3 -2
  71. package/dist/redis/index.js +3 -2
  72. package/dist/redis/{create-redis.js → lib/create-redis.js} +2 -2
  73. package/dist/redis/utils/redis-config-available.d.ts +4 -0
  74. package/dist/redis/utils/redis-config-available.js +8 -0
  75. package/dist/request/request-interceptor.js +7 -5
  76. package/dist/request/response-interceptor.js +2 -2
  77. package/dist/request/validate-ip.d.ts +1 -1
  78. package/dist/request/validate-ip.js +23 -7
  79. package/dist/server.js +11 -7
  80. package/dist/services/activity.js +5 -4
  81. package/dist/services/assets.d.ts +2 -0
  82. package/dist/services/assets.js +9 -6
  83. package/dist/services/authentication.js +17 -9
  84. package/dist/services/authorization.d.ts +1 -1
  85. package/dist/services/authorization.js +15 -3
  86. package/dist/services/collections.js +5 -4
  87. package/dist/services/extensions.d.ts +15 -9
  88. package/dist/services/extensions.js +74 -39
  89. package/dist/services/fields.js +9 -4
  90. package/dist/services/files.d.ts +2 -2
  91. package/dist/services/files.js +22 -14
  92. package/dist/services/graphql/index.js +46 -3
  93. package/dist/services/graphql/subscription.js +2 -2
  94. package/dist/services/graphql/types/bigint.js +16 -5
  95. package/dist/services/graphql/utils/process-error.d.ts +4 -1
  96. package/dist/services/graphql/utils/process-error.js +10 -8
  97. package/dist/services/{import-export/index.d.ts → import-export.d.ts} +1 -1
  98. package/dist/services/{import-export/index.js → import-export.js} +14 -12
  99. package/dist/services/index.d.ts +1 -1
  100. package/dist/services/index.js +1 -1
  101. package/dist/services/items.js +12 -8
  102. package/dist/services/mail/index.js +4 -2
  103. package/dist/services/notifications.js +7 -3
  104. package/dist/services/permissions.d.ts +3 -2
  105. package/dist/services/permissions.js +76 -1
  106. package/dist/services/relations.js +19 -10
  107. package/dist/services/roles.js +83 -15
  108. package/dist/services/server.js +7 -5
  109. package/dist/services/shares.js +3 -2
  110. package/dist/services/specifications.js +2 -1
  111. package/dist/services/users.js +20 -9
  112. package/dist/services/versions.js +6 -5
  113. package/dist/services/webhooks.d.ts +2 -2
  114. package/dist/services/webhooks.js +2 -2
  115. package/dist/services/websocket.d.ts +1 -1
  116. package/dist/services/websocket.js +4 -3
  117. package/dist/storage/register-drivers.js +2 -1
  118. package/dist/storage/register-locations.js +2 -1
  119. package/dist/synchronization.js +3 -1
  120. package/dist/telemetry/lib/get-report.js +1 -1
  121. package/dist/telemetry/lib/init-telemetry.js +2 -2
  122. package/dist/telemetry/lib/send-report.js +1 -1
  123. package/dist/telemetry/lib/track.js +2 -3
  124. package/dist/telemetry/utils/get-user-count.js +1 -1
  125. package/dist/types/assets.d.ts +2 -0
  126. package/dist/types/items.d.ts +4 -12
  127. package/dist/types/items.js +0 -4
  128. package/dist/utils/apply-diff.js +2 -1
  129. package/dist/utils/apply-query.js +0 -11
  130. package/dist/utils/delete-from-require-cache.js +2 -1
  131. package/dist/utils/get-accountability-for-token.js +3 -2
  132. package/dist/utils/get-auth-providers.js +2 -1
  133. package/dist/utils/get-cache-headers.js +5 -2
  134. package/dist/utils/get-config-from-env.js +2 -1
  135. package/dist/utils/get-default-value.js +4 -3
  136. package/dist/utils/get-ip-from-req.js +4 -2
  137. package/dist/utils/get-permissions.js +5 -3
  138. package/dist/utils/get-schema.js +5 -2
  139. package/dist/utils/get-snapshot-diff.js +7 -9
  140. package/dist/utils/get-snapshot.js +4 -4
  141. package/dist/utils/ip-in-networks.d.ts +6 -0
  142. package/dist/utils/ip-in-networks.js +13 -0
  143. package/dist/utils/is-url-allowed.js +2 -1
  144. package/dist/utils/job-queue.d.ts +1 -0
  145. package/dist/utils/job-queue.js +3 -0
  146. package/dist/utils/sanitize-query.js +7 -2
  147. package/dist/utils/sanitize-schema.d.ts +1 -1
  148. package/dist/utils/should-clear-cache.js +2 -1
  149. package/dist/utils/should-skip-cache.js +2 -1
  150. package/dist/utils/transformations.js +95 -12
  151. package/dist/utils/validate-env.js +4 -2
  152. package/dist/utils/validate-query.js +7 -3
  153. package/dist/utils/validate-storage.js +4 -2
  154. package/dist/webhooks.js +4 -3
  155. package/dist/websocket/controllers/base.js +12 -6
  156. package/dist/websocket/controllers/graphql.js +4 -2
  157. package/dist/websocket/controllers/hooks.js +3 -2
  158. package/dist/websocket/controllers/index.js +4 -2
  159. package/dist/websocket/controllers/rest.js +4 -2
  160. package/dist/websocket/errors.js +2 -1
  161. package/dist/websocket/handlers/heartbeat.js +4 -3
  162. package/dist/websocket/handlers/subscribe.d.ts +2 -2
  163. package/dist/websocket/handlers/subscribe.js +5 -4
  164. package/package.json +57 -57
  165. package/dist/__utils__/items-utils.d.ts +0 -2
  166. package/dist/__utils__/items-utils.js +0 -31
  167. package/dist/__utils__/mock-env.d.ts +0 -18
  168. package/dist/__utils__/mock-env.js +0 -41
  169. package/dist/__utils__/schemas.d.ts +0 -13
  170. package/dist/__utils__/schemas.js +0 -301
  171. package/dist/__utils__/snapshots.d.ts +0 -5
  172. package/dist/__utils__/snapshots.js +0 -903
  173. package/dist/env.d.ts +0 -14
  174. package/dist/env.js +0 -511
  175. package/dist/messenger.d.ts +0 -24
  176. package/dist/messenger.js +0 -64
  177. package/dist/services/import-export/import-worker.d.ts +0 -9
  178. package/dist/services/import-export/import-worker.js +0 -9
  179. package/dist/utils/to-boolean.d.ts +0 -4
  180. package/dist/utils/to-boolean.js +0 -6
  181. package/dist/worker-pool.d.ts +0 -2
  182. package/dist/worker-pool.js +0 -19
  183. /package/dist/redis/{create-redis.d.ts → lib/create-redis.d.ts} +0 -0
  184. /package/dist/redis/{use-redis.d.ts → lib/use-redis.d.ts} +0 -0
  185. /package/dist/redis/{use-redis.js → lib/use-redis.js} +0 -0
@@ -1,301 +0,0 @@
1
- export const systemSchema = {
2
- collections: {
3
- directus_users: {
4
- collection: 'directus_users',
5
- primary: 'id',
6
- singleton: false,
7
- note: '$t:directus_collection.directus_users',
8
- sortField: null,
9
- accountability: null,
10
- fields: {
11
- id: {
12
- field: 'id',
13
- defaultValue: null,
14
- nullable: false,
15
- generated: false,
16
- type: 'uuid',
17
- dbType: 'uuid',
18
- precision: null,
19
- scale: null,
20
- special: [],
21
- note: null,
22
- alias: false,
23
- validation: null,
24
- },
25
- name: {
26
- field: 'name',
27
- defaultValue: "A User's Name",
28
- nullable: false,
29
- generated: false,
30
- type: 'uuid',
31
- dbType: 'uuid',
32
- precision: null,
33
- scale: null,
34
- special: [],
35
- note: null,
36
- alias: false,
37
- validation: null,
38
- },
39
- items: {
40
- field: 'items',
41
- defaultValue: null,
42
- nullable: true,
43
- generated: false,
44
- type: 'alias',
45
- dbType: null,
46
- precision: null,
47
- scale: null,
48
- special: ['o2m'],
49
- note: null,
50
- alias: true,
51
- validation: null,
52
- },
53
- },
54
- },
55
- directus_files: {
56
- collection: 'directus_files',
57
- primary: 'id',
58
- singleton: false,
59
- note: '$t:directus_collection.directus_files',
60
- sortField: null,
61
- accountability: null,
62
- fields: {
63
- id: {
64
- field: 'id',
65
- defaultValue: null,
66
- nullable: false,
67
- generated: false,
68
- type: 'uuid',
69
- dbType: 'uuid',
70
- precision: null,
71
- scale: null,
72
- special: [],
73
- note: null,
74
- alias: false,
75
- validation: null,
76
- },
77
- title: {
78
- field: 'title',
79
- defaultValue: "A File's Title",
80
- nullable: false,
81
- generated: false,
82
- type: 'string',
83
- dbType: 'text',
84
- precision: null,
85
- scale: null,
86
- special: [],
87
- note: null,
88
- alias: false,
89
- validation: null,
90
- },
91
- uploaded_by: {
92
- field: 'uploaded_by',
93
- defaultValue: null,
94
- nullable: true,
95
- generated: false,
96
- type: 'uuid',
97
- dbType: 'uuid',
98
- precision: null,
99
- scale: null,
100
- special: [],
101
- note: null,
102
- alias: false,
103
- validation: null,
104
- },
105
- },
106
- },
107
- },
108
- relations: [
109
- {
110
- collection: 'directus_files',
111
- field: 'uploaded_by',
112
- related_collection: 'directus_users',
113
- schema: {
114
- table: 'directus_files',
115
- column: 'uploaded_by',
116
- foreign_key_table: 'directus_users',
117
- foreign_key_column: 'id',
118
- on_update: 'NO ACTION',
119
- on_delete: 'NO ACTION',
120
- constraint_name: null,
121
- },
122
- meta: {
123
- system: true,
124
- many_collection: 'directus_files',
125
- many_field: 'uploaded_by',
126
- one_collection: 'directus_users',
127
- one_field: 'items',
128
- one_allowed_collections: null,
129
- one_collection_field: null,
130
- one_deselect_action: 'nullify',
131
- junction_field: null,
132
- sort_field: null,
133
- },
134
- },
135
- ],
136
- };
137
- export const userSchema = {
138
- collections: {
139
- authors: {
140
- collection: 'authors',
141
- primary: 'id',
142
- singleton: false,
143
- note: 'authors',
144
- sortField: null,
145
- accountability: null,
146
- fields: {
147
- id: {
148
- field: 'id',
149
- defaultValue: null,
150
- nullable: false,
151
- generated: false,
152
- type: 'uuid',
153
- dbType: 'uuid',
154
- precision: null,
155
- scale: null,
156
- special: [],
157
- note: null,
158
- alias: false,
159
- validation: null,
160
- },
161
- name: {
162
- field: 'name',
163
- defaultValue: "An Author's Name",
164
- nullable: false,
165
- generated: false,
166
- type: 'uuid',
167
- dbType: 'uuid',
168
- precision: null,
169
- scale: null,
170
- special: [],
171
- note: null,
172
- alias: false,
173
- validation: null,
174
- },
175
- items: {
176
- field: 'items',
177
- defaultValue: null,
178
- nullable: true,
179
- generated: false,
180
- type: 'alias',
181
- dbType: null,
182
- precision: null,
183
- scale: null,
184
- special: ['o2m'],
185
- note: null,
186
- alias: true,
187
- validation: null,
188
- },
189
- },
190
- },
191
- posts: {
192
- collection: 'posts',
193
- primary: 'id',
194
- singleton: false,
195
- note: 'posts',
196
- sortField: null,
197
- accountability: null,
198
- fields: {
199
- id: {
200
- field: 'id',
201
- defaultValue: null,
202
- nullable: false,
203
- generated: false,
204
- type: 'uuid',
205
- dbType: 'uuid',
206
- precision: null,
207
- scale: null,
208
- special: [],
209
- note: null,
210
- alias: false,
211
- validation: null,
212
- },
213
- title: {
214
- field: 'title',
215
- defaultValue: "A Post's Title",
216
- nullable: false,
217
- generated: false,
218
- type: 'string',
219
- dbType: 'text',
220
- precision: null,
221
- scale: null,
222
- special: [],
223
- note: null,
224
- alias: false,
225
- validation: null,
226
- },
227
- uploaded_by: {
228
- field: 'uploaded_by',
229
- defaultValue: null,
230
- nullable: true,
231
- generated: false,
232
- type: 'uuid',
233
- dbType: 'uuid',
234
- precision: null,
235
- scale: null,
236
- special: [],
237
- note: null,
238
- alias: false,
239
- validation: null,
240
- },
241
- },
242
- },
243
- },
244
- relations: [
245
- {
246
- collection: 'posts',
247
- field: 'uploaded_by',
248
- related_collection: 'authors',
249
- schema: {
250
- table: 'posts',
251
- column: 'uploaded_by',
252
- foreign_key_table: 'authors',
253
- foreign_key_column: 'id',
254
- on_update: 'NO ACTION',
255
- on_delete: 'SET NULL',
256
- constraint_name: null,
257
- },
258
- meta: {
259
- id: 11,
260
- many_collection: 'posts',
261
- many_field: 'uploaded_by',
262
- one_collection: 'authors',
263
- one_field: 'items',
264
- one_collection_field: null,
265
- one_allowed_collections: null,
266
- junction_field: null,
267
- sort_field: null,
268
- one_deselect_action: 'nullify',
269
- },
270
- },
271
- ],
272
- };
273
- export const snapshotApplyTestSchema = {
274
- collections: {
275
- test_table: {
276
- collection: 'test_table',
277
- primary: 'id',
278
- singleton: false,
279
- note: 'test_table',
280
- sortField: null,
281
- accountability: 'all',
282
- fields: {
283
- id: {
284
- field: 'id',
285
- defaultValue: null,
286
- nullable: false,
287
- generated: false,
288
- type: 'uuid',
289
- dbType: 'uuid',
290
- precision: null,
291
- scale: null,
292
- special: [],
293
- note: null,
294
- alias: false,
295
- validation: null,
296
- },
297
- },
298
- },
299
- },
300
- relations: [],
301
- };
@@ -1,5 +0,0 @@
1
- import type { Snapshot } from '../types/index.js';
2
- export declare const snapshotBeforeCreateCollection: Snapshot;
3
- export declare const snapshotCreateCollection: Snapshot;
4
- export declare const snapshotCreateCollectionNotNested: Snapshot;
5
- export declare const snapshotBeforeDeleteCollection: Snapshot;