@archbase/security 4.1.1 → 4.2.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.
- package/dist/archbase-security-4.2.0.tgz +0 -0
- package/dist/index.js +332 -280
- package/dist/src/ArchbaseSecurityDiagnosticsService.d.ts +32 -1
- package/dist/src/SecurityDiagnosticsDomain.d.ts +99 -0
- package/dist/src/examples/ContextualAuthenticationExample.d.ts +3 -3
- package/package.json +5 -5
- package/dist/archbase-security-4.1.1.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ArchbaseRemoteApiClient } from '@archbase/data';
|
|
2
|
-
import { ArchbaseAccessDecision, ArchbaseAccessOverview, ArchbaseEffectiveAccessReport, ArchbaseSimulationRequest } from './SecurityDiagnosticsDomain';
|
|
2
|
+
import { ArchbaseAccessDecision, ArchbaseAccessOverview, ArchbaseOverviewItemPage, ArchbaseOverviewMetric, ArchbaseGroupReport, ArchbaseReachEntry, ArchbaseTreeBranch, ArchbaseTreeNodePage, ArchbaseEffectiveAccessReport, ArchbaseSimulationRequest } from './SecurityDiagnosticsDomain';
|
|
3
3
|
/**
|
|
4
4
|
* Leitura do diagnóstico de acesso — `/api/v1/security/diagnostics/*`.
|
|
5
5
|
*
|
|
@@ -19,6 +19,37 @@ export declare class ArchbaseSecurityDiagnosticsService {
|
|
|
19
19
|
protected getEndpoint(): string;
|
|
20
20
|
/** Retrato do tenant: contagens do catálogo e o estado das proteções configuráveis. */
|
|
21
21
|
getOverview(): Promise<ArchbaseAccessOverview>;
|
|
22
|
+
/**
|
|
23
|
+
* Os itens por trás de um número do panorama.
|
|
24
|
+
*
|
|
25
|
+
* Um card diz "29 ações inativas"; sozinho, isso não permite agir. Aqui vêm quais são, com o
|
|
26
|
+
* motivo de cada uma estar na lista.
|
|
27
|
+
*/
|
|
28
|
+
getOverviewItems(metric: ArchbaseOverviewMetric, page?: number, size?: number): Promise<ArchbaseOverviewItemPage>;
|
|
29
|
+
/**
|
|
30
|
+
* Um ramo da árvore, buscado ao abrir.
|
|
31
|
+
*
|
|
32
|
+
* Não existe "carregar a árvore": um tenant real tem centenas de ações e recursos, e a carga
|
|
33
|
+
* única trava o navegador. O filtro também vai para o servidor — buscar no cliente exigiria ter
|
|
34
|
+
* carregado tudo antes.
|
|
35
|
+
*/
|
|
36
|
+
browse(branch: ArchbaseTreeBranch, options?: {
|
|
37
|
+
parentId?: string;
|
|
38
|
+
q?: string;
|
|
39
|
+
page?: number;
|
|
40
|
+
size?: number;
|
|
41
|
+
}): Promise<ArchbaseTreeNodePage>;
|
|
42
|
+
/** Quem está no grupo e o que cada pessoa acumula de todas as origens. */
|
|
43
|
+
getGroup(groupId: string): Promise<ArchbaseGroupReport>;
|
|
44
|
+
/** Idem para perfil — a via mais ampla, que vale para todo mundo que o tem. */
|
|
45
|
+
getProfile(profileId: string): Promise<ArchbaseGroupReport>;
|
|
46
|
+
/**
|
|
47
|
+
* Quem alcança uma capacidade — a consulta reversa.
|
|
48
|
+
*
|
|
49
|
+
* Inclui administrador, com a via marcada: ele alcança sem concessão nenhuma, e omiti-lo daria
|
|
50
|
+
* a resposta errada para a pergunta "quem pode".
|
|
51
|
+
*/
|
|
52
|
+
getReach(actionId: string): Promise<ArchbaseReachEntry[]>;
|
|
22
53
|
/** O que a pessoa pode, com a origem de cada concessão. */
|
|
23
54
|
getEffectiveAccessByUserId(userId: string): Promise<ArchbaseEffectiveAccessReport>;
|
|
24
55
|
/** Idem, buscando a pessoa pelo e-mail. */
|
|
@@ -120,3 +120,102 @@ export interface ArchbaseSimulationRequest {
|
|
|
120
120
|
companyId?: string;
|
|
121
121
|
projectId?: string;
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* As métricas do panorama que têm detalhe navegável.
|
|
125
|
+
*
|
|
126
|
+
* <p>Espelha o enum do backend. Um número sozinho diz que há um problema; não diz qual — é o
|
|
127
|
+
* detalhe que permite agir.
|
|
128
|
+
*/
|
|
129
|
+
export type ArchbaseOverviewMetric = 'PERMISSIONS_POINTING_TO_INACTIVE' | 'ADMINISTRATORS' | 'ACTIONS_INACTIVE' | 'API_RESOURCES_INACTIVE' | 'RESOURCES_WITHOUT_ACTION' | 'ACTIONS_WITHOUT_PERMISSION';
|
|
130
|
+
/**
|
|
131
|
+
* Um item por trás de um número do panorama.
|
|
132
|
+
*
|
|
133
|
+
* A forma é a mesma para todas as métricas — permissões, usuários, ações, recursos — de propósito:
|
|
134
|
+
* uma forma só significa uma tela só, em vez de seis listas que divergem com o tempo.
|
|
135
|
+
*/
|
|
136
|
+
export interface ArchbaseOverviewItem {
|
|
137
|
+
id: string;
|
|
138
|
+
/** O nome pelo qual a pessoa reconhece o item. */
|
|
139
|
+
label: string;
|
|
140
|
+
/** Onde ele vive: o recurso da ação, o e-mail do usuário, o destinatário da concessão. */
|
|
141
|
+
detail: string;
|
|
142
|
+
/** Por que está nesta lista. É o que transforma número em explicação. */
|
|
143
|
+
reason: string;
|
|
144
|
+
}
|
|
145
|
+
/** Página do detalhe. Reflete a Page do Spring, só com o que a tela usa. */
|
|
146
|
+
export interface ArchbaseOverviewItemPage {
|
|
147
|
+
content: ArchbaseOverviewItem[];
|
|
148
|
+
totalElements: number;
|
|
149
|
+
totalPages: number;
|
|
150
|
+
number: number;
|
|
151
|
+
size: number;
|
|
152
|
+
}
|
|
153
|
+
/** Os ramos que a árvore sabe abrir. Espelha o enum do backend. */
|
|
154
|
+
export type ArchbaseTreeBranch = 'USERS' | 'GROUPS' | 'PROFILES' | 'RESOURCES' | 'ACTIONS_OF_RESOURCE';
|
|
155
|
+
/** A classe de objeto de um nó — decide o ícone e o painel que abre. */
|
|
156
|
+
export type ArchbaseTreeNodeKind = 'USER' | 'GROUP' | 'PROFILE' | 'RESOURCE' | 'ACTION';
|
|
157
|
+
/**
|
|
158
|
+
* Um nó da árvore.
|
|
159
|
+
*
|
|
160
|
+
* Forma uniforme para as cinco classes de objeto, de propósito: uma forma só significa um
|
|
161
|
+
* componente de árvore só, em vez de cinco listas que divergem com o tempo.
|
|
162
|
+
*/
|
|
163
|
+
export interface ArchbaseTreeNode {
|
|
164
|
+
id: string;
|
|
165
|
+
kind: ArchbaseTreeNodeKind;
|
|
166
|
+
label: string;
|
|
167
|
+
/** O número à direita — membros do grupo, ações do recurso. Ausente quando não ajuda. */
|
|
168
|
+
badge?: string | null;
|
|
169
|
+
/** Se pode ser aberto. Vem do servidor: só ele sabe, e sem isso a árvore põe seta em folha. */
|
|
170
|
+
hasChildren: boolean;
|
|
171
|
+
/** `warning` ou `critical` — o marcador que leva o olho até o problema sem abrir ramo a ramo. */
|
|
172
|
+
severity?: string | null;
|
|
173
|
+
}
|
|
174
|
+
export interface ArchbaseTreeNodePage {
|
|
175
|
+
content: ArchbaseTreeNode[];
|
|
176
|
+
totalElements: number;
|
|
177
|
+
totalPages: number;
|
|
178
|
+
number: number;
|
|
179
|
+
size: number;
|
|
180
|
+
}
|
|
181
|
+
/** Uma capacidade concedida por um grupo ou perfil. */
|
|
182
|
+
export interface ArchbaseGrantLine {
|
|
183
|
+
resource: string;
|
|
184
|
+
action: string;
|
|
185
|
+
situation: string;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Um membro, com o que ele acumula de TODAS as origens.
|
|
189
|
+
*
|
|
190
|
+
* O total não é o do grupo: a pessoa soma o perfil, os outros grupos e as concessões diretas.
|
|
191
|
+
*/
|
|
192
|
+
export interface ArchbaseGroupMember {
|
|
193
|
+
userId: string;
|
|
194
|
+
name: string;
|
|
195
|
+
email: string;
|
|
196
|
+
profileName?: string | null;
|
|
197
|
+
administrator: boolean;
|
|
198
|
+
enabled: boolean;
|
|
199
|
+
total: number;
|
|
200
|
+
effective: number;
|
|
201
|
+
inert: number;
|
|
202
|
+
denied: number;
|
|
203
|
+
}
|
|
204
|
+
/** Relatório de um grupo ou perfil — a mesma forma para os dois, de propósito. */
|
|
205
|
+
export interface ArchbaseGroupReport {
|
|
206
|
+
groupId: string;
|
|
207
|
+
groupName: string;
|
|
208
|
+
description?: string | null;
|
|
209
|
+
grants: ArchbaseGrantLine[];
|
|
210
|
+
members: ArchbaseGroupMember[];
|
|
211
|
+
}
|
|
212
|
+
/** Quem alcança uma capacidade, e por qual via. A consulta reversa. */
|
|
213
|
+
export interface ArchbaseReachEntry {
|
|
214
|
+
userId: string;
|
|
215
|
+
userName: string;
|
|
216
|
+
email: string;
|
|
217
|
+
/** O nome do grupo, do perfil, "concessão direta" ou "administrador". */
|
|
218
|
+
via: string;
|
|
219
|
+
kind: string;
|
|
220
|
+
situation: string;
|
|
221
|
+
}
|
|
@@ -37,7 +37,7 @@ export declare class ExampleContextualAuthenticator implements ArchbaseAuthentic
|
|
|
37
37
|
nickname: any;
|
|
38
38
|
};
|
|
39
39
|
context: {
|
|
40
|
-
type:
|
|
40
|
+
type: any;
|
|
41
41
|
adminId: string;
|
|
42
42
|
name: string;
|
|
43
43
|
email: string;
|
|
@@ -77,7 +77,7 @@ export declare class ExampleContextualAuthenticator implements ArchbaseAuthentic
|
|
|
77
77
|
nickname: any;
|
|
78
78
|
};
|
|
79
79
|
context: {
|
|
80
|
-
type:
|
|
80
|
+
type: any;
|
|
81
81
|
adminId: string;
|
|
82
82
|
name: string;
|
|
83
83
|
email: string;
|
|
@@ -89,7 +89,7 @@ export declare class ExampleContextualAuthenticator implements ArchbaseAuthentic
|
|
|
89
89
|
}>;
|
|
90
90
|
loginSocial(request: SocialLoginRequest): Promise<ContextualAuthenticationResponse>;
|
|
91
91
|
register(request: RegisterUserRequest): Promise<{
|
|
92
|
-
email:
|
|
92
|
+
email: any;
|
|
93
93
|
businessId: string;
|
|
94
94
|
message: string;
|
|
95
95
|
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@archbase/security",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Security and authentication components for Archbase React",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"reflect-metadata": "^0.1.13",
|
|
38
38
|
"rxjs": "^7.8.2",
|
|
39
39
|
"uuid": "^9.0.1",
|
|
40
|
-
"@archbase/components": "4.
|
|
41
|
-
"@archbase/core": "4.
|
|
42
|
-
"@archbase/
|
|
43
|
-
"@archbase/
|
|
40
|
+
"@archbase/components": "4.2.0",
|
|
41
|
+
"@archbase/core": "4.2.0",
|
|
42
|
+
"@archbase/data": "4.2.0",
|
|
43
|
+
"@archbase/layout": "4.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/crypto-js": "^4.1.1",
|
|
Binary file
|