@tachybase/module-auth 0.23.8

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 (95) hide show
  1. package/.turbo/turbo-build.log +14 -0
  2. package/README.md +117 -0
  3. package/client.d.ts +2 -0
  4. package/client.js +65 -0
  5. package/dist/client/AuthProvider.d.ts +2 -0
  6. package/dist/client/authenticator.d.ts +12 -0
  7. package/dist/client/basic/Options.d.ts +2 -0
  8. package/dist/client/basic/SignInForm.d.ts +9 -0
  9. package/dist/client/basic/SignUpForm.d.ts +13 -0
  10. package/dist/client/basic/index.d.ts +3 -0
  11. package/dist/client/bind/AuthenticatorBind.d.ts +2 -0
  12. package/dist/client/bind/BindForm.d.ts +5 -0
  13. package/dist/client/bind/schemas/authenticators.d.ts +2 -0
  14. package/dist/client/index.d.ts +30 -0
  15. package/dist/client/index.js +22 -0
  16. package/dist/client/locale/index.d.ts +2 -0
  17. package/dist/client/pages/AuthLayout.d.ts +2 -0
  18. package/dist/client/pages/SignInPage.d.ts +13 -0
  19. package/dist/client/pages/SignUpPage.d.ts +20 -0
  20. package/dist/client/pages/index.d.ts +3 -0
  21. package/dist/client/settings/Authenticator.d.ts +2 -0
  22. package/dist/client/settings/Options.d.ts +4 -0
  23. package/dist/client/settings/authType.d.ts +15 -0
  24. package/dist/client/settings/schemas/authenticators.d.ts +3 -0
  25. package/dist/externalVersion.js +16 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.js +40 -0
  28. package/dist/locale/en-US.json +31 -0
  29. package/dist/locale/ko_KR.json +26 -0
  30. package/dist/locale/zh-CN.json +31 -0
  31. package/dist/node_modules/cron/LICENSE +8 -0
  32. package/dist/node_modules/cron/dist/constants.d.ts +74 -0
  33. package/dist/node_modules/cron/dist/constants.js +78 -0
  34. package/dist/node_modules/cron/dist/errors.d.ts +5 -0
  35. package/dist/node_modules/cron/dist/errors.js +13 -0
  36. package/dist/node_modules/cron/dist/index.d.ts +6 -0
  37. package/dist/node_modules/cron/dist/index.js +1 -0
  38. package/dist/node_modules/cron/dist/job.d.ts +30 -0
  39. package/dist/node_modules/cron/dist/job.js +222 -0
  40. package/dist/node_modules/cron/dist/time.d.ts +33 -0
  41. package/dist/node_modules/cron/dist/time.js +444 -0
  42. package/dist/node_modules/cron/dist/types/cron.types.d.ts +50 -0
  43. package/dist/node_modules/cron/dist/types/cron.types.js +3 -0
  44. package/dist/node_modules/cron/dist/types/utils.d.ts +3 -0
  45. package/dist/node_modules/cron/dist/types/utils.js +3 -0
  46. package/dist/node_modules/cron/dist/utils.d.ts +2 -0
  47. package/dist/node_modules/cron/dist/utils.js +8 -0
  48. package/dist/node_modules/cron/package.json +1 -0
  49. package/dist/preset.d.ts +3 -0
  50. package/dist/preset.js +34 -0
  51. package/dist/server/actions/auth.d.ts +8 -0
  52. package/dist/server/actions/auth.js +40 -0
  53. package/dist/server/actions/authenticators.d.ts +10 -0
  54. package/dist/server/actions/authenticators.js +153 -0
  55. package/dist/server/basic-auth.d.ts +10 -0
  56. package/dist/server/basic-auth.js +176 -0
  57. package/dist/server/collections/authenticators.d.ts +5 -0
  58. package/dist/server/collections/authenticators.js +117 -0
  59. package/dist/server/collections/token-blacklist.d.ts +2 -0
  60. package/dist/server/collections/token-blacklist.js +42 -0
  61. package/dist/server/collections/users-authenticators.d.ts +6 -0
  62. package/dist/server/collections/users-authenticators.js +85 -0
  63. package/dist/server/index.d.ts +3 -0
  64. package/dist/server/index.js +42 -0
  65. package/dist/server/locale/en-US.d.ts +9 -0
  66. package/dist/server/locale/en-US.js +30 -0
  67. package/dist/server/locale/fr-FR.d.ts +9 -0
  68. package/dist/server/locale/fr-FR.js +30 -0
  69. package/dist/server/locale/index.d.ts +3 -0
  70. package/dist/server/locale/index.js +43 -0
  71. package/dist/server/locale/ja-JP.d.ts +5 -0
  72. package/dist/server/locale/ja-JP.js +26 -0
  73. package/dist/server/locale/pt-BR.d.ts +9 -0
  74. package/dist/server/locale/pt-BR.js +30 -0
  75. package/dist/server/locale/zh-CN.d.ts +11 -0
  76. package/dist/server/locale/zh-CN.js +32 -0
  77. package/dist/server/migrations/20230506152253-basic-authenticator.d.ts +6 -0
  78. package/dist/server/migrations/20230506152253-basic-authenticator.js +44 -0
  79. package/dist/server/migrations/20230607174500-update-basic.d.ts +6 -0
  80. package/dist/server/migrations/20230607174500-update-basic.js +47 -0
  81. package/dist/server/migrations/20231218132032-fix-allow-signup.d.ts +6 -0
  82. package/dist/server/migrations/20231218132032-fix-allow-signup.js +55 -0
  83. package/dist/server/model/authenticator.d.ts +10 -0
  84. package/dist/server/model/authenticator.js +81 -0
  85. package/dist/server/plugin.d.ts +11 -0
  86. package/dist/server/plugin.js +132 -0
  87. package/dist/server/storer.d.ts +16 -0
  88. package/dist/server/storer.js +69 -0
  89. package/dist/server/token-blacklist.d.ts +17 -0
  90. package/dist/server/token-blacklist.js +86 -0
  91. package/dist/swagger/index.d.ts +754 -0
  92. package/dist/swagger/index.js +787 -0
  93. package/package.json +34 -0
  94. package/server.d.ts +2 -0
  95. package/server.js +65 -0
