forlogic-core 2.4.1 → 2.4.3

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 completa (até antes de `/Users/{userId}/associations`) usada para
43
+ * buscar as associações do usuário. Quando informada, a lib chama
44
+ * `{associationsBaseUrl}/Users/{userId}/associations`
45
+ * em vez do default
46
+ * `{QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations`.
47
+ *
48
+ * Independente de `moduleAlias` — pode ser usada sem ativar o gating de módulo.
49
+ *
50
+ * @example associationsBaseUrl={import.meta.env.VITE_ASSOCIATIONS_API_URL}
51
+ * // ex: "https://api.qualiex.com/api/inovacao/v1"
52
+ */
53
+ associationsBaseUrl?: 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, associationsBaseUrl, moduleAccessGuardProps, appTranslations, clarityProjectId, clarityMode, backend, securityMode, }: CoreProvidersProps): import("react/jsx-runtime").JSX.Element;
@@ -38,13 +38,23 @@ 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` é informado, a chamada vai para:
45
+ * `GET {opts.baseUrl}/Users/{userId}/associations`
46
+ *
47
+ * (o `baseUrl` deve incluir todo o prefixo, ex.:
48
+ * `https://api.qualiex.com/api/inovacao/v1`)
42
49
  *
43
50
  * @param userId - ID do usuário no Qualiex (subNewId / user.id)
44
51
  * @param alias - Alias da unidade (usado no header un-alias)
52
+ * @param opts - Override opcional para apontar para outra base URL
45
53
  * @returns Array de UserAssociation com softwares[], roleId, roleName, etc.
46
54
  */
47
- fetchUserAssociations(userId: string, alias: string): Promise<UserAssociation[]>;
55
+ fetchUserAssociations(userId: string, alias: string, opts?: {
56
+ baseUrl?: string;
57
+ }): Promise<UserAssociation[]>;
48
58
  }
49
59
  /**
50
60
  * Singleton do serviço Qualiex (API common-v4) — usuários, grupos e unidades organizacionais.
@@ -29,12 +29,47 @@
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 | (DEPRECATED — substituído por `associationsBaseUrl`) |
33
+ | associationsBaseUrl | string | Não | Base URL completa para `/Users/{userId}/associations`. Ver seção abaixo. |
32
34
  | moduleAccessGuardProps | object | Não | Props para o ModuleAccessGuard |
33
35
  | appTranslations | Record<string, Record<string, string>> | Não | Traduções por idioma no namespace 'app' |
34
36
  | clarityProjectId | string | Não | Project ID do Microsoft Clarity. Sem ele, integração desativada. |
35
37
  | clarityMode | 'auto' \| 'disabled' | Não | Opt-out do tracking Clarity. Default `'auto'`. |
36
38
  | backend | 'supabase' \| 'dotnet' | Não | Backend ativo. Default `'supabase'`. Ver seção abaixo. |
37
39
 
40
+ ## Associações em outra base URL
41
+
42
+ Por padrão, `useModuleAccess` (e o `ModuleAccessGuard`) busca as associações em:
43
+
44
+ ```
45
+ {QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations
46
+ ```
47
+
48
+ Quando o módulo expõe seu próprio endpoint de associações, informe `associationsBaseUrl` no `CoreProviders`. A lib passa a chamar:
49
+
50
+ ```
51
+ {associationsBaseUrl}/Users/{userId}/associations
52
+ ```
53
+
54
+ `associationsBaseUrl` deve incluir todo o prefixo (host + `/api/{modulo}/v1`):
55
+
56
+ ```tsx
57
+ <CoreProviders
58
+ backend="dotnet"
59
+ associationsBaseUrl={import.meta.env.VITE_ASSOCIATIONS_API_URL}
60
+ // ex: "https://api.qualiex.com/api/inovacao/v1"
61
+ >
62
+ ...
63
+ </CoreProviders>
64
+ ```
65
+
66
+ Características:
67
+
68
+ - **Uma única variável** — não exige `moduleAlias`. Pode ser usada sem ativar o `ModuleAccessGuard` (útil enquanto o software do módulo ainda não foi cadastrado no `SOFTWARES_MAP` da lib).
69
+ - A API alvo deve responder no mesmo contrato (`UserAssociation[]`) e aceitar os headers `Authorization: Bearer <token>` e `un-alias: <alias>`.
70
+ - Demais endpoints (`/companiesusers`, `/softwares`) continuam consultando a common.
71
+
72
+
38
73
  ## Backend (Supabase opcional)
39
74
 
40
75
  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.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",