forlogic-core 2.4.1 → 2.4.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.
@@ -38,6 +38,19 @@ export interface CoreProvidersProps {
38
38
  * @example "performance" | "suppliers" | "occurrences" | "audit"
39
39
  */
40
40
  moduleAlias?: string;
41
+ /**
42
+ * Base URL da API do módulo. Quando informada, `useModuleAccess` busca as
43
+ * associações em
44
+ * `{moduleApiUrl}/api/{moduleAlias}/v1/Users/{userId}/associations`
45
+ * em vez de
46
+ * `{QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations`.
47
+ *
48
+ * Exige `moduleAlias` configurado (o alias entra no path). Default: não
49
+ * informado → usa a common (comportamento atual).
50
+ *
51
+ * @example moduleApiUrl={import.meta.env.VITE_MODULE_API_URL}
52
+ */
53
+ moduleApiUrl?: string;
41
54
  /**
42
55
  * Props opcionais para o ModuleAccessGuard.
43
56
  * Permite configurar módulos contratados, callbacks e URLs.
@@ -119,4 +132,4 @@ export declare function getSecurityMode(): 'legacy' | 'strict';
119
132
  * }
120
133
  * ```
121
134
  */
122
- export declare function CoreProviders({ children, queryClient, moduleAlias, moduleAccessGuardProps, appTranslations, clarityProjectId, clarityMode, backend, securityMode, }: CoreProvidersProps): import("react/jsx-runtime").JSX.Element;
135
+ export declare function CoreProviders({ children, queryClient, moduleAlias, moduleApiUrl, moduleAccessGuardProps, appTranslations, clarityProjectId, clarityMode, backend, securityMode, }: CoreProvidersProps): import("react/jsx-runtime").JSX.Element;
@@ -38,13 +38,22 @@ declare class QualiexApiService {
38
38
  fetchSoftwares(alias: string): Promise<Software[]>;
39
39
  /**
40
40
  * Busca as associações do usuário (empresas, roles, módulos com acesso).
41
- * GET /api/common/v1/Users/{userId}/associations
41
+ *
42
+ * Default: `GET {QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations`
43
+ *
44
+ * Quando `opts.baseUrl` e `opts.moduleSegment` são informados, a chamada vai
45
+ * para a API do próprio módulo:
46
+ * `GET {opts.baseUrl}/api/{opts.moduleSegment}/v1/Users/{userId}/associations`
42
47
  *
43
48
  * @param userId - ID do usuário no Qualiex (subNewId / user.id)
44
49
  * @param alias - Alias da unidade (usado no header un-alias)
50
+ * @param opts - Override opcional para apontar para a API do módulo
45
51
  * @returns Array de UserAssociation com softwares[], roleId, roleName, etc.
46
52
  */
47
- fetchUserAssociations(userId: string, alias: string): Promise<UserAssociation[]>;
53
+ fetchUserAssociations(userId: string, alias: string, opts?: {
54
+ baseUrl?: string;
55
+ moduleSegment?: string;
56
+ }): Promise<UserAssociation[]>;
48
57
  }
49
58
  /**
50
59
  * Singleton do serviço Qualiex (API common-v4) — usuários, grupos e unidades organizacionais.
@@ -29,12 +29,43 @@
29
29
  | children | ReactNode | Sim | Componentes filhos |
30
30
  | queryClient | QueryClient | Não | Instância customizada (default criado automaticamente) |
31
31
  | moduleAlias | string | Não | Alias do módulo para verificação de acesso |
32
+ | moduleApiUrl | string | Não | Base URL da API do módulo para resolver associações. Ver seção "Associações pela API do módulo". |
32
33
  | moduleAccessGuardProps | object | Não | Props para o ModuleAccessGuard |
33
34
  | appTranslations | Record<string, Record<string, string>> | Não | Traduções por idioma no namespace 'app' |
34
35
  | clarityProjectId | string | Não | Project ID do Microsoft Clarity. Sem ele, integração desativada. |
35
36
  | clarityMode | 'auto' \| 'disabled' | Não | Opt-out do tracking Clarity. Default `'auto'`. |
36
37
  | backend | 'supabase' \| 'dotnet' | Não | Backend ativo. Default `'supabase'`. Ver seção abaixo. |
37
38
 
39
+ ## Associações pela API do módulo
40
+
41
+ Por padrão, `useModuleAccess` (e o `ModuleAccessGuard`) busca as associações do usuário em:
42
+
43
+ ```
44
+ {QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations
45
+ ```
46
+
47
+ Quando o módulo expõe seu próprio endpoint de associações, informe `moduleApiUrl` no `CoreProviders`. A lib troca o segmento `common` pelo `moduleAlias` configurado:
48
+
49
+ ```
50
+ {moduleApiUrl}/api/{moduleAlias}/v1/Users/{userId}/associations
51
+ ```
52
+
53
+ ```tsx
54
+ <CoreProviders
55
+ backend="dotnet"
56
+ moduleAlias="inovacao"
57
+ moduleApiUrl={import.meta.env.VITE_MODULE_API_URL}
58
+ >
59
+ ...
60
+ </CoreProviders>
61
+ ```
62
+
63
+ Requisitos:
64
+
65
+ - `moduleAlias` é obrigatório quando `moduleApiUrl` é informado (entra no path). Sem ele, a lib cai no comportamento default e emite `console.warn`.
66
+ - A API do módulo deve responder no mesmo contrato (`UserAssociation[]`) e aceitar os headers `Authorization: Bearer <token>` e `un-alias: <alias>`.
67
+ - Demais endpoints (`/companiesusers`, `/softwares`) continuam consultando a common.
68
+
38
69
  ## Backend (Supabase opcional)
39
70
 
40
71
  A prop `backend` controla se a lib usa o stack Supabase ou apenas a API .NET do Qualiex.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forlogic-core",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",