@@ -0,0 +1,787 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var swagger_exports = {};
19
+ __export(swagger_exports, {
20
+ default: () => swagger_default
21
+ });
22
+ module.exports = __toCommonJS(swagger_exports);
23
+ var swagger_default = {
24
+ info: {
25
+ title: "TachyBase API - Auth plugin"
26
+ },
27
+ paths: {
28
+ "/auth:check": {
29
+ get: {
30
+ description: "Check if the user is logged in",
31
+ tags: ["Auth"],
32
+ parameters: [
33
+ {
34
+ name: "X-Authenticator",
35
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u8BC6",
36
+ in: "header",
37
+ schema: {
38
+ type: "string",
39
+ default: "basic"
40
+ }
41
+ }
42
+ ],
43
+ security: [],
44
+ responses: {
45
+ 200: {
46
+ description: "successful operation",
47
+ content: {
48
+ "application/json": {
49
+ schema: {
50
+ allOf: [
51
+ {
52
+ $ref: "#/components/schemas/user"
53
+ },
54
+ {
55
+ type: "object",
56
+ properties: {
57
+ roles: {
58
+ $ref: "#/components/schemas/roles"
59
+ }
60
+ }
61
+ }
62
+ ]
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ },
70
+ "/auth:signIn": {
71
+ post: {
72
+ description: "Sign in",
73
+ tags: ["Basic auth"],
74
+ security: [],
75
+ parameters: [
76
+ {
77
+ name: "X-Authenticator",
78
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u8BC6",
79
+ in: "header",
80
+ schema: {
81
+ type: "string",
82
+ default: "basic"
83
+ }
84
+ }
85
+ ],
86
+ requestBody: {
87
+ content: {
88
+ "application/json": {
89
+ schema: {
90
+ type: "object",
91
+ properties: {
92
+ email: {
93
+ type: "string",
94
+ description: "\u90AE\u7BB1"
95
+ },
96
+ password: {
97
+ type: "string",
98
+ description: "\u5BC6\u7801"
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ },
105
+ responses: {
106
+ 200: {
107
+ description: "successful operation",
108
+ content: {
109
+ "application/json": {
110
+ schema: {
111
+ type: "object",
112
+ properties: {
113
+ token: {
114
+ type: "string"
115
+ },
116
+ user: {
117
+ $ref: "#/components/schemas/user"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ },
124
+ 401: {
125
+ description: "Unauthorized",
126
+ content: {
127
+ "application/json": {
128
+ schema: {
129
+ $ref: "#/components/schemas/error"
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ },
137
+ "/auth:signUp": {
138
+ post: {
139
+ description: "Sign up",
140
+ tags: ["Basic auth"],
141
+ security: [],
142
+ requestBody: {
143
+ content: {
144
+ "application/json": {
145
+ schema: {
146
+ type: "object",
147
+ properties: {
148
+ email: {
149
+ type: "string",
150
+ description: "\u90AE\u7BB1"
151
+ },
152
+ password: {
153
+ type: "string",
154
+ description: "\u5BC6\u7801"
155
+ },
156
+ confirm_password: {
157
+ type: "string",
158
+ description: "\u786E\u8BA4\u5BC6\u7801"
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ },
165
+ responses: {
166
+ 200: {
167
+ description: "ok"
168
+ }
169
+ }
170
+ }
171
+ },
172
+ "/auth:signOut": {
173
+ post: {
174
+ description: "Sign out",
175
+ tags: ["Basic auth"],
176
+ security: [],
177
+ responses: {
178
+ 200: {
179
+ description: "ok"
180
+ }
181
+ }
182
+ }
183
+ },
184
+ "/auth:lostPassword": {
185
+ post: {
186
+ description: "Lost password",
187
+ tags: ["Basic auth"],
188
+ security: [],
189
+ requestBody: {
190
+ content: {
191
+ "application/json": {
192
+ schema: {
193
+ type: "object",
194
+ properties: {
195
+ email: {
196
+ type: "string",
197
+ description: "\u90AE\u7BB1"
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ },
204
+ responses: {
205
+ 200: {
206
+ description: "successful operation",
207
+ content: {
208
+ "application/json": {
209
+ schema: {
210
+ allOf: [
211
+ {
212
+ $ref: "#/components/schemas/user"
213
+ },
214
+ {
215
+ type: "object",
216
+ properties: {
217
+ resetToken: {
218
+ type: "string",
219
+ description: "\u91CD\u7F6E\u5BC6\u7801\u7684token"
220
+ }
221
+ }
222
+ }
223
+ ]
224
+ }
225
+ }
226
+ }
227
+ },
228
+ 400: {
229
+ description: "Please fill in your email address",
230
+ content: {
231
+ "application/json": {
232
+ schema: {
233
+ $ref: "#/components/schemas/error"
234
+ }
235
+ }
236
+ }
237
+ },
238
+ 401: {
239
+ description: "The email is incorrect, please re-enter",
240
+ content: {
241
+ "application/json": {
242
+ schema: {
243
+ $ref: "#/components/schemas/error"
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ },
251
+ "/auth:resetPassword": {
252
+ post: {
253
+ description: "Reset password",
254
+ tags: ["Basic auth"],
255
+ security: [],
256
+ requestBody: {
257
+ content: {
258
+ "application/json": {
259
+ schema: {
260
+ type: "object",
261
+ properties: {
262
+ email: {
263
+ type: "string",
264
+ description: "\u90AE\u7BB1"
265
+ },
266
+ password: {
267
+ type: "string",
268
+ description: "\u5BC6\u7801"
269
+ },
270
+ resetToken: {
271
+ type: "string",
272
+ description: "\u91CD\u7F6E\u5BC6\u7801\u7684token"
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+ },
279
+ responses: {
280
+ 200: {
281
+ description: "successful operation",
282
+ content: {
283
+ "application/json": {
284
+ schema: {
285
+ $ref: "#/components/schemas/user"
286
+ }
287
+ }
288
+ }
289
+ },
290
+ 404: {
291
+ description: "User not found",
292
+ content: {
293
+ "application/json": {
294
+ schema: {
295
+ $ref: "#/components/schemas/error"
296
+ }
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ },
303
+ "/auth:getUserByResetToken": {
304
+ get: {
305
+ description: "Get user by reset token",
306
+ tags: ["Basic auth"],
307
+ security: [],
308
+ parameters: [
309
+ {
310
+ name: "token",
311
+ in: "query",
312
+ description: "\u91CD\u7F6E\u5BC6\u7801\u7684token",
313
+ required: true,
314
+ schema: {
315
+ type: "string"
316
+ }
317
+ }
318
+ ],
319
+ responses: {
320
+ 200: {
321
+ description: "ok",
322
+ content: {
323
+ "application/json": {
324
+ schema: {
325
+ $ref: "#/components/schemas/user"
326
+ }
327
+ }
328
+ }
329
+ },
330
+ 401: {
331
+ description: "Unauthorized",
332
+ content: {
333
+ "application/json": {
334
+ schema: {
335
+ $ref: "#/components/schemas/error"
336
+ }
337
+ }
338
+ }
339
+ }
340
+ }
341
+ }
342
+ },
343
+ "/auth:changePassword": {
344
+ post: {
345
+ description: "Change password",
346
+ tags: ["Basic auth"],
347
+ security: [],
348
+ requestBody: {
349
+ content: {
350
+ "application/json": {
351
+ schema: {
352
+ type: "object",
353
+ properties: {
354
+ oldPassword: {
355
+ type: "string",
356
+ description: "\u65E7\u5BC6\u7801"
357
+ },
358
+ newPassword: {
359
+ type: "string",
360
+ description: "\u65B0\u5BC6\u7801"
361
+ },
362
+ confirmPassword: {
363
+ type: "string",
364
+ description: "\u786E\u8BA4\u5BC6\u7801"
365
+ }
366
+ }
367
+ }
368
+ }
369
+ }
370
+ },
371
+ responses: {
372
+ 200: {
373
+ description: "ok",
374
+ content: {
375
+ "application/json": {
376
+ schema: {
377
+ $ref: "#/components/schemas/user"
378
+ }
379
+ }
380
+ }
381
+ },
382
+ 401: {
383
+ description: "Unauthorized",
384
+ content: {
385
+ "application/json": {
386
+ schema: {
387
+ $ref: "#/components/schemas/error"
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+ },
395
+ "authenticators:listTypes": {
396
+ get: {
397
+ description: "List authenticator types",
398
+ tags: ["Authenticator"],
399
+ responses: {
400
+ 200: {
401
+ description: "ok",
402
+ content: {
403
+ "application/json": {
404
+ schema: {
405
+ type: "array",
406
+ items: {
407
+ type: "string"
408
+ }
409
+ }
410
+ }
411
+ }
412
+ }
413
+ }
414
+ }
415
+ },
416
+ "authenticators:publicList": {
417
+ get: {
418
+ description: "List enabled authenticators",
419
+ tags: ["Authenticator"],
420
+ security: [],
421
+ responses: {
422
+ 200: {
423
+ description: "ok",
424
+ content: {
425
+ "application/json": {
426
+ schema: {
427
+ type: "array",
428
+ items: {
429
+ type: "object",
430
+ properties: {
431
+ name: {
432
+ type: "string",
433
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u8BC6"
434
+ },
435
+ title: {
436
+ type: "string",
437
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u9898"
438
+ },
439
+ authType: {
440
+ type: "string",
441
+ description: "\u767B\u5F55\u65B9\u5F0F\u7C7B\u578B"
442
+ },
443
+ options: {
444
+ type: "object",
445
+ description: "\u767B\u5F55\u65B9\u5F0F\u516C\u5F00\u914D\u7F6E"
446
+ }
447
+ }
448
+ }
449
+ }
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ },
456
+ "authenticators:create": {
457
+ post: {
458
+ description: "Create authenticator",
459
+ tags: ["Authenticator"],
460
+ requestBody: {
461
+ content: {
462
+ "application/json": {
463
+ schema: {
464
+ type: "object",
465
+ properties: {
466
+ name: {
467
+ type: "string",
468
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u8BC6"
469
+ },
470
+ authType: {
471
+ type: "string",
472
+ description: "\u767B\u5F55\u65B9\u5F0F\u7C7B\u578B"
473
+ },
474
+ options: {
475
+ type: "object",
476
+ description: "\u767B\u5F55\u65B9\u5F0F\u914D\u7F6E"
477
+ }
478
+ }
479
+ }
480
+ }
481
+ }
482
+ },
483
+ responses: {
484
+ 200: {
485
+ description: "ok",
486
+ content: {
487
+ "application/json": {
488
+ schema: {
489
+ $ref: "#/components/schemas/authenticator"
490
+ }
491
+ }
492
+ }
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "authenticators:list": {
498
+ get: {
499
+ description: "List authenticators",
500
+ tags: ["Authenticator"],
501
+ responses: {
502
+ 200: {
503
+ description: "ok",
504
+ content: {
505
+ "application/json": {
506
+ schema: {
507
+ type: "array",
508
+ items: {
509
+ $ref: "#/components/schemas/authenticator"
510
+ }
511
+ }
512
+ }
513
+ }
514
+ }
515
+ }
516
+ }
517
+ },
518
+ "authenticators:get": {
519
+ get: {
520
+ description: "Get authenticator",
521
+ tags: ["Authenticator"],
522
+ parameters: [
523
+ {
524
+ name: "filterByTk",
525
+ in: "query",
526
+ description: "ID",
527
+ required: true,
528
+ schema: {
529
+ type: "integer"
530
+ }
531
+ }
532
+ ],
533
+ responses: {
534
+ 200: {
535
+ description: "ok",
536
+ content: {
537
+ "application/json": {
538
+ schema: {
539
+ $ref: "#/components/schemas/authenticator"
540
+ }
541
+ }
542
+ }
543
+ }
544
+ }
545
+ }
546
+ },
547
+ "authenticators:update": {
548
+ post: {
549
+ description: "Update authenticator",
550
+ tags: ["Authenticator"],
551
+ parameters: [
552
+ {
553
+ name: "filterByTk",
554
+ in: "query",
555
+ description: "ID",
556
+ required: true,
557
+ schema: {
558
+ type: "integer"
559
+ }
560
+ }
561
+ ],
562
+ requestBody: {
563
+ content: {
564
+ "application/json": {
565
+ schema: {
566
+ $ref: "#/components/schemas/authenticator"
567
+ }
568
+ }
569
+ }
570
+ },
571
+ responses: {
572
+ 200: {
573
+ description: "ok",
574
+ content: {
575
+ "application/json": {
576
+ schema: {
577
+ $ref: "#/components/schemas/authenticator"
578
+ }
579
+ }
580
+ }
581
+ }
582
+ }
583
+ }
584
+ },
585
+ "authenticators:destroy": {
586
+ post: {
587
+ description: "Destroy authenticator",
588
+ tags: ["Authenticator"],
589
+ parameters: [
590
+ {
591
+ name: "filterByTk",
592
+ in: "query",
593
+ description: "ID",
594
+ required: true,
595
+ schema: {
596
+ type: "integer"
597
+ }
598
+ }
599
+ ],
600
+ responses: {
601
+ 200: {
602
+ description: "ok"
603
+ }
604
+ }
605
+ }
606
+ }
607
+ },
608
+ components: {
609
+ schemas: {
610
+ user: {
611
+ type: "object",
612
+ description: "\u7528\u6237",
613
+ properties: {
614
+ id: {
615
+ type: "integer",
616
+ description: "ID"
617
+ },
618
+ nickname: {
619
+ type: "string",
620
+ description: "\u6635\u79F0"
621
+ },
622
+ email: {
623
+ type: "string",
624
+ description: "\u90AE\u7BB1"
625
+ },
626
+ phone: {
627
+ type: "string",
628
+ description: "\u624B\u673A\u53F7"
629
+ },
630
+ appLang: {
631
+ type: "string",
632
+ description: "\u7528\u6237\u4F7F\u7528\u8BED\u8A00"
633
+ },
634
+ systemSettings: {
635
+ type: "object",
636
+ description: "\u5E94\u7528\u914D\u7F6E",
637
+ properties: {
638
+ theme: {
639
+ type: "string",
640
+ description: "\u7528\u6237\u4F7F\u7528\u4E3B\u9898"
641
+ }
642
+ }
643
+ },
644
+ createdAt: {
645
+ type: "string",
646
+ format: "date-time",
647
+ description: "\u521B\u5EFA\u65F6\u95F4"
648
+ },
649
+ updatedAt: {
650
+ type: "string",
651
+ format: "date-time",
652
+ description: "\u66F4\u65B0\u65F6\u95F4"
653
+ },
654
+ createdById: {
655
+ type: "integer",
656
+ description: "\u521B\u5EFA\u4EBA"
657
+ },
658
+ updatedById: {
659
+ type: "integer",
660
+ description: "\u66F4\u65B0\u4EBA"
661
+ }
662
+ }
663
+ },
664
+ roles: {
665
+ type: "array",
666
+ description: "\u89D2\u8272",
667
+ items: {
668
+ type: "object",
669
+ properties: {
670
+ title: {
671
+ type: "string",
672
+ description: "\u89D2\u8272\u540D\u79F0"
673
+ },
674
+ name: {
675
+ type: "string",
676
+ description: "\u89D2\u8272\u6807\u8BC6"
677
+ },
678
+ description: {
679
+ type: "string",
680
+ description: "\u89D2\u8272\u63CF\u8FF0"
681
+ },
682
+ hidden: {
683
+ type: "boolean",
684
+ description: "\u662F\u5426\u9690\u85CF"
685
+ },
686
+ default: {
687
+ type: "boolean",
688
+ description: "\u662F\u5426\u9ED8\u8BA4"
689
+ },
690
+ allowConfigure: {
691
+ type: "boolean",
692
+ description: "\u662F\u5426\u5141\u8BB8\u914D\u7F6E"
693
+ },
694
+ allowNewMenu: {
695
+ type: "boolean",
696
+ description: "\u662F\u5426\u5141\u8BB8\u65B0\u5EFA\u83DC\u5355"
697
+ },
698
+ snippets: {
699
+ type: "array",
700
+ items: {
701
+ type: "string"
702
+ },
703
+ description: "\u63A5\u53E3\u6743\u9650"
704
+ },
705
+ strategy: {
706
+ type: "array",
707
+ description: "\u6570\u636E\u8868\u6743\u9650\u7B56\u7565",
708
+ items: {
709
+ type: "object",
710
+ properties: {
711
+ actions: {
712
+ type: "array",
713
+ items: {
714
+ type: "string"
715
+ },
716
+ description: "\u64CD\u4F5C"
717
+ }
718
+ }
719
+ }
720
+ },
721
+ createdAt: {
722
+ type: "string",
723
+ format: "date-time",
724
+ description: "\u521B\u5EFA\u65F6\u95F4"
725
+ },
726
+ updatedAt: {
727
+ type: "string",
728
+ format: "date-time",
729
+ description: "\u66F4\u65B0\u65F6\u95F4"
730
+ }
731
+ }
732
+ }
733
+ },
734
+ authenticator: {
735
+ type: "object",
736
+ properties: {
737
+ id: {
738
+ type: "integer",
739
+ description: "ID"
740
+ },
741
+ authType: {
742
+ type: "string",
743
+ description: "\u767B\u5F55\u65B9\u5F0F\u7C7B\u578B"
744
+ },
745
+ name: {
746
+ type: "string",
747
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u8BC6"
748
+ },
749
+ title: {
750
+ type: "string",
751
+ description: "\u767B\u5F55\u65B9\u5F0F\u6807\u9898"
752
+ },
753
+ options: {
754
+ type: "object",
755
+ description: "\u767B\u5F55\u65B9\u5F0F\u914D\u7F6E"
756
+ },
757
+ description: {
758
+ type: "string",
759
+ description: "\u767B\u5F55\u65B9\u5F0F\u63CF\u8FF0"
760
+ },
761
+ enabled: {
762
+ type: "boolean",
763
+ description: "\u662F\u5426\u542F\u7528"
764
+ },
765
+ createdAt: {
766
+ type: "string",
767
+ format: "date-time",
768
+ description: "\u521B\u5EFA\u65F6\u95F4"
769
+ },
770
+ updatedAt: {
771
+ type: "string",
772
+ format: "date-time",
773
+ description: "\u66F4\u65B0\u65F6\u95F4"
774
+ },
775
+ createdById: {
776
+ type: "integer",
777
+ description: "\u521B\u5EFA\u4EBA"
778
+ },
779
+ updatedById: {
780
+ type: "integer",
781
+ description: "\u66F4\u65B0\u4EBA"
782
+ }
783
+ }
784
+ }
785
+ }
786
+ }
787
+ };