@fiado/type-kit 3.147.0 → 3.148.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.
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { PermissionScope } from '../enums/PermissionScope';
|
|
2
|
+
import { ApplicationPermission } from './ApplicationPermission';
|
|
3
|
+
/**
|
|
4
|
+
* DEC-RBAC-092: al actualizar el `scope` de un permiso del catálogo de una app, el backend recalcula
|
|
5
|
+
* en cascada el scope de los roles que lo usan en todos los tenants de esa app y REPORTA (no modifica)
|
|
6
|
+
* las asignaciones que quedaron inconsistentes (Opción A). Estos tipos son el contrato de ese reporte.
|
|
7
|
+
*/
|
|
8
|
+
/** Un rol cuyo scope se recalculó (y cambió) por el cascade. */
|
|
9
|
+
export interface RoleScopeRecompute {
|
|
10
|
+
tenantId: string;
|
|
11
|
+
roleId: string;
|
|
12
|
+
previousScope: PermissionScope;
|
|
13
|
+
newScope: PermissionScope;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Asignación que quedó inconsistente: su `scope` almacenado ya no coincide con el nuevo scope del rol.
|
|
17
|
+
* NO se modifica; se reporta para que el admin reasigne (DEC-RBAC-092, Opción A).
|
|
18
|
+
*/
|
|
19
|
+
export interface InconsistentAssignment {
|
|
20
|
+
tenantId: string;
|
|
21
|
+
roleId: string;
|
|
22
|
+
assignmentId: string;
|
|
23
|
+
cognitoSub: string;
|
|
24
|
+
assignmentScope: PermissionScope;
|
|
25
|
+
assignmentScopeRef: string;
|
|
26
|
+
}
|
|
27
|
+
/** Un silo (tenant) cuyo recálculo falló (best-effort — no aborta el resto). */
|
|
28
|
+
export interface CascadeTenantFailure {
|
|
29
|
+
tenantId: string;
|
|
30
|
+
error: string;
|
|
31
|
+
}
|
|
32
|
+
/** Resumen del cascade de recálculo de scope de roles (DEC-RBAC-092). */
|
|
33
|
+
export interface CascadeReport {
|
|
34
|
+
rolesRecomputed: RoleScopeRecompute[];
|
|
35
|
+
inconsistentAssignments: InconsistentAssignment[];
|
|
36
|
+
failedTenants: CascadeTenantFailure[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Respuesta de `PUT /applications/{id}/permissions/{key}`: el permiso actualizado + (si el cambio de
|
|
40
|
+
* scope disparó el cascade) el resumen. `cascade` ausente si el update no cambió el scope.
|
|
41
|
+
*/
|
|
42
|
+
export interface UpdateApplicationPermissionResponse {
|
|
43
|
+
permission: ApplicationPermission;
|
|
44
|
+
cascade?: CascadeReport;
|
|
45
|
+
}
|
|
@@ -44,6 +44,7 @@ export * from './enums/PermissionKind';
|
|
|
44
44
|
export type { LevelDef, ApplicationSecurityPolicyDefault, ApplicationBrandingDefault, AutoregisterAllowedRole, AutoregisterConfig, ApplicationDefaults, SeedRole, Application, } from './application/Application';
|
|
45
45
|
export type { ApplicationPermission } from './application/ApplicationPermission';
|
|
46
46
|
export type { CreateApplicationRequest, UpdateApplicationRequest, UpsertApplicationPermissionRequest, } from './application/requests';
|
|
47
|
+
export type { RoleScopeRecompute, InconsistentAssignment, CascadeTenantFailure, CascadeReport, UpdateApplicationPermissionResponse, } from './application/cascade';
|
|
47
48
|
export * from './dtos/SelfRegisterStartRequest';
|
|
48
49
|
export * from './dtos/SelfRegisterVerifyOtpRequest';
|
|
49
50
|
export * from './dtos/SelfRegisterCompleteRequest';
|
package/package.json
CHANGED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { PermissionScope } from '../enums/PermissionScope';
|
|
2
|
+
import { ApplicationPermission } from './ApplicationPermission';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* DEC-RBAC-092: al actualizar el `scope` de un permiso del catálogo de una app, el backend recalcula
|
|
6
|
+
* en cascada el scope de los roles que lo usan en todos los tenants de esa app y REPORTA (no modifica)
|
|
7
|
+
* las asignaciones que quedaron inconsistentes (Opción A). Estos tipos son el contrato de ese reporte.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/** Un rol cuyo scope se recalculó (y cambió) por el cascade. */
|
|
11
|
+
export interface RoleScopeRecompute {
|
|
12
|
+
tenantId: string;
|
|
13
|
+
roleId: string;
|
|
14
|
+
previousScope: PermissionScope;
|
|
15
|
+
newScope: PermissionScope;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Asignación que quedó inconsistente: su `scope` almacenado ya no coincide con el nuevo scope del rol.
|
|
20
|
+
* NO se modifica; se reporta para que el admin reasigne (DEC-RBAC-092, Opción A).
|
|
21
|
+
*/
|
|
22
|
+
export interface InconsistentAssignment {
|
|
23
|
+
tenantId: string;
|
|
24
|
+
roleId: string;
|
|
25
|
+
assignmentId: string;
|
|
26
|
+
cognitoSub: string;
|
|
27
|
+
assignmentScope: PermissionScope;
|
|
28
|
+
assignmentScopeRef: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Un silo (tenant) cuyo recálculo falló (best-effort — no aborta el resto). */
|
|
32
|
+
export interface CascadeTenantFailure {
|
|
33
|
+
tenantId: string;
|
|
34
|
+
error: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Resumen del cascade de recálculo de scope de roles (DEC-RBAC-092). */
|
|
38
|
+
export interface CascadeReport {
|
|
39
|
+
rolesRecomputed: RoleScopeRecompute[];
|
|
40
|
+
inconsistentAssignments: InconsistentAssignment[];
|
|
41
|
+
failedTenants: CascadeTenantFailure[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Respuesta de `PUT /applications/{id}/permissions/{key}`: el permiso actualizado + (si el cambio de
|
|
46
|
+
* scope disparó el cascade) el resumen. `cascade` ausente si el update no cambió el scope.
|
|
47
|
+
*/
|
|
48
|
+
export interface UpdateApplicationPermissionResponse {
|
|
49
|
+
permission: ApplicationPermission;
|
|
50
|
+
cascade?: CascadeReport;
|
|
51
|
+
}
|
|
@@ -106,6 +106,13 @@ export type {
|
|
|
106
106
|
UpdateApplicationRequest,
|
|
107
107
|
UpsertApplicationPermissionRequest,
|
|
108
108
|
} from './application/requests';
|
|
109
|
+
export type {
|
|
110
|
+
RoleScopeRecompute,
|
|
111
|
+
InconsistentAssignment,
|
|
112
|
+
CascadeTenantFailure,
|
|
113
|
+
CascadeReport,
|
|
114
|
+
UpdateApplicationPermissionResponse,
|
|
115
|
+
} from './application/cascade';
|
|
109
116
|
|
|
110
117
|
// Autoregistro self-service por tenant (DEC-RBAC-030..034). Los Request llevan decoradores
|
|
111
118
|
// class-validator (export de valor — se hidratan con plainToInstance); los Response son interfaces
|