@etus/bhono-app 0.1.6 → 0.1.7
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/package.json +3 -2
- package/templates/base/.claude/commands/check-skill-rules.md +112 -29
- package/templates/base/.claude/commands/linear/implement-issue.md +383 -55
- package/templates/base/.claude/commands/ship.md +77 -13
- package/templates/base/.claude/hooks/package-lock.json +0 -419
- package/templates/base/.claude/hooks/skill-activation-prompt.ts +185 -113
- package/templates/base/.claude/hooks/skill-tool-guard.sh +6 -0
- package/templates/base/.claude/hooks/skill-tool-guard.ts +198 -0
- package/templates/base/.claude/scripts/validate-skill-rules.sh +55 -32
- package/templates/base/.claude/settings.json +18 -11
- package/templates/base/.claude/skills/skill-rules.json +326 -173
- package/templates/base/.env.example +3 -0
- package/templates/base/README.md +9 -7
- package/templates/base/config/eslint.config.js +1 -0
- package/templates/base/config/wrangler.json +16 -17
- package/templates/base/docs/SETUP-GUIDE.md +566 -0
- package/templates/base/docs/architecture/README.md +162 -8
- package/templates/base/docs/architecture/api-catalog.md +575 -0
- package/templates/base/docs/architecture/c4-component.md +309 -0
- package/templates/base/docs/architecture/c4-container.md +183 -0
- package/templates/base/docs/architecture/c4-context.md +106 -0
- package/templates/base/docs/architecture/dependencies.md +327 -0
- package/templates/base/docs/architecture/tech-debt.md +184 -0
- package/templates/base/package.json +20 -15
- package/templates/base/scripts/capture-prod-session.ts +2 -2
- package/templates/base/scripts/sync-template.sh +104 -0
- package/templates/base/src/server/db/sql.ts +24 -4
- package/templates/base/src/server/index.ts +1 -0
- package/templates/base/src/server/lib/audited-db.ts +10 -10
- package/templates/base/src/server/middleware/account.ts +1 -1
- package/templates/base/src/server/middleware/auth.ts +11 -11
- package/templates/base/src/server/middleware/rate-limit.ts +3 -6
- package/templates/base/src/server/routes/auth/handlers.ts +5 -5
- package/templates/base/src/server/routes/auth/test-login.ts +9 -9
- package/templates/base/src/server/routes/index.ts +9 -0
- package/templates/base/src/server/routes/invitations/handlers.ts +6 -6
- package/templates/base/src/server/routes/openapi.ts +1 -1
- package/templates/base/src/server/services/accounts.ts +9 -9
- package/templates/base/src/server/services/audits.ts +12 -12
- package/templates/base/src/server/services/auth.ts +15 -15
- package/templates/base/src/server/services/invitations.ts +16 -16
- package/templates/base/src/server/services/users.ts +13 -13
- package/templates/base/src/shared/types/api.ts +66 -198
- package/templates/base/tests/e2e/auth.setup.ts +1 -1
- package/templates/base/tests/unit/server/auth/guards.test.ts +1 -1
- package/templates/base/tests/unit/server/middleware/auth.test.ts +273 -0
- package/templates/base/tests/unit/server/routes/auth/handlers.test.ts +111 -0
- package/templates/base/tests/unit/server/routes/users/handlers.test.ts +69 -5
- package/templates/base/tests/unit/server/services/accounts.test.ts +148 -0
- package/templates/base/tests/unit/server/services/audits.test.ts +219 -0
- package/templates/base/tests/unit/server/services/auth.test.ts +480 -3
- package/templates/base/tests/unit/server/services/invitations.test.ts +178 -0
- package/templates/base/tests/unit/server/services/users.test.ts +363 -8
- package/templates/base/tests/unit/shared/schemas.test.ts +1 -1
- package/templates/base/vite.config.ts +3 -1
- package/templates/base/.github/workflows/test.yml +0 -127
- package/templates/base/.husky/pre-push +0 -26
- package/templates/base/auth-setup-error.png +0 -0
- package/templates/base/pnpm-lock.yaml +0 -8052
- package/templates/base/tests/e2e/_auth/.gitkeep +0 -0
- package/templates/base/tsconfig.tsbuildinfo +0 -1
|
@@ -29,18 +29,14 @@ export interface paths {
|
|
|
29
29
|
responses: {
|
|
30
30
|
/** @description List of users */
|
|
31
31
|
200: {
|
|
32
|
-
headers:
|
|
33
|
-
[name: string]: unknown;
|
|
34
|
-
};
|
|
32
|
+
headers: Record<string, unknown>;
|
|
35
33
|
content: {
|
|
36
34
|
"application/json": components["schemas"]["PaginatedUsers"];
|
|
37
35
|
};
|
|
38
36
|
};
|
|
39
37
|
/** @description Unauthorized */
|
|
40
38
|
401: {
|
|
41
|
-
headers:
|
|
42
|
-
[name: string]: unknown;
|
|
43
|
-
};
|
|
39
|
+
headers: Record<string, unknown>;
|
|
44
40
|
content: {
|
|
45
41
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
46
42
|
};
|
|
@@ -83,36 +79,28 @@ export interface paths {
|
|
|
83
79
|
responses: {
|
|
84
80
|
/** @description User accounts created successfully */
|
|
85
81
|
201: {
|
|
86
|
-
headers:
|
|
87
|
-
[name: string]: unknown;
|
|
88
|
-
};
|
|
82
|
+
headers: Record<string, unknown>;
|
|
89
83
|
content: {
|
|
90
84
|
"application/json": components["schemas"]["BulkOperationSuccess"];
|
|
91
85
|
};
|
|
92
86
|
};
|
|
93
87
|
/** @description Invalid input */
|
|
94
88
|
400: {
|
|
95
|
-
headers:
|
|
96
|
-
[name: string]: unknown;
|
|
97
|
-
};
|
|
89
|
+
headers: Record<string, unknown>;
|
|
98
90
|
content: {
|
|
99
91
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
100
92
|
};
|
|
101
93
|
};
|
|
102
94
|
/** @description Unauthorized */
|
|
103
95
|
401: {
|
|
104
|
-
headers:
|
|
105
|
-
[name: string]: unknown;
|
|
106
|
-
};
|
|
96
|
+
headers: Record<string, unknown>;
|
|
107
97
|
content: {
|
|
108
98
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
109
99
|
};
|
|
110
100
|
};
|
|
111
101
|
/** @description Forbidden - requires MANAGER role or higher */
|
|
112
102
|
403: {
|
|
113
|
-
headers:
|
|
114
|
-
[name: string]: unknown;
|
|
115
|
-
};
|
|
103
|
+
headers: Record<string, unknown>;
|
|
116
104
|
content: {
|
|
117
105
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
118
106
|
};
|
|
@@ -138,36 +126,28 @@ export interface paths {
|
|
|
138
126
|
responses: {
|
|
139
127
|
/** @description User accounts deleted successfully */
|
|
140
128
|
200: {
|
|
141
|
-
headers:
|
|
142
|
-
[name: string]: unknown;
|
|
143
|
-
};
|
|
129
|
+
headers: Record<string, unknown>;
|
|
144
130
|
content: {
|
|
145
131
|
"application/json": components["schemas"]["BulkOperationSuccess"];
|
|
146
132
|
};
|
|
147
133
|
};
|
|
148
134
|
/** @description Invalid input */
|
|
149
135
|
400: {
|
|
150
|
-
headers:
|
|
151
|
-
[name: string]: unknown;
|
|
152
|
-
};
|
|
136
|
+
headers: Record<string, unknown>;
|
|
153
137
|
content: {
|
|
154
138
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
155
139
|
};
|
|
156
140
|
};
|
|
157
141
|
/** @description Unauthorized */
|
|
158
142
|
401: {
|
|
159
|
-
headers:
|
|
160
|
-
[name: string]: unknown;
|
|
161
|
-
};
|
|
143
|
+
headers: Record<string, unknown>;
|
|
162
144
|
content: {
|
|
163
145
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
164
146
|
};
|
|
165
147
|
};
|
|
166
148
|
/** @description Forbidden - requires MANAGER role or higher */
|
|
167
149
|
403: {
|
|
168
|
-
headers:
|
|
169
|
-
[name: string]: unknown;
|
|
170
|
-
};
|
|
150
|
+
headers: Record<string, unknown>;
|
|
171
151
|
content: {
|
|
172
152
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
173
153
|
};
|
|
@@ -200,9 +180,7 @@ export interface paths {
|
|
|
200
180
|
responses: {
|
|
201
181
|
/** @description User details */
|
|
202
182
|
200: {
|
|
203
|
-
headers:
|
|
204
|
-
[name: string]: unknown;
|
|
205
|
-
};
|
|
183
|
+
headers: Record<string, unknown>;
|
|
206
184
|
content: {
|
|
207
185
|
"application/json": {
|
|
208
186
|
data: components["schemas"]["User"];
|
|
@@ -211,18 +189,14 @@ export interface paths {
|
|
|
211
189
|
};
|
|
212
190
|
/** @description Unauthorized */
|
|
213
191
|
401: {
|
|
214
|
-
headers:
|
|
215
|
-
[name: string]: unknown;
|
|
216
|
-
};
|
|
192
|
+
headers: Record<string, unknown>;
|
|
217
193
|
content: {
|
|
218
194
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
219
195
|
};
|
|
220
196
|
};
|
|
221
197
|
/** @description User not found */
|
|
222
198
|
404: {
|
|
223
|
-
headers:
|
|
224
|
-
[name: string]: unknown;
|
|
225
|
-
};
|
|
199
|
+
headers: Record<string, unknown>;
|
|
226
200
|
content: {
|
|
227
201
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
228
202
|
};
|
|
@@ -245,25 +219,19 @@ export interface paths {
|
|
|
245
219
|
responses: {
|
|
246
220
|
/** @description User deleted */
|
|
247
221
|
204: {
|
|
248
|
-
headers:
|
|
249
|
-
[name: string]: unknown;
|
|
250
|
-
};
|
|
222
|
+
headers: Record<string, unknown>;
|
|
251
223
|
content?: never;
|
|
252
224
|
};
|
|
253
225
|
/** @description Unauthorized */
|
|
254
226
|
401: {
|
|
255
|
-
headers:
|
|
256
|
-
[name: string]: unknown;
|
|
257
|
-
};
|
|
227
|
+
headers: Record<string, unknown>;
|
|
258
228
|
content: {
|
|
259
229
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
260
230
|
};
|
|
261
231
|
};
|
|
262
232
|
/** @description User not found */
|
|
263
233
|
404: {
|
|
264
|
-
headers:
|
|
265
|
-
[name: string]: unknown;
|
|
266
|
-
};
|
|
234
|
+
headers: Record<string, unknown>;
|
|
267
235
|
content: {
|
|
268
236
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
269
237
|
};
|
|
@@ -290,9 +258,7 @@ export interface paths {
|
|
|
290
258
|
responses: {
|
|
291
259
|
/** @description User updated */
|
|
292
260
|
200: {
|
|
293
|
-
headers:
|
|
294
|
-
[name: string]: unknown;
|
|
295
|
-
};
|
|
261
|
+
headers: Record<string, unknown>;
|
|
296
262
|
content: {
|
|
297
263
|
"application/json": {
|
|
298
264
|
data: components["schemas"]["User"];
|
|
@@ -301,27 +267,21 @@ export interface paths {
|
|
|
301
267
|
};
|
|
302
268
|
/** @description Invalid input */
|
|
303
269
|
400: {
|
|
304
|
-
headers:
|
|
305
|
-
[name: string]: unknown;
|
|
306
|
-
};
|
|
270
|
+
headers: Record<string, unknown>;
|
|
307
271
|
content: {
|
|
308
272
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
309
273
|
};
|
|
310
274
|
};
|
|
311
275
|
/** @description Unauthorized */
|
|
312
276
|
401: {
|
|
313
|
-
headers:
|
|
314
|
-
[name: string]: unknown;
|
|
315
|
-
};
|
|
277
|
+
headers: Record<string, unknown>;
|
|
316
278
|
content: {
|
|
317
279
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
318
280
|
};
|
|
319
281
|
};
|
|
320
282
|
/** @description User not found */
|
|
321
283
|
404: {
|
|
322
|
-
headers:
|
|
323
|
-
[name: string]: unknown;
|
|
324
|
-
};
|
|
284
|
+
headers: Record<string, unknown>;
|
|
325
285
|
content: {
|
|
326
286
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
327
287
|
};
|
|
@@ -353,9 +313,7 @@ export interface paths {
|
|
|
353
313
|
responses: {
|
|
354
314
|
/** @description User restored successfully */
|
|
355
315
|
200: {
|
|
356
|
-
headers:
|
|
357
|
-
[name: string]: unknown;
|
|
358
|
-
};
|
|
316
|
+
headers: Record<string, unknown>;
|
|
359
317
|
content: {
|
|
360
318
|
"application/json": {
|
|
361
319
|
data: components["schemas"]["User"];
|
|
@@ -364,27 +322,21 @@ export interface paths {
|
|
|
364
322
|
};
|
|
365
323
|
/** @description Unauthorized */
|
|
366
324
|
401: {
|
|
367
|
-
headers:
|
|
368
|
-
[name: string]: unknown;
|
|
369
|
-
};
|
|
325
|
+
headers: Record<string, unknown>;
|
|
370
326
|
content: {
|
|
371
327
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
372
328
|
};
|
|
373
329
|
};
|
|
374
330
|
/** @description Forbidden - requires ADMIN role */
|
|
375
331
|
403: {
|
|
376
|
-
headers:
|
|
377
|
-
[name: string]: unknown;
|
|
378
|
-
};
|
|
332
|
+
headers: Record<string, unknown>;
|
|
379
333
|
content: {
|
|
380
334
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
381
335
|
};
|
|
382
336
|
};
|
|
383
337
|
/** @description User not found or not deleted */
|
|
384
338
|
404: {
|
|
385
|
-
headers:
|
|
386
|
-
[name: string]: unknown;
|
|
387
|
-
};
|
|
339
|
+
headers: Record<string, unknown>;
|
|
388
340
|
content: {
|
|
389
341
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
390
342
|
};
|
|
@@ -422,18 +374,14 @@ export interface paths {
|
|
|
422
374
|
responses: {
|
|
423
375
|
/** @description List of accounts */
|
|
424
376
|
200: {
|
|
425
|
-
headers:
|
|
426
|
-
[name: string]: unknown;
|
|
427
|
-
};
|
|
377
|
+
headers: Record<string, unknown>;
|
|
428
378
|
content: {
|
|
429
379
|
"application/json": components["schemas"]["PaginatedAccounts"];
|
|
430
380
|
};
|
|
431
381
|
};
|
|
432
382
|
/** @description Unauthorized */
|
|
433
383
|
401: {
|
|
434
|
-
headers:
|
|
435
|
-
[name: string]: unknown;
|
|
436
|
-
};
|
|
384
|
+
headers: Record<string, unknown>;
|
|
437
385
|
content: {
|
|
438
386
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
439
387
|
};
|
|
@@ -457,9 +405,7 @@ export interface paths {
|
|
|
457
405
|
responses: {
|
|
458
406
|
/** @description Account created */
|
|
459
407
|
201: {
|
|
460
|
-
headers:
|
|
461
|
-
[name: string]: unknown;
|
|
462
|
-
};
|
|
408
|
+
headers: Record<string, unknown>;
|
|
463
409
|
content: {
|
|
464
410
|
"application/json": {
|
|
465
411
|
data: components["schemas"]["Account"];
|
|
@@ -468,36 +414,28 @@ export interface paths {
|
|
|
468
414
|
};
|
|
469
415
|
/** @description Invalid input */
|
|
470
416
|
400: {
|
|
471
|
-
headers:
|
|
472
|
-
[name: string]: unknown;
|
|
473
|
-
};
|
|
417
|
+
headers: Record<string, unknown>;
|
|
474
418
|
content: {
|
|
475
419
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
476
420
|
};
|
|
477
421
|
};
|
|
478
422
|
/** @description Unauthorized */
|
|
479
423
|
401: {
|
|
480
|
-
headers:
|
|
481
|
-
[name: string]: unknown;
|
|
482
|
-
};
|
|
424
|
+
headers: Record<string, unknown>;
|
|
483
425
|
content: {
|
|
484
426
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
485
427
|
};
|
|
486
428
|
};
|
|
487
429
|
/** @description Forbidden - Super admin only */
|
|
488
430
|
403: {
|
|
489
|
-
headers:
|
|
490
|
-
[name: string]: unknown;
|
|
491
|
-
};
|
|
431
|
+
headers: Record<string, unknown>;
|
|
492
432
|
content: {
|
|
493
433
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
494
434
|
};
|
|
495
435
|
};
|
|
496
436
|
/** @description Domain already exists */
|
|
497
437
|
409: {
|
|
498
|
-
headers:
|
|
499
|
-
[name: string]: unknown;
|
|
500
|
-
};
|
|
438
|
+
headers: Record<string, unknown>;
|
|
501
439
|
content: {
|
|
502
440
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
503
441
|
};
|
|
@@ -531,9 +469,7 @@ export interface paths {
|
|
|
531
469
|
responses: {
|
|
532
470
|
/** @description Account details */
|
|
533
471
|
200: {
|
|
534
|
-
headers:
|
|
535
|
-
[name: string]: unknown;
|
|
536
|
-
};
|
|
472
|
+
headers: Record<string, unknown>;
|
|
537
473
|
content: {
|
|
538
474
|
"application/json": {
|
|
539
475
|
data: components["schemas"]["Account"];
|
|
@@ -542,18 +478,14 @@ export interface paths {
|
|
|
542
478
|
};
|
|
543
479
|
/** @description Unauthorized */
|
|
544
480
|
401: {
|
|
545
|
-
headers:
|
|
546
|
-
[name: string]: unknown;
|
|
547
|
-
};
|
|
481
|
+
headers: Record<string, unknown>;
|
|
548
482
|
content: {
|
|
549
483
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
550
484
|
};
|
|
551
485
|
};
|
|
552
486
|
/** @description Account not found */
|
|
553
487
|
404: {
|
|
554
|
-
headers:
|
|
555
|
-
[name: string]: unknown;
|
|
556
|
-
};
|
|
488
|
+
headers: Record<string, unknown>;
|
|
557
489
|
content: {
|
|
558
490
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
559
491
|
};
|
|
@@ -576,34 +508,26 @@ export interface paths {
|
|
|
576
508
|
responses: {
|
|
577
509
|
/** @description Account deleted */
|
|
578
510
|
204: {
|
|
579
|
-
headers:
|
|
580
|
-
[name: string]: unknown;
|
|
581
|
-
};
|
|
511
|
+
headers: Record<string, unknown>;
|
|
582
512
|
content?: never;
|
|
583
513
|
};
|
|
584
514
|
/** @description Unauthorized */
|
|
585
515
|
401: {
|
|
586
|
-
headers:
|
|
587
|
-
[name: string]: unknown;
|
|
588
|
-
};
|
|
516
|
+
headers: Record<string, unknown>;
|
|
589
517
|
content: {
|
|
590
518
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
591
519
|
};
|
|
592
520
|
};
|
|
593
521
|
/** @description Forbidden - Super admin only */
|
|
594
522
|
403: {
|
|
595
|
-
headers:
|
|
596
|
-
[name: string]: unknown;
|
|
597
|
-
};
|
|
523
|
+
headers: Record<string, unknown>;
|
|
598
524
|
content: {
|
|
599
525
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
600
526
|
};
|
|
601
527
|
};
|
|
602
528
|
/** @description Account not found */
|
|
603
529
|
404: {
|
|
604
|
-
headers:
|
|
605
|
-
[name: string]: unknown;
|
|
606
|
-
};
|
|
530
|
+
headers: Record<string, unknown>;
|
|
607
531
|
content: {
|
|
608
532
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
609
533
|
};
|
|
@@ -630,9 +554,7 @@ export interface paths {
|
|
|
630
554
|
responses: {
|
|
631
555
|
/** @description Account updated */
|
|
632
556
|
200: {
|
|
633
|
-
headers:
|
|
634
|
-
[name: string]: unknown;
|
|
635
|
-
};
|
|
557
|
+
headers: Record<string, unknown>;
|
|
636
558
|
content: {
|
|
637
559
|
"application/json": {
|
|
638
560
|
data: components["schemas"]["Account"];
|
|
@@ -641,36 +563,28 @@ export interface paths {
|
|
|
641
563
|
};
|
|
642
564
|
/** @description Invalid input */
|
|
643
565
|
400: {
|
|
644
|
-
headers:
|
|
645
|
-
[name: string]: unknown;
|
|
646
|
-
};
|
|
566
|
+
headers: Record<string, unknown>;
|
|
647
567
|
content: {
|
|
648
568
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
649
569
|
};
|
|
650
570
|
};
|
|
651
571
|
/** @description Unauthorized */
|
|
652
572
|
401: {
|
|
653
|
-
headers:
|
|
654
|
-
[name: string]: unknown;
|
|
655
|
-
};
|
|
573
|
+
headers: Record<string, unknown>;
|
|
656
574
|
content: {
|
|
657
575
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
658
576
|
};
|
|
659
577
|
};
|
|
660
578
|
/** @description Account not found */
|
|
661
579
|
404: {
|
|
662
|
-
headers:
|
|
663
|
-
[name: string]: unknown;
|
|
664
|
-
};
|
|
580
|
+
headers: Record<string, unknown>;
|
|
665
581
|
content: {
|
|
666
582
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
667
583
|
};
|
|
668
584
|
};
|
|
669
585
|
/** @description Domain already exists */
|
|
670
586
|
409: {
|
|
671
|
-
headers:
|
|
672
|
-
[name: string]: unknown;
|
|
673
|
-
};
|
|
587
|
+
headers: Record<string, unknown>;
|
|
674
588
|
content: {
|
|
675
589
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
676
590
|
};
|
|
@@ -705,9 +619,7 @@ export interface paths {
|
|
|
705
619
|
responses: {
|
|
706
620
|
/** @description Account restored successfully */
|
|
707
621
|
200: {
|
|
708
|
-
headers:
|
|
709
|
-
[name: string]: unknown;
|
|
710
|
-
};
|
|
622
|
+
headers: Record<string, unknown>;
|
|
711
623
|
content: {
|
|
712
624
|
"application/json": {
|
|
713
625
|
data: components["schemas"]["Account"];
|
|
@@ -716,27 +628,21 @@ export interface paths {
|
|
|
716
628
|
};
|
|
717
629
|
/** @description Unauthorized */
|
|
718
630
|
401: {
|
|
719
|
-
headers:
|
|
720
|
-
[name: string]: unknown;
|
|
721
|
-
};
|
|
631
|
+
headers: Record<string, unknown>;
|
|
722
632
|
content: {
|
|
723
633
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
724
634
|
};
|
|
725
635
|
};
|
|
726
636
|
/** @description Forbidden - Super admin only */
|
|
727
637
|
403: {
|
|
728
|
-
headers:
|
|
729
|
-
[name: string]: unknown;
|
|
730
|
-
};
|
|
638
|
+
headers: Record<string, unknown>;
|
|
731
639
|
content: {
|
|
732
640
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
733
641
|
};
|
|
734
642
|
};
|
|
735
643
|
/** @description Account not found or not deleted */
|
|
736
644
|
404: {
|
|
737
|
-
headers:
|
|
738
|
-
[name: string]: unknown;
|
|
739
|
-
};
|
|
645
|
+
headers: Record<string, unknown>;
|
|
740
646
|
content: {
|
|
741
647
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
742
648
|
};
|
|
@@ -771,9 +677,7 @@ export interface paths {
|
|
|
771
677
|
responses: {
|
|
772
678
|
/** @description List of pending invitations */
|
|
773
679
|
200: {
|
|
774
|
-
headers:
|
|
775
|
-
[name: string]: unknown;
|
|
776
|
-
};
|
|
680
|
+
headers: Record<string, unknown>;
|
|
777
681
|
content: {
|
|
778
682
|
"application/json": {
|
|
779
683
|
data: {
|
|
@@ -824,9 +728,7 @@ export interface paths {
|
|
|
824
728
|
responses: {
|
|
825
729
|
/** @description User linked or invitation sent */
|
|
826
730
|
200: {
|
|
827
|
-
headers:
|
|
828
|
-
[name: string]: unknown;
|
|
829
|
-
};
|
|
731
|
+
headers: Record<string, unknown>;
|
|
830
732
|
content: {
|
|
831
733
|
"application/json": {
|
|
832
734
|
linked: boolean;
|
|
@@ -847,18 +749,14 @@ export interface paths {
|
|
|
847
749
|
};
|
|
848
750
|
/** @description Cannot assign role higher than own */
|
|
849
751
|
403: {
|
|
850
|
-
headers:
|
|
851
|
-
[name: string]: unknown;
|
|
852
|
-
};
|
|
752
|
+
headers: Record<string, unknown>;
|
|
853
753
|
content: {
|
|
854
754
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
855
755
|
};
|
|
856
756
|
};
|
|
857
757
|
/** @description User already in account or pending invitation exists */
|
|
858
758
|
409: {
|
|
859
|
-
headers:
|
|
860
|
-
[name: string]: unknown;
|
|
861
|
-
};
|
|
759
|
+
headers: Record<string, unknown>;
|
|
862
760
|
content: {
|
|
863
761
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
864
762
|
};
|
|
@@ -898,16 +796,12 @@ export interface paths {
|
|
|
898
796
|
responses: {
|
|
899
797
|
/** @description Invitation revoked */
|
|
900
798
|
204: {
|
|
901
|
-
headers:
|
|
902
|
-
[name: string]: unknown;
|
|
903
|
-
};
|
|
799
|
+
headers: Record<string, unknown>;
|
|
904
800
|
content?: never;
|
|
905
801
|
};
|
|
906
802
|
/** @description Invitation not found */
|
|
907
803
|
404: {
|
|
908
|
-
headers:
|
|
909
|
-
[name: string]: unknown;
|
|
910
|
-
};
|
|
804
|
+
headers: Record<string, unknown>;
|
|
911
805
|
content: {
|
|
912
806
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
913
807
|
};
|
|
@@ -950,27 +844,21 @@ export interface paths {
|
|
|
950
844
|
responses: {
|
|
951
845
|
/** @description List of audit logs */
|
|
952
846
|
200: {
|
|
953
|
-
headers:
|
|
954
|
-
[name: string]: unknown;
|
|
955
|
-
};
|
|
847
|
+
headers: Record<string, unknown>;
|
|
956
848
|
content: {
|
|
957
849
|
"application/json": components["schemas"]["PaginatedAuditLogs"];
|
|
958
850
|
};
|
|
959
851
|
};
|
|
960
852
|
/** @description Unauthorized */
|
|
961
853
|
401: {
|
|
962
|
-
headers:
|
|
963
|
-
[name: string]: unknown;
|
|
964
|
-
};
|
|
854
|
+
headers: Record<string, unknown>;
|
|
965
855
|
content: {
|
|
966
856
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
967
857
|
};
|
|
968
858
|
};
|
|
969
859
|
/** @description Forbidden - requires ADMIN or ANALYTICS role */
|
|
970
860
|
403: {
|
|
971
|
-
headers:
|
|
972
|
-
[name: string]: unknown;
|
|
973
|
-
};
|
|
861
|
+
headers: Record<string, unknown>;
|
|
974
862
|
content: {
|
|
975
863
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
976
864
|
};
|
|
@@ -1010,27 +898,21 @@ export interface paths {
|
|
|
1010
898
|
responses: {
|
|
1011
899
|
/** @description Upload URL generated successfully */
|
|
1012
900
|
200: {
|
|
1013
|
-
headers:
|
|
1014
|
-
[name: string]: unknown;
|
|
1015
|
-
};
|
|
901
|
+
headers: Record<string, unknown>;
|
|
1016
902
|
content: {
|
|
1017
903
|
"application/json": components["schemas"]["UploadUrlResponse"];
|
|
1018
904
|
};
|
|
1019
905
|
};
|
|
1020
906
|
/** @description Invalid input */
|
|
1021
907
|
400: {
|
|
1022
|
-
headers:
|
|
1023
|
-
[name: string]: unknown;
|
|
1024
|
-
};
|
|
908
|
+
headers: Record<string, unknown>;
|
|
1025
909
|
content: {
|
|
1026
910
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1027
911
|
};
|
|
1028
912
|
};
|
|
1029
913
|
/** @description Unauthorized */
|
|
1030
914
|
401: {
|
|
1031
|
-
headers:
|
|
1032
|
-
[name: string]: unknown;
|
|
1033
|
-
};
|
|
915
|
+
headers: Record<string, unknown>;
|
|
1034
916
|
content: {
|
|
1035
917
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1036
918
|
};
|
|
@@ -1066,27 +948,21 @@ export interface paths {
|
|
|
1066
948
|
responses: {
|
|
1067
949
|
/** @description File uploaded successfully */
|
|
1068
950
|
200: {
|
|
1069
|
-
headers:
|
|
1070
|
-
[name: string]: unknown;
|
|
1071
|
-
};
|
|
951
|
+
headers: Record<string, unknown>;
|
|
1072
952
|
content: {
|
|
1073
953
|
"application/json": components["schemas"]["UploadSuccess"];
|
|
1074
954
|
};
|
|
1075
955
|
};
|
|
1076
956
|
/** @description Invalid input or missing file */
|
|
1077
957
|
400: {
|
|
1078
|
-
headers:
|
|
1079
|
-
[name: string]: unknown;
|
|
1080
|
-
};
|
|
958
|
+
headers: Record<string, unknown>;
|
|
1081
959
|
content: {
|
|
1082
960
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1083
961
|
};
|
|
1084
962
|
};
|
|
1085
963
|
/** @description Unauthorized */
|
|
1086
964
|
401: {
|
|
1087
|
-
headers:
|
|
1088
|
-
[name: string]: unknown;
|
|
1089
|
-
};
|
|
965
|
+
headers: Record<string, unknown>;
|
|
1090
966
|
content: {
|
|
1091
967
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1092
968
|
};
|
|
@@ -1125,25 +1001,19 @@ export interface paths {
|
|
|
1125
1001
|
responses: {
|
|
1126
1002
|
/** @description File deleted successfully */
|
|
1127
1003
|
204: {
|
|
1128
|
-
headers:
|
|
1129
|
-
[name: string]: unknown;
|
|
1130
|
-
};
|
|
1004
|
+
headers: Record<string, unknown>;
|
|
1131
1005
|
content?: never;
|
|
1132
1006
|
};
|
|
1133
1007
|
/** @description Unauthorized */
|
|
1134
1008
|
401: {
|
|
1135
|
-
headers:
|
|
1136
|
-
[name: string]: unknown;
|
|
1137
|
-
};
|
|
1009
|
+
headers: Record<string, unknown>;
|
|
1138
1010
|
content: {
|
|
1139
1011
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1140
1012
|
};
|
|
1141
1013
|
};
|
|
1142
1014
|
/** @description File not found */
|
|
1143
1015
|
404: {
|
|
1144
|
-
headers:
|
|
1145
|
-
[name: string]: unknown;
|
|
1146
|
-
};
|
|
1016
|
+
headers: Record<string, unknown>;
|
|
1147
1017
|
content: {
|
|
1148
1018
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
1149
1019
|
};
|
|
@@ -1330,9 +1200,7 @@ export interface components {
|
|
|
1330
1200
|
* "status": "active"
|
|
1331
1201
|
* }
|
|
1332
1202
|
*/
|
|
1333
|
-
changes:
|
|
1334
|
-
[key: string]: unknown;
|
|
1335
|
-
} | null;
|
|
1203
|
+
changes: Record<string, unknown> | null;
|
|
1336
1204
|
/** @example 192.168.1.1 */
|
|
1337
1205
|
ipAddress: string | null;
|
|
1338
1206
|
/** @example Mozilla/5.0... */
|