@oneuptime/common 10.2.1 → 10.2.2

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 (35) hide show
  1. package/Models/DatabaseModels/Index.ts +2 -0
  2. package/Models/DatabaseModels/ProjectOidc.ts +705 -0
  3. package/Server/API/ProjectOIDC.ts +73 -0
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/1778506655291-AddProjectOIDC.ts +79 -0
  5. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  6. package/Server/Services/Index.ts +2 -0
  7. package/Server/Services/OnCallDutyPolicyScheduleService.ts +139 -26
  8. package/Server/Services/ProjectOidcService.ts +10 -0
  9. package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +155 -0
  10. package/Types/Permission.ts +42 -0
  11. package/UI/Components/Calendar/Calendar.css +257 -0
  12. package/UI/Components/Calendar/Calendar.tsx +22 -11
  13. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  14. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  15. package/build/dist/Models/DatabaseModels/ProjectOidc.js +727 -0
  16. package/build/dist/Models/DatabaseModels/ProjectOidc.js.map +1 -0
  17. package/build/dist/Server/API/ProjectOIDC.js +45 -0
  18. package/build/dist/Server/API/ProjectOIDC.js.map +1 -0
  19. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778506655291-AddProjectOIDC.js +34 -0
  20. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778506655291-AddProjectOIDC.js.map +1 -0
  21. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  22. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  23. package/build/dist/Server/Services/Index.js +2 -0
  24. package/build/dist/Server/Services/Index.js.map +1 -1
  25. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +106 -17
  26. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  27. package/build/dist/Server/Services/ProjectOidcService.js +9 -0
  28. package/build/dist/Server/Services/ProjectOidcService.js.map +1 -0
  29. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +86 -0
  30. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -0
  31. package/build/dist/Types/Permission.js +40 -0
  32. package/build/dist/Types/Permission.js.map +1 -1
  33. package/build/dist/UI/Components/Calendar/Calendar.js +12 -10
  34. package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
  35. package/package.json +1 -1
