@oktis-works/core 0.5.9 → 0.5.11

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.
@@ -1,19 +1,29 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { readdir, readFile } from 'node:fs/promises';
2
+ import { readdir } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { getConnection, runPluginMigrations, rollbackPluginMigrations } from '@oktis-works/database';
5
5
  import { satisfies, validRange } from 'semver';
6
- import { CMS_VERSION } from '@oktis-works/validation';
6
+ import { CMS_VERSION, unknownPluginPermissions } from '@oktis-works/validation';
7
+ import { readPluginManifest } from '@oktis-works/plugin-runtime';
7
8
  import { auditService } from '../observability/index.js';
8
9
  import { getEventBus } from '../events/bus.js';
9
10
  import { resolveExtensionDirectory } from '../extensions/project-directories.js';
10
11
  export class PluginService {
11
12
  /**
12
- * O filesystem é a fonte de verdade da instalação. Esta sincronização
13
- * cadastra manifests que chegaram em plugins/ via CLI, Git ou deploy e
14
- * nunca altera um plugin já ativado/desativado.
13
+ * O filesystem é a fonte da INSTALAÇÃO. Esta sincronização cadastra manifests
14
+ * que chegaram em plugins/ via CLI, Git ou deploy:
15
+ *
16
+ * - fonte única de leitura (`readPluginManifest`) — `manifest.json`
17
+ * canônico, `package.json` como fallback npm;
18
+ * - `type !== 'plugin'` (ex.: tema dentro de plugins/) é ignorado;
19
+ * - permissão fora do catálogo → row `QUARANTINED` com erro visível;
20
+ * - artefato que sumiu do disco → `MISSING` (vínculos são preservados);
21
+ * - nunca altera um plugin já ativado/desativado (ativação = vínculo).
22
+ *
23
+ * O artefato é platform: `tenant_id` fica NULL — quem tem o plugin é a linha
24
+ * em `plugin_tenants`.
15
25
  */
16
- async syncFromDirectory(tenantId) {
26
+ async syncFromDirectory(_tenantId) {
17
27
  const directory = resolveExtensionDirectory('plugin');
18
28
  let entries;
19
29
  try {
@@ -27,46 +37,85 @@ export class PluginService {
27
37
  for (const entry of entries) {
28
38
  if (!entry.isDirectory())
29
39
  continue;
30
- let manifest;
31
- try {
32
- const raw = await readFile(join(directory, entry.name, 'manifest.json'), 'utf8');
33
- manifest = JSON.parse(raw);
34
- }
35
- catch {
36
- // Um diretório sem manifest válido não é uma extensão instalável.
40
+ const pluginPath = join(directory, entry.name);
41
+ const { manifest: parsed, issues } = await readPluginManifest(pluginPath, { strict: true });
42
+ if (!parsed) {
43
+ // Diretório sem manifesto válido não é extensão instalável (ex.: tema)
44
+ if (issues.some((issue) => issue.includes('não é "plugin"'))) {
45
+ console.warn(`[plugins] ignorado em ${entry.name}: ${issues.join('; ')}`);
46
+ }
37
47
  continue;
38
48
  }
39
- const name = typeof manifest['name'] === 'string' ? manifest['name'].trim() : '';
40
- const version = typeof manifest['version'] === 'string' ? manifest['version'].trim() : '';
49
+ const name = typeof parsed.name === 'string' ? parsed.name.trim() : '';
50
+ const version = typeof parsed.version === 'string' ? parsed.version.trim() : '';
41
51
  if (!name || !version)
42
52
  continue;
43
53
  discovered.add(name);
44
54
  const existing = await this.getByName(name);
45
- const permissions = Array.isArray(manifest['permissions']) ? manifest['permissions'] : [];
55
+ const manifest = parsed;
56
+ const permissions = Array.isArray(manifest['permissions'])
57
+ ? manifest['permissions'].filter((permission) => typeof permission === 'string')
58
+ : [];
59
+ // Política de permissões: fora do catálogo → quarentena visível (não some)
60
+ const unknown = unknownPluginPermissions(permissions);
61
+ if (unknown.length > 0) {
62
+ const error = `permissões fora do catálogo: ${unknown.join(', ')}`;
63
+ if (existing) {
64
+ await sql.unsafe(`UPDATE plugins SET version = $1, manifest = $2::jsonb, permissions = $3::jsonb,
65
+ status = 'QUARANTINED', error = $4, updated_at = NOW()
66
+ WHERE id = $5`, [version, manifest, permissions, error, existing.id]);
67
+ }
68
+ else {
69
+ await sql.unsafe(`INSERT INTO plugins (id, tenant_id, name, version, status, manifest, permissions, error, installed_at)
70
+ VALUES ($1, NULL, $2, $3, 'QUARANTINED', $4::jsonb, $5::jsonb, $6, NOW())`, [randomUUID(), name, version, manifest, permissions, error]);
71
+ }
72
+ continue;
73
+ }
46
74
  if (existing) {
47
- const status = existing.status === 'UNINSTALLED' ? 'INSTALLED' : existing.status;
48
- await sql.unsafe(`UPDATE plugins SET version = $1, manifest = $2::jsonb, permissions = $3::jsonb, status = $4, updated_at = NOW()
75
+ // Reapareceu no disco? volta a ser instalável (MISSING/UNINSTALLED → INSTALLED)
76
+ const status = existing.status === 'MISSING' || existing.status === 'UNINSTALLED' ? 'INSTALLED' : existing.status;
77
+ await sql.unsafe(`UPDATE plugins SET version = $1, manifest = $2::jsonb, permissions = $3::jsonb,
78
+ status = $4, error = NULL, tenant_id = NULL, updated_at = NOW()
49
79
  WHERE id = $5`, [version, manifest, permissions, status, existing.id]);
50
80
  }
51
81
  else {
52
82
  await sql.unsafe(`INSERT INTO plugins (id, tenant_id, name, version, status, manifest, permissions, installed_at)
53
- VALUES ($1, $2, $3, $4, 'INSTALLED', $5::jsonb, $6::jsonb, NOW())`, [randomUUID(), tenantId ?? null, name, version, manifest, permissions]);
83
+ VALUES ($1, NULL, $2, $3, 'INSTALLED', $4::jsonb, $5::jsonb, NOW())`, [randomUUID(), name, version, manifest, permissions]);
84
+ }
85
+ }
86
+ // Some do disco → MISSING (state explícito; sem isso a row ficava ACTIVATED
87
+ // órfã, invisível e intocável). Vínculos por tenant são preservados.
88
+ if (entries.length > 0) {
89
+ try {
90
+ await sql.unsafe(`UPDATE plugins SET status = 'MISSING', updated_at = NOW()
91
+ WHERE status NOT IN ('UNINSTALLED', 'MISSING')
92
+ AND name <> ALL($1::text[])`, [[...discovered]]);
93
+ }
94
+ catch {
95
+ // banco indisponível não pode apagar estado por engano
54
96
  }
55
97
  }
56
98
  if (discovered.size === 0)
57
99
  return [];
58
- const rows = await this.list(tenantId);
100
+ const rows = await this.list(_tenantId);
59
101
  return rows.filter((plugin) => discovered.has(plugin.name));
60
102
  }
61
103
  /**
62
- * RULE-tenant-plugin-scope: retorna plugins platform (globais) + os do tenant informado.
63
- * Sem tenantId, retorna apenas os de escopo platform.
104
+ * Lista os artefatos com o estado de vínculo do tenant informado:
105
+ * `enabled` = plugin_tenants.status = 'ENABLED' para aquele tenant.
106
+ * Sem tenantId (visão plataforma), `enabled` vem como false.
64
107
  */
65
108
  async list(tenantId) {
66
109
  const sql = getConnection();
67
- const result = tenantId
68
- ? await sql.unsafe("SELECT * FROM plugins WHERE manifest->>'scope' = 'platform' OR manifest->>'scope' IS NULL OR tenant_id = $1 ORDER BY name ASC", [tenantId])
69
- : await sql.unsafe("SELECT * FROM plugins WHERE manifest->>'scope' = 'platform' OR manifest->>'scope' IS NULL ORDER BY name ASC");
110
+ if (tenantId) {
111
+ const result = await sql.unsafe(`SELECT p.*, (pt.status = 'ENABLED') AS enabled
112
+ FROM plugins p
113
+ LEFT JOIN plugin_tenants pt ON pt.plugin_id = p.id AND pt.tenant_id = $1
114
+ WHERE p.tenant_id IS NULL OR p.tenant_id = $1
115
+ ORDER BY name ASC`, [tenantId]);
116
+ return result;
117
+ }
118
+ const result = await sql.unsafe(`SELECT p.*, false AS enabled FROM plugins p ORDER BY name ASC`);
70
119
  return result;
71
120
  }
72
121
  async getById(id) {
@@ -79,8 +128,31 @@ export class PluginService {
79
128
  const result = await sql.unsafe('SELECT * FROM plugins WHERE name = $1', [name]);
80
129
  return result[0] ?? null;
81
130
  }
131
+ /** Vínculos de um plugin (todos os tenants — leitura exigindo contexto do dono ou platform). */
132
+ async listLinks(pluginId) {
133
+ const sql = getConnection();
134
+ const result = await sql.unsafe('SELECT * FROM plugin_tenants WHERE plugin_id = $1 ORDER BY created_at ASC', [pluginId]);
135
+ return result;
136
+ }
137
+ /** Plugins habilitados de um tenant (usado pelo bootstrap por tenant). */
138
+ async listEnabledForTenant(tenantId) {
139
+ const sql = getConnection();
140
+ const result = await sql.unsafe(`SELECT p.* FROM plugins p
141
+ JOIN plugin_tenants pt ON pt.plugin_id = p.id
142
+ WHERE pt.tenant_id = $1 AND pt.status = 'ENABLED'
143
+ ORDER BY name ASC`, [tenantId]);
144
+ return result;
145
+ }
82
146
  async install(input) {
83
147
  const sql = getConnection();
148
+ // Política de permissões: rejeita na instalação, não no boot (WP5)
149
+ const declared = input.permissions ?? (Array.isArray(input.manifest['permissions'])
150
+ ? input.manifest['permissions'].filter((value) => typeof value === 'string')
151
+ : []);
152
+ const unknown = unknownPluginPermissions(declared);
153
+ if (unknown.length > 0) {
154
+ throw new Error(`PERMISSION_NOT_ALLOWED: fora do catálogo: ${unknown.join(', ')}`);
155
+ }
84
156
  // REQ-plugin-installation-002: dependências devem estar instaladas primeiro
85
157
  const missing = [];
86
158
  for (const dep of input.dependencies ?? []) {
@@ -95,15 +167,16 @@ export class PluginService {
95
167
  }
96
168
  const id = randomUUID();
97
169
  const now = new Date().toISOString();
98
- const result = await sql.unsafe(`INSERT INTO plugins (id, name, version, status, manifest, permissions, config, created_at, updated_at)
99
- VALUES ($1, $2, $3, $4, $5::jsonb, $6, $7::jsonb, $8, $8)
170
+ // Artefato é platform (tenant_id NULL); quem tem é plugin_tenants.
171
+ const result = await sql.unsafe(`INSERT INTO plugins (id, tenant_id, name, version, status, manifest, permissions, config, installed_at, created_at, updated_at)
172
+ VALUES ($1, NULL, $2, $3, $4, $5::jsonb, $6, $7::jsonb, $8, $8, $8)
100
173
  RETURNING *`, [
101
174
  id,
102
175
  input.name,
103
176
  input.version,
104
177
  'INSTALLED',
105
178
  input.manifest,
106
- input.permissions ?? [],
179
+ declared,
107
180
  input.config ?? null,
108
181
  now,
109
182
  ]);
@@ -135,14 +208,24 @@ export class PluginService {
135
208
  });
136
209
  return result[0];
137
210
  }
138
- async activate(id) {
211
+ /**
212
+ * Ativa (vincula) o plugin a um tenant: `plugin_tenants.status = ENABLED`.
213
+ * Só SUPER_ADMIN (RBAC) chega aqui; a transação precisa estar no contexto do
214
+ * tenant alvo (RLS de plugin_tenants).
215
+ */
216
+ async activate(id, tenantId) {
139
217
  const sql = getConnection();
140
218
  const existing = await this.getById(id);
141
219
  if (!existing)
142
220
  return null;
143
- if (!['INSTALLED', 'DEACTIVATED'].includes(existing.status)) {
221
+ if (!tenantId)
222
+ throw new Error('tenantId é obrigatório para ativar um plugin');
223
+ if (['UNINSTALLED', 'MISSING'].includes(existing.status)) {
144
224
  throw new Error(`Invalid plugin transition: ${existing.status} → ACTIVATED`);
145
225
  }
226
+ if (existing.status === 'QUARANTINED') {
227
+ throw new Error(`ACTIVATION_FAILED: plugin em quarentena (${String(existing.error ?? '')})`);
228
+ }
146
229
  // REQ-plugin-activation-004: range compatibility.okcms insatisfazível bloqueia ativação
147
230
  const raw = existing.manifest;
148
231
  let manifest = {};
@@ -161,54 +244,94 @@ export class PluginService {
161
244
  if (typeof compat === 'string' && validRange(compat) && !satisfies(CMS_VERSION, compat)) {
162
245
  throw new Error(`ACTIVATION_FAILED: plugin requer OkCMS ${compat}, versão atual é ${CMS_VERSION}`);
163
246
  }
164
- const result = await sql.unsafe(`UPDATE plugins
165
- SET status = $1, activated_at = NOW(), updated_at = NOW()
166
- WHERE id = $2
167
- RETURNING *`, ['ACTIVATED', id]);
168
- await auditService.record({ action: 'plugin.activate', resourceType: 'plugin', resourceId: id });
169
- return result[0] ?? null;
247
+ // Validar dependências do plugin (versões semver)
248
+ const depsResult = await sql.unsafe(`SELECT pd.dependency_id, pd.version_range, pd.optional, p.name, p.version
249
+ FROM plugin_dependencies pd
250
+ JOIN plugins p ON p.id = pd.dependency_id
251
+ WHERE pd.plugin_id = $1`, [id]);
252
+ const dependencies = depsResult;
253
+ for (const dep of dependencies) {
254
+ // Verificar se a dependência está habilitada para este tenant
255
+ const depLink = await sql.unsafe(`SELECT status FROM plugin_tenants WHERE plugin_id = $1 AND tenant_id = $2`, [dep.dependency_id, tenantId]);
256
+ const linkRows = depLink;
257
+ const isEnabled = linkRows.length > 0 && linkRows[0].status === 'ENABLED';
258
+ if (!isEnabled) {
259
+ if (!dep.optional) {
260
+ throw new Error(`ACTIVATION_FAILED: dependência obrigatória "${dep.name}" não está ativada para este tenant`);
261
+ }
262
+ continue; // Dependência opcional não ativada - apenas avisa
263
+ }
264
+ // Validar range de versão semver
265
+ if (dep.version_range && dep.version_range !== '*') {
266
+ if (validRange(dep.version_range) && !satisfies(dep.version, dep.version_range)) {
267
+ throw new Error(`ACTIVATION_FAILED: dependência "${dep.name}" versão ${dep.version} não satisfaz range requerido ${dep.version_range}`);
268
+ }
269
+ }
270
+ }
271
+ await sql.unsafe(`INSERT INTO plugin_tenants (id, plugin_id, tenant_id, status, enabled_at, disabled_at, created_at, updated_at)
272
+ VALUES ($1, $2, $3, 'ENABLED', NOW(), NULL, NOW(), NOW())
273
+ ON CONFLICT (plugin_id, tenant_id)
274
+ DO UPDATE SET status = 'ENABLED', enabled_at = NOW(), disabled_at = NULL, updated_at = NOW()`, [randomUUID(), id, tenantId]);
275
+ const result = await this.getById(id);
276
+ // Audit por último (rastreabilidade da transição efetiva)
277
+ await auditService.record({
278
+ action: 'plugin.activate',
279
+ resourceType: 'plugin',
280
+ resourceId: id,
281
+ changes: { tenantId },
282
+ });
283
+ return result;
170
284
  }
171
- async deactivate(id) {
285
+ /**
286
+ * Desativa (desvincula) o plugin de um tenant: DISABLED + notificação dos
287
+ * dependentes habilitados naquele tenant.
288
+ */
289
+ async deactivate(id, tenantId) {
172
290
  const sql = getConnection();
173
291
  const existing = await this.getById(id);
174
292
  if (!existing)
175
293
  return null;
176
- if (existing.status !== 'ACTIVATED') {
177
- throw new Error(`Invalid plugin transition: ${existing.status} → DEACTIVATED`);
294
+ if (!tenantId)
295
+ throw new Error('tenantId é obrigatório para desativar um plugin');
296
+ const before = await sql.unsafe(`SELECT status FROM plugin_tenants WHERE plugin_id = $1 AND tenant_id = $2`, [id, tenantId]);
297
+ if (before.length === 0) {
298
+ throw new Error('Invalid plugin transition: plugin não está vinculado a este tenant');
178
299
  }
179
- const result = await sql.unsafe(`UPDATE plugins
180
- SET status = $1, updated_at = NOW()
181
- WHERE id = $2
182
- RETURNING *`, ['DEACTIVATED', id]);
183
- // REQ-plugin-activation-003: dependentes ativos são notificados via evento de domínio
300
+ await sql.unsafe(`UPDATE plugin_tenants
301
+ SET status = 'DISABLED', disabled_at = NOW(), updated_at = NOW()
302
+ WHERE plugin_id = $1 AND tenant_id = $2`, [id, tenantId]);
303
+ // REQ-plugin-activation-003: dependentes habilitados são notificados via evento
184
304
  const dependentsResult = await sql.unsafe(`SELECT p.id, p.name FROM plugins p
185
305
  JOIN plugin_dependencies pd ON pd.plugin_id = p.id
186
306
  JOIN plugins dep ON dep.id = pd.dependency_id
187
- WHERE dep.name = $1 AND p.status = 'ACTIVATED'`, [existing.name]);
307
+ JOIN plugin_tenants pt ON pt.plugin_id = p.id AND pt.tenant_id = $3
308
+ WHERE dep.name = $1 AND pt.status = 'ENABLED' AND p.id <> $2`, [existing.name, id, tenantId]);
188
309
  const dependents = dependentsResult.map((d) => d.name);
310
+ const result = await this.getById(id);
189
311
  await getEventBus().emit({
190
312
  id: randomUUID(),
191
313
  type: 'plugin.deactivated',
192
314
  aggregateType: 'plugin',
193
315
  aggregateId: id,
194
- payload: { pluginId: id, name: existing.name, dependents },
316
+ payload: { pluginId: id, name: existing.name, tenantId, dependents },
195
317
  processed: false,
196
318
  createdAt: new Date(),
197
319
  });
320
+ // Audit por último (rastreabilidade da transição efetiva)
198
321
  await auditService.record({
199
322
  action: 'plugin.deactivate',
200
323
  resourceType: 'plugin',
201
324
  resourceId: id,
202
- changes: { notifiedDependents: dependents },
325
+ changes: { tenantId, notifiedDependents: dependents },
203
326
  });
204
- return result[0] ?? null;
327
+ return result;
205
328
  }
206
329
  async uninstall(id) {
207
330
  const sql = getConnection();
208
331
  const existing = await this.getById(id);
209
332
  if (!existing)
210
333
  return false;
211
- // REQU-022-004: desinstalação remove dependências registradas e reverte migrations
334
+ // REQU-022-004: desinstalação remove dependências, vínculos e reverte migrations
212
335
  const tenantId = existing.tenant_id ?? '';
213
336
  let rolledBack = 0;
214
337
  try {
@@ -218,6 +341,7 @@ export class PluginService {
218
341
  rolledBack = 0;
219
342
  }
220
343
  await sql.unsafe('DELETE FROM plugin_dependencies WHERE plugin_id = $1', [id]);
344
+ await sql.unsafe('DELETE FROM plugin_tenants WHERE plugin_id = $1', [id]);
221
345
  await sql.unsafe(`UPDATE plugins SET status = $1, updated_at = NOW() WHERE id = $2`, ['UNINSTALLED', id]);
222
346
  await auditService.record({
223
347
  action: 'plugin.uninstall',
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/plugin/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/plugin/service.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,18 @@ export declare function establishTenantContext(tenantId: string, userId?: string
7
7
  export declare function runWithTenantContext<T>(context: TenantContext, fn: () => T): T;
8
8
  export declare function getCurrentContext(): Promise<TenantContext | null>;
9
9
  export declare function clearCurrentContext(): Promise<void>;
10
+ /**
11
+ * Acesso **síncrono** ao tenant do contexto (usado na resolução do registry de
12
+ * hooks por tenant). Usa exclusivamente o AsyncLocalStorage — o fallback de
13
+ * módulo (_fallbackContext) é processo-único e cruzaria tenants.
14
+ */
15
+ export declare function getCurrentTenantIdSync(): string | null;
16
+ /** Acesso síncrono ao userId do contexto (para getUser no PluginAPI). */
17
+ export declare function getCurrentUserIdSync(): string | null;
18
+ /**
19
+ * Acesso síncrono ao requestId do contexto (para PluginContext.requestId).
20
+ * O requestId é gerado pelo middleware de auth/request logging.
21
+ */
22
+ export declare function getCurrentRequestIdSync(): string | null;
10
23
  export declare function requireTenantContext(): TenantContext;
11
24
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tenant/context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6CD,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKtG;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiBvE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAMpD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tenant/context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6CD,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKtG;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiBvE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAMpD"}
@@ -68,6 +68,25 @@ export async function clearCurrentContext() {
68
68
  await tryClearTenantContext();
69
69
  _fallbackContext = null;
70
70
  }
71
+ /**
72
+ * Acesso **síncrono** ao tenant do contexto (usado na resolução do registry de
73
+ * hooks por tenant). Usa exclusivamente o AsyncLocalStorage — o fallback de
74
+ * módulo (_fallbackContext) é processo-único e cruzaria tenants.
75
+ */
76
+ export function getCurrentTenantIdSync() {
77
+ return contextStorage.getStore()?.tenantId ?? null;
78
+ }
79
+ /** Acesso síncrono ao userId do contexto (para getUser no PluginAPI). */
80
+ export function getCurrentUserIdSync() {
81
+ return contextStorage.getStore()?.userId ?? null;
82
+ }
83
+ /**
84
+ * Acesso síncrono ao requestId do contexto (para PluginContext.requestId).
85
+ * O requestId é gerado pelo middleware de auth/request logging.
86
+ */
87
+ export function getCurrentRequestIdSync() {
88
+ return contextStorage.getStore()?.requestId ?? null;
89
+ }
71
90
  export function requireTenantContext() {
72
91
  const context = contextStorage.getStore() ?? _fallbackContext;
73
92
  if (!context) {
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tenant/context.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAOjG,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAC9D,IAAI,gBAAgB,GAAyB,IAAI,CAAC;AAElD;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IACE,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAC/D,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC;QACH,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAgB,EAAE,MAAe;IAC5E,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEpC,gBAAgB,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACxC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAI,OAAsB,EAAE,EAAW;IACzE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAChD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,GAAG,EAAE,QAAQ,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,qBAAqB,EAAE,CAAC;IAC9B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,gBAAgB,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tenant/context.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAOjG,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAC9D,IAAI,gBAAgB,GAAyB,IAAI,CAAC;AAElD;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IACE,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAC/D,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC;QACH,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAgB,EAAE,MAAe;IAC5E,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEpC,gBAAgB,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACxC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAI,OAAsB,EAAE,EAAW;IACzE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAChD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,GAAG,EAAE,QAAQ,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,qBAAqB,EAAE,CAAC;IAC9B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC;AACrD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,oBAAoB;IAClC,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAQ,cAAc,CAAC,QAAQ,EAAU,EAAE,SAAS,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,gBAAgB,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oktis-works/core",
3
- "version": "0.5.9",
3
+ "version": "0.5.11",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -21,11 +21,11 @@
21
21
  "clean": "rm -rf dist tsconfig.tsbuildinfo"
22
22
  },
23
23
  "dependencies": {
24
- "@oktis-works/types": "^0.5.5",
25
- "@oktis-works/validation": "^0.5.5",
24
+ "@oktis-works/types": "^0.5.6",
25
+ "@oktis-works/validation": "^0.6.0",
26
26
  "@oktis-works/config": "^0.5.5",
27
27
  "@oktis-works/database": "^0.5.6",
28
- "@oktis-works/plugin-runtime": "^0.5.6",
28
+ "@oktis-works/plugin-runtime": "^0.5.8",
29
29
  "@aws-sdk/client-s3": "3.700.0",
30
30
  "bullmq": "5.0.0",
31
31
  "ioredis": "5.3.0",