diff --git a/package.json b/package.json index b06c028..f156dde 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "LICENSE" ], "peerDependencies": { - "@govoplan/core-webui": "^0.1.8", + "@govoplan/core-webui": "^0.1.9", "lucide-react": "^1.23.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/webui/package.json b/webui/package.json index 7ad5546..d971a9c 100644 --- a/webui/package.json +++ b/webui/package.json @@ -13,7 +13,7 @@ } }, "peerDependencies": { - "@govoplan/core-webui": "^0.1.8", + "@govoplan/core-webui": "^0.1.9", "lucide-react": "^1.23.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/webui/src/api/admin.ts b/webui/src/api/admin.ts index a89cf3c..72254a6 100644 --- a/webui/src/api/admin.ts +++ b/webui/src/api/admin.ts @@ -1,5 +1,13 @@ -import type { ApiSettings, DeltaDeletedItem, PrivacyRetentionPolicy, TenantAdminItem } from "@govoplan/core-webui"; -import { apiFetch, apiGetList, apiPath, apiQuery } from "@govoplan/core-webui"; +import type { + AccessDecisionProvenanceItem as CoreAccessDecisionProvenanceItem, + ApiSettings, + DeltaDeletedItem, + PrivacyRetentionPolicy, + ResourceAccessExplanationOptions, + ResourceAccessExplanationResponse as CoreResourceAccessExplanationResponse, + TenantAdminItem +} from "@govoplan/core-webui"; +import { apiFetch, apiGetList, apiPath, apiQuery, fetchResourceAccessExplanation as fetchCoreResourceAccessExplanation } from "@govoplan/core-webui"; export { fetchAdminOverview, fetchPermissionCatalog, fetchTenants } from "@govoplan/core-webui"; export type { AdminOverview, @@ -101,12 +109,7 @@ export type AccessScopeExplanationItem = { sources: AccessRoleSourceItem[]; }; -export type AccessDecisionProvenanceItem = { - kind: string; - id?: string | null; - label?: string | null; - tenant_id?: string | null; - source?: string | null; +export type AccessDecisionProvenanceItem = Omit & { details: Record; }; @@ -136,13 +139,7 @@ export type UserAccessExplanationResponse = { function_facts: FunctionFactExplanationItem[]; }; -export type ResourceAccessExplanationResponse = { - user: UserAdminItem; - resource_type: string; - resource_id: string; - action: string; - provenance: AccessDecisionProvenanceItem[]; -}; +export type ResourceAccessExplanationResponse = CoreResourceAccessExplanationResponse; export type SystemAccountItem = { account_id: string; @@ -356,15 +353,9 @@ export function fetchUserAccessExplanation(settings: ApiSettings, userId: string export function fetchResourceAccessExplanation( settings: ApiSettings, - options: { userId: string; resourceType: string; resourceId: string; action: string; tenantId?: string | null } + options: ResourceAccessExplanationOptions ): Promise { - return apiFetch(settings, apiPath("/api/v1/admin/access/resource-explanation", { - user_id: options.userId, - resource_type: options.resourceType, - resource_id: options.resourceId, - action: options.action, - tenant_id: options.tenantId - })); + return fetchCoreResourceAccessExplanation(settings, options); } export async function fetchGroups(settings: ApiSettings): Promise { diff --git a/webui/src/index.ts b/webui/src/index.ts index a84e8da..035e32d 100644 --- a/webui/src/index.ts +++ b/webui/src/index.ts @@ -2,4 +2,6 @@ export { default } from "./module"; export * from "./module"; export * from "./api/admin"; export { default as AdminPage } from "./features/admin/AdminPage"; +export { ResourceAccessExplanation } from "@govoplan/core-webui"; +export type { ResourceAccessExplanationOptions, ResourceAccessExplanationProps, ResourceAccessExplanationUser } from "@govoplan/core-webui"; export type { PlatformWebModule, PlatformNavItem, PlatformRouteContribution, PlatformRouteContext } from "@govoplan/core-webui";