@@ -0,0 +1,727 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import Project from "./Project";
11
+ import Team from "./Team";
12
+ import User from "./User";
13
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
14
+ import Route from "../../Types/API/Route";
15
+ import URL from "../../Types/API/URL";
16
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
17
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
18
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
19
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
20
+ import ColumnLength from "../../Types/Database/ColumnLength";
21
+ import ColumnType from "../../Types/Database/ColumnType";
22
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
23
+ import TableColumn from "../../Types/Database/TableColumn";
24
+ import TableColumnType from "../../Types/Database/TableColumnType";
25
+ import TableMetadata from "../../Types/Database/TableMetadata";
26
+ import TenantColumn from "../../Types/Database/TenantColumn";
27
+ import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
28
+ import IconProp from "../../Types/Icon/IconProp";
29
+ import ObjectID from "../../Types/ObjectID";
30
+ import Permission from "../../Types/Permission";
31
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
32
+ let ProjectOIDC = class ProjectOIDC extends BaseModel {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.project = undefined;
36
+ this.projectId = undefined;
37
+ this.name = undefined;
38
+ this.description = undefined;
39
+ this.discoveryURL = undefined;
40
+ this.issuerURL = undefined;
41
+ this.clientId = undefined;
42
+ this.clientSecret = undefined;
43
+ this.scopes = undefined;
44
+ this.emailClaimName = undefined;
45
+ this.nameClaimName = undefined;
46
+ this.teams = undefined; // teams that teammember should be added to when they sign into OIDC for the first time.
47
+ this.createdByUser = undefined;
48
+ this.createdByUserId = undefined;
49
+ this.deletedByUser = undefined;
50
+ this.deletedByUserId = undefined;
51
+ this.isEnabled = undefined;
52
+ this.isTested = undefined;
53
+ }
54
+ };
55
+ __decorate([
56
+ ColumnAccessControl({
57
+ create: [
58
+ Permission.ProjectOwner,
59
+ Permission.ProjectAdmin,
60
+ Permission.CreateProjectOIDC,
61
+ ],
62
+ read: [
63
+ Permission.ProjectOwner,
64
+ Permission.ProjectAdmin,
65
+ Permission.ProjectUser,
66
+ Permission.Public,
67
+ Permission.UnAuthorizedSsoUser,
68
+ Permission.ProjectMember,
69
+ Permission.Viewer,
70
+ Permission.SettingsManager,
71
+ Permission.ReadProjectOIDC,
72
+ Permission.ReadAllProjectResources,
73
+ ],
74
+ update: [],
75
+ }),
76
+ TableColumn({
77
+ manyToOneRelationColumn: "projectId",
78
+ type: TableColumnType.Entity,
79
+ modelType: Project,
80
+ title: "Project",
81
+ description: "Relation to Project Resource in which this object belongs",
82
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
83
+ }),
84
+ ManyToOne(() => {
85
+ return Project;
86
+ }, {
87
+ eager: false,
88
+ nullable: true,
89
+ onDelete: "CASCADE",
90
+ orphanedRowAction: "nullify",
91
+ }),
92
+ JoinColumn({ name: "projectId" }),
93
+ __metadata("design:type", Project)
94
+ ], ProjectOIDC.prototype, "project", void 0);
95
+ __decorate([
96
+ ColumnAccessControl({
97
+ create: [
98
+ Permission.ProjectOwner,
99
+ Permission.ProjectAdmin,
100
+ Permission.CreateProjectOIDC,
101
+ ],
102
+ read: [
103
+ Permission.ProjectOwner,
104
+ Permission.ProjectAdmin,
105
+ Permission.ProjectUser,
106
+ Permission.Public,
107
+ Permission.UnAuthorizedSsoUser,
108
+ Permission.ProjectMember,
109
+ Permission.Viewer,
110
+ Permission.SettingsManager,
111
+ Permission.ReadProjectOIDC,
112
+ Permission.ReadAllProjectResources,
113
+ ],
114
+ update: [],
115
+ }),
116
+ Index(),
117
+ TableColumn({
118
+ type: TableColumnType.ObjectID,
119
+ required: true,
120
+ canReadOnRelationQuery: true,
121
+ title: "Project ID",
122
+ description: "ID of your OneUptime Project in which this object belongs",
123
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
124
+ }),
125
+ Column({
126
+ type: ColumnType.ObjectID,
127
+ nullable: false,
128
+ transformer: ObjectID.getDatabaseTransformer(),
129
+ }),
130
+ __metadata("design:type", ObjectID)
131
+ ], ProjectOIDC.prototype, "projectId", void 0);
132
+ __decorate([
133
+ ColumnAccessControl({
134
+ create: [
135
+ Permission.ProjectOwner,
136
+ Permission.ProjectAdmin,
137
+ Permission.CreateProjectOIDC,
138
+ ],
139
+ read: [
140
+ Permission.ProjectOwner,
141
+ Permission.ProjectAdmin,
142
+ Permission.ProjectUser,
143
+ Permission.Public,
144
+ Permission.UnAuthorizedSsoUser,
145
+ Permission.ProjectMember,
146
+ Permission.Viewer,
147
+ Permission.SettingsManager,
148
+ Permission.ReadProjectOIDC,
149
+ Permission.ReadAllProjectResources,
150
+ ],
151
+ update: [
152
+ Permission.ProjectOwner,
153
+ Permission.ProjectAdmin,
154
+ Permission.EditProjectOIDC,
155
+ ],
156
+ }),
157
+ TableColumn({
158
+ required: true,
159
+ type: TableColumnType.ShortText,
160
+ canReadOnRelationQuery: true,
161
+ title: "Name",
162
+ description: "Any friendly name of this object",
163
+ example: "Okta OIDC Integration",
164
+ }),
165
+ Column({
166
+ nullable: false,
167
+ type: ColumnType.ShortText,
168
+ length: ColumnLength.ShortText,
169
+ }),
170
+ UniqueColumnBy("projectId"),
171
+ __metadata("design:type", String)
172
+ ], ProjectOIDC.prototype, "name", void 0);
173
+ __decorate([
174
+ ColumnAccessControl({
175
+ create: [
176
+ Permission.ProjectOwner,
177
+ Permission.ProjectAdmin,
178
+ Permission.CreateProjectOIDC,
179
+ ],
180
+ read: [
181
+ Permission.ProjectOwner,
182
+ Permission.ProjectAdmin,
183
+ Permission.ProjectUser,
184
+ Permission.Public,
185
+ Permission.UnAuthorizedSsoUser,
186
+ Permission.ProjectMember,
187
+ Permission.Viewer,
188
+ Permission.SettingsManager,
189
+ Permission.ReadProjectOIDC,
190
+ Permission.ReadAllProjectResources,
191
+ ],
192
+ update: [
193
+ Permission.ProjectOwner,
194
+ Permission.ProjectAdmin,
195
+ Permission.EditProjectOIDC,
196
+ ],
197
+ }),
198
+ TableColumn({
199
+ required: true,
200
+ type: TableColumnType.LongText,
201
+ canReadOnRelationQuery: true,
202
+ example: "Single Sign-On via OpenID Connect with company identity provider",
203
+ }),
204
+ Column({
205
+ nullable: false,
206
+ type: ColumnType.LongText,
207
+ }),
208
+ __metadata("design:type", String)
209
+ ], ProjectOIDC.prototype, "description", void 0);
210
+ __decorate([
211
+ ColumnAccessControl({
212
+ create: [
213
+ Permission.ProjectOwner,
214
+ Permission.ProjectAdmin,
215
+ Permission.CreateProjectOIDC,
216
+ ],
217
+ read: [
218
+ Permission.ProjectOwner,
219
+ Permission.ProjectAdmin,
220
+ Permission.ReadProjectOIDC,
221
+ Permission.ReadAllProjectResources,
222
+ ],
223
+ update: [
224
+ Permission.ProjectOwner,
225
+ Permission.ProjectAdmin,
226
+ Permission.EditProjectOIDC,
227
+ ],
228
+ }),
229
+ TableColumn({
230
+ required: true,
231
+ type: TableColumnType.LongURL,
232
+ canReadOnRelationQuery: true,
233
+ description: "OIDC discovery URL (typically ends in /.well-known/openid-configuration). Used to discover authorization, token, JWKS and userinfo endpoints.",
234
+ example: "https://accounts.google.com/.well-known/openid-configuration",
235
+ }),
236
+ Column({
237
+ nullable: false,
238
+ type: ColumnType.LongURL,
239
+ transformer: URL.getDatabaseTransformer(),
240
+ }),
241
+ __metadata("design:type", URL)
242
+ ], ProjectOIDC.prototype, "discoveryURL", void 0);
243
+ __decorate([
244
+ ColumnAccessControl({
245
+ create: [
246
+ Permission.ProjectOwner,
247
+ Permission.ProjectAdmin,
248
+ Permission.CreateProjectOIDC,
249
+ ],
250
+ read: [
251
+ Permission.ProjectOwner,
252
+ Permission.ProjectAdmin,
253
+ Permission.ReadProjectOIDC,
254
+ Permission.ReadAllProjectResources,
255
+ ],
256
+ update: [
257
+ Permission.ProjectOwner,
258
+ Permission.ProjectAdmin,
259
+ Permission.EditProjectOIDC,
260
+ ],
261
+ }),
262
+ TableColumn({
263
+ required: true,
264
+ type: TableColumnType.LongURL,
265
+ canReadOnRelationQuery: true,
266
+ description: "Expected OIDC issuer URL. Must match the 'iss' claim in the ID token returned by the identity provider.",
267
+ example: "https://accounts.google.com",
268
+ }),
269
+ Column({
270
+ nullable: false,
271
+ type: ColumnType.LongURL,
272
+ transformer: URL.getDatabaseTransformer(),
273
+ }),
274
+ __metadata("design:type", URL)
275
+ ], ProjectOIDC.prototype, "issuerURL", void 0);
276
+ __decorate([
277
+ ColumnAccessControl({
278
+ create: [
279
+ Permission.ProjectOwner,
280
+ Permission.ProjectAdmin,
281
+ Permission.CreateProjectOIDC,
282
+ ],
283
+ read: [
284
+ Permission.ProjectOwner,
285
+ Permission.ProjectAdmin,
286
+ Permission.ReadProjectOIDC,
287
+ Permission.ReadAllProjectResources,
288
+ ],
289
+ update: [
290
+ Permission.ProjectOwner,
291
+ Permission.ProjectAdmin,
292
+ Permission.EditProjectOIDC,
293
+ ],
294
+ }),
295
+ TableColumn({
296
+ required: true,
297
+ type: TableColumnType.ShortText,
298
+ canReadOnRelationQuery: true,
299
+ description: "OIDC client ID issued by the identity provider.",
300
+ example: "1234567890-abcdefgh.apps.googleusercontent.com",
301
+ }),
302
+ Column({
303
+ nullable: false,
304
+ type: ColumnType.ShortText,
305
+ length: ColumnLength.ShortText,
306
+ }),
307
+ __metadata("design:type", String)
308
+ ], ProjectOIDC.prototype, "clientId", void 0);
309
+ __decorate([
310
+ ColumnAccessControl({
311
+ create: [
312
+ Permission.ProjectOwner,
313
+ Permission.ProjectAdmin,
314
+ Permission.CreateProjectOIDC,
315
+ ],
316
+ read: [
317
+ Permission.ProjectOwner,
318
+ Permission.ProjectAdmin,
319
+ Permission.ReadProjectOIDC,
320
+ Permission.ReadAllProjectResources,
321
+ ],
322
+ update: [
323
+ Permission.ProjectOwner,
324
+ Permission.ProjectAdmin,
325
+ Permission.EditProjectOIDC,
326
+ ],
327
+ }),
328
+ TableColumn({
329
+ required: true,
330
+ type: TableColumnType.LongText,
331
+ title: "Client Secret",
332
+ description: "OIDC client secret issued by the identity provider. Stored encrypted at rest.",
333
+ encrypted: true,
334
+ }),
335
+ Column({
336
+ nullable: false,
337
+ type: ColumnType.LongText,
338
+ }),
339
+ __metadata("design:type", String)
340
+ ], ProjectOIDC.prototype, "clientSecret", void 0);
341
+ __decorate([
342
+ ColumnAccessControl({
343
+ create: [
344
+ Permission.ProjectOwner,
345
+ Permission.ProjectAdmin,
346
+ Permission.CreateProjectOIDC,
347
+ ],
348
+ read: [
349
+ Permission.ProjectOwner,
350
+ Permission.ProjectAdmin,
351
+ Permission.ReadProjectOIDC,
352
+ Permission.ReadAllProjectResources,
353
+ ],
354
+ update: [
355
+ Permission.ProjectOwner,
356
+ Permission.ProjectAdmin,
357
+ Permission.EditProjectOIDC,
358
+ ],
359
+ }),
360
+ TableColumn({
361
+ required: true,
362
+ type: TableColumnType.ShortText,
363
+ canReadOnRelationQuery: true,
364
+ description: "Space-separated list of OIDC scopes to request. Must include 'openid'.",
365
+ example: "openid email profile",
366
+ }),
367
+ Column({
368
+ nullable: false,
369
+ type: ColumnType.ShortText,
370
+ length: ColumnLength.ShortText,
371
+ }),
372
+ __metadata("design:type", String)
373
+ ], ProjectOIDC.prototype, "scopes", void 0);
374
+ __decorate([
375
+ ColumnAccessControl({
376
+ create: [
377
+ Permission.ProjectOwner,
378
+ Permission.ProjectAdmin,
379
+ Permission.CreateProjectOIDC,
380
+ ],
381
+ read: [
382
+ Permission.ProjectOwner,
383
+ Permission.ProjectAdmin,
384
+ Permission.ReadProjectOIDC,
385
+ Permission.ReadAllProjectResources,
386
+ ],
387
+ update: [
388
+ Permission.ProjectOwner,
389
+ Permission.ProjectAdmin,
390
+ Permission.EditProjectOIDC,
391
+ ],
392
+ }),
393
+ TableColumn({
394
+ required: true,
395
+ type: TableColumnType.ShortText,
396
+ canReadOnRelationQuery: true,
397
+ description: "Claim name in the ID token (or userinfo response) that contains the user's email address.",
398
+ example: "email",
399
+ }),
400
+ Column({
401
+ nullable: false,
402
+ type: ColumnType.ShortText,
403
+ length: ColumnLength.ShortText,
404
+ }),
405
+ __metadata("design:type", String)
406
+ ], ProjectOIDC.prototype, "emailClaimName", void 0);
407
+ __decorate([
408
+ ColumnAccessControl({
409
+ create: [
410
+ Permission.ProjectOwner,
411
+ Permission.ProjectAdmin,
412
+ Permission.CreateProjectOIDC,
413
+ ],
414
+ read: [
415
+ Permission.ProjectOwner,
416
+ Permission.ProjectAdmin,
417
+ Permission.ReadProjectOIDC,
418
+ Permission.ReadAllProjectResources,
419
+ ],
420
+ update: [
421
+ Permission.ProjectOwner,
422
+ Permission.ProjectAdmin,
423
+ Permission.EditProjectOIDC,
424
+ ],
425
+ }),
426
+ TableColumn({
427
+ required: true,
428
+ type: TableColumnType.ShortText,
429
+ canReadOnRelationQuery: true,
430
+ description: "Claim name in the ID token (or userinfo response) that contains the user's display name.",
431
+ example: "name",
432
+ }),
433
+ Column({
434
+ nullable: false,
435
+ type: ColumnType.ShortText,
436
+ length: ColumnLength.ShortText,
437
+ }),
438
+ __metadata("design:type", String)
439
+ ], ProjectOIDC.prototype, "nameClaimName", void 0);
440
+ __decorate([
441
+ ColumnAccessControl({
442
+ create: [
443
+ Permission.ProjectOwner,
444
+ Permission.ProjectAdmin,
445
+ Permission.CreateProjectOIDC,
446
+ ],
447
+ read: [
448
+ Permission.ProjectOwner,
449
+ Permission.ProjectAdmin,
450
+ Permission.ProjectMember,
451
+ Permission.Viewer,
452
+ Permission.SettingsManager,
453
+ Permission.ReadProjectOIDC,
454
+ Permission.ReadAllProjectResources,
455
+ ],
456
+ update: [
457
+ Permission.ProjectOwner,
458
+ Permission.ProjectAdmin,
459
+ Permission.EditProjectOIDC,
460
+ ],
461
+ }),
462
+ TableColumn({
463
+ required: false,
464
+ type: TableColumnType.EntityArray,
465
+ modelType: Team,
466
+ example: [{ id: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e" }],
467
+ }),
468
+ ManyToMany(() => {
469
+ return Team;
470
+ }, { eager: false }),
471
+ JoinTable({
472
+ name: "ProjectOidcTeam",
473
+ inverseJoinColumn: {
474
+ name: "teamId",
475
+ referencedColumnName: "_id",
476
+ },
477
+ joinColumn: {
478
+ name: "projectOidcId",
479
+ referencedColumnName: "_id",
480
+ },
481
+ }),
482
+ __metadata("design:type", Array)
483
+ ], ProjectOIDC.prototype, "teams", void 0);
484
+ __decorate([
485
+ ColumnAccessControl({
486
+ create: [
487
+ Permission.ProjectOwner,
488
+ Permission.ProjectAdmin,
489
+ Permission.CreateProjectOIDC,
490
+ ],
491
+ read: [
492
+ Permission.ProjectOwner,
493
+ Permission.ProjectAdmin,
494
+ Permission.ProjectMember,
495
+ Permission.Viewer,
496
+ Permission.SettingsManager,
497
+ Permission.ReadProjectOIDC,
498
+ Permission.ReadAllProjectResources,
499
+ ],
500
+ update: [],
501
+ }),
502
+ TableColumn({
503
+ manyToOneRelationColumn: "createdByUserId",
504
+ type: TableColumnType.Entity,
505
+ modelType: User,
506
+ title: "Created by User",
507
+ description: "Relation to User who created this object (if this object was created by a User)",
508
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
509
+ }),
510
+ ManyToOne(() => {
511
+ return User;
512
+ }, {
513
+ eager: false,
514
+ nullable: true,
515
+ onDelete: "SET NULL",
516
+ orphanedRowAction: "nullify",
517
+ }),
518
+ JoinColumn({ name: "createdByUserId" }),
519
+ __metadata("design:type", User)
520
+ ], ProjectOIDC.prototype, "createdByUser", void 0);
521
+ __decorate([
522
+ ColumnAccessControl({
523
+ create: [
524
+ Permission.ProjectOwner,
525
+ Permission.ProjectAdmin,
526
+ Permission.CreateProjectOIDC,
527
+ ],
528
+ read: [
529
+ Permission.ProjectOwner,
530
+ Permission.ProjectAdmin,
531
+ Permission.ProjectMember,
532
+ Permission.Viewer,
533
+ Permission.SettingsManager,
534
+ Permission.ReadProjectOIDC,
535
+ Permission.ReadAllProjectResources,
536
+ ],
537
+ update: [],
538
+ }),
539
+ TableColumn({
540
+ type: TableColumnType.ObjectID,
541
+ title: "Created by User ID",
542
+ description: "User ID who created this object (if this object was created by a User)",
543
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
544
+ }),
545
+ Column({
546
+ type: ColumnType.ObjectID,
547
+ nullable: true,
548
+ transformer: ObjectID.getDatabaseTransformer(),
549
+ }),
550
+ __metadata("design:type", ObjectID)
551
+ ], ProjectOIDC.prototype, "createdByUserId", void 0);
552
+ __decorate([
553
+ ColumnAccessControl({
554
+ create: [],
555
+ read: [
556
+ Permission.ProjectOwner,
557
+ Permission.ProjectAdmin,
558
+ Permission.ProjectMember,
559
+ Permission.Viewer,
560
+ Permission.SettingsManager,
561
+ Permission.ReadProjectOIDC,
562
+ Permission.ReadAllProjectResources,
563
+ ],
564
+ update: [],
565
+ }),
566
+ TableColumn({
567
+ manyToOneRelationColumn: "deletedByUserId",
568
+ type: TableColumnType.Entity,
569
+ title: "Deleted by User",
570
+ modelType: User,
571
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
572
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
573
+ }),
574
+ ManyToOne(() => {
575
+ return User;
576
+ }, {
577
+ cascade: false,
578
+ eager: false,
579
+ nullable: true,
580
+ onDelete: "SET NULL",
581
+ orphanedRowAction: "nullify",
582
+ }),
583
+ JoinColumn({ name: "deletedByUserId" }),
584
+ __metadata("design:type", User)
585
+ ], ProjectOIDC.prototype, "deletedByUser", void 0);
586
+ __decorate([
587
+ ColumnAccessControl({
588
+ create: [],
589
+ read: [
590
+ Permission.ProjectOwner,
591
+ Permission.ProjectAdmin,
592
+ Permission.ProjectMember,
593
+ Permission.Viewer,
594
+ Permission.SettingsManager,
595
+ Permission.ReadProjectOIDC,
596
+ Permission.ReadAllProjectResources,
597
+ ],
598
+ update: [],
599
+ }),
600
+ TableColumn({
601
+ type: TableColumnType.ObjectID,
602
+ title: "Deleted by User ID",
603
+ description: "User ID who deleted this object (if this object was deleted by a User)",
604
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
605
+ }),
606
+ Column({
607
+ type: ColumnType.ObjectID,
608
+ nullable: true,
609
+ transformer: ObjectID.getDatabaseTransformer(),
610
+ }),
611
+ __metadata("design:type", ObjectID)
612
+ ], ProjectOIDC.prototype, "deletedByUserId", void 0);
613
+ __decorate([
614
+ ColumnAccessControl({
615
+ create: [
616
+ Permission.ProjectOwner,
617
+ Permission.ProjectAdmin,
618
+ Permission.CreateProjectOIDC,
619
+ ],
620
+ read: [
621
+ Permission.ProjectOwner,
622
+ Permission.ProjectAdmin,
623
+ Permission.ProjectUser,
624
+ Permission.UnAuthorizedSsoUser,
625
+ Permission.ProjectMember,
626
+ Permission.Viewer,
627
+ Permission.SettingsManager,
628
+ Permission.ReadProjectOIDC,
629
+ Permission.ReadAllProjectResources,
630
+ ],
631
+ update: [
632
+ Permission.ProjectOwner,
633
+ Permission.ProjectAdmin,
634
+ Permission.EditProjectOIDC,
635
+ ],
636
+ }),
637
+ TableColumn({
638
+ isDefaultValueColumn: true,
639
+ type: TableColumnType.Boolean,
640
+ defaultValue: false,
641
+ example: true,
642
+ }),
643
+ Column({
644
+ type: ColumnType.Boolean,
645
+ default: false,
646
+ }),
647
+ __metadata("design:type", Boolean)
648
+ ], ProjectOIDC.prototype, "isEnabled", void 0);
649
+ __decorate([
650
+ ColumnAccessControl({
651
+ create: [
652
+ Permission.ProjectOwner,
653
+ Permission.ProjectAdmin,
654
+ Permission.CreateProjectOIDC,
655
+ ],
656
+ read: [
657
+ Permission.ProjectOwner,
658
+ Permission.ProjectAdmin,
659
+ Permission.ProjectMember,
660
+ Permission.Viewer,
661
+ Permission.SettingsManager,
662
+ Permission.ReadProjectOIDC,
663
+ Permission.ReadAllProjectResources,
664
+ ],
665
+ update: [],
666
+ }),
667
+ TableColumn({
668
+ isDefaultValueColumn: true,
669
+ type: TableColumnType.Boolean,
670
+ defaultValue: false,
671
+ example: true,
672
+ }),
673
+ Column({
674
+ type: ColumnType.Boolean,
675
+ default: false,
676
+ }),
677
+ __metadata("design:type", Boolean)
678
+ ], ProjectOIDC.prototype, "isTested", void 0);
679
+ ProjectOIDC = __decorate([
680
+ TableBillingAccessControl({
681
+ create: PlanType.Scale,
682
+ read: PlanType.Scale,
683
+ update: PlanType.Scale,
684
+ delete: PlanType.Scale,
685
+ }),
686
+ TenantColumn("projectId"),
687
+ TableAccessControl({
688
+ create: [
689
+ Permission.ProjectOwner,
690
+ Permission.ProjectAdmin,
691
+ Permission.CreateProjectOIDC,
692
+ ],
693
+ read: [
694
+ Permission.ProjectOwner,
695
+ Permission.ProjectUser,
696
+ Permission.UnAuthorizedSsoUser,
697
+ Permission.ProjectMember,
698
+ Permission.Viewer,
699
+ Permission.SettingsManager,
700
+ Permission.ReadProjectOIDC,
701
+ Permission.ReadAllProjectResources,
702
+ ],
703
+ delete: [
704
+ Permission.ProjectOwner,
705
+ Permission.ProjectAdmin,
706
+ Permission.DeleteProjectOIDC,
707
+ ],
708
+ update: [
709
+ Permission.ProjectOwner,
710
+ Permission.ProjectAdmin,
711
+ Permission.EditProjectOIDC,
712
+ ],
713
+ }),
714
+ CrudApiEndpoint(new Route("/project-oidc")),
715
+ TableMetadata({
716
+ tableName: "ProjectOIDC",
717
+ singularName: "OIDC",
718
+ pluralName: "OIDC",
719
+ icon: IconProp.Lock,
720
+ tableDescription: "Manage OpenID Connect (OIDC) SSO for your project",
721
+ }),
722
+ Entity({
723
+ name: "ProjectOIDC",
724
+ })
725
+ ], ProjectOIDC);
726
+ export default ProjectOIDC;
727
+ //# sourceMappingURL=ProjectOidc.js.map