@oktis-works/core 0.6.1 → 0.8.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/cache/tags.d.ts +12 -0
- package/dist/cache/tags.d.ts.map +1 -0
- package/dist/cache/tags.js +55 -0
- package/dist/cache/tags.js.map +1 -0
- package/dist/comments/service.d.ts +54 -0
- package/dist/comments/service.d.ts.map +1 -0
- package/dist/comments/service.js +166 -0
- package/dist/comments/service.js.map +1 -0
- package/dist/content/service.d.ts.map +1 -1
- package/dist/content/service.js +24 -14
- package/dist/content/service.js.map +1 -1
- package/dist/fields/location-rules.d.ts +3 -1
- package/dist/fields/location-rules.d.ts.map +1 -1
- package/dist/fields/location-rules.js +1 -0
- package/dist/fields/location-rules.js.map +1 -1
- package/dist/fields/service.d.ts +5 -1
- package/dist/fields/service.d.ts.map +1 -1
- package/dist/fields/service.js +10 -3
- package/dist/fields/service.js.map +1 -1
- package/dist/fields/types/registry.d.ts +2 -0
- package/dist/fields/types/registry.d.ts.map +1 -1
- package/dist/fields/types/registry.js.map +1 -1
- package/dist/hooks/points.d.ts +6 -0
- package/dist/hooks/points.d.ts.map +1 -1
- package/dist/hooks/points.js +7 -0
- package/dist/hooks/points.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/mail/service.d.ts +26 -0
- package/dist/mail/service.d.ts.map +1 -0
- package/dist/mail/service.js +117 -0
- package/dist/mail/service.js.map +1 -0
- package/dist/plugin/load.d.ts +78 -10
- package/dist/plugin/load.d.ts.map +1 -1
- package/dist/plugin/load.js +277 -58
- package/dist/plugin/load.js.map +1 -1
- package/dist/queue/producer.d.ts +12 -1
- package/dist/queue/producer.d.ts.map +1 -1
- package/dist/queue/producer.js +92 -0
- package/dist/queue/producer.js.map +1 -1
- package/dist/role/plugin-roles.d.ts +39 -0
- package/dist/role/plugin-roles.d.ts.map +1 -0
- package/dist/role/plugin-roles.js +161 -0
- package/dist/role/plugin-roles.js.map +1 -0
- package/dist/theme/service.d.ts +5 -0
- package/dist/theme/service.d.ts.map +1 -1
- package/dist/theme/service.js +10 -0
- package/dist/theme/service.js.map +1 -1
- package/dist/webhooks/service.d.ts +33 -0
- package/dist/webhooks/service.d.ts.map +1 -0
- package/dist/webhooks/service.js +57 -0
- package/dist/webhooks/service.js.map +1 -0
- package/package.json +6 -6
package/dist/plugin/load.js
CHANGED
|
@@ -1,35 +1,20 @@
|
|
|
1
|
-
// @oktis-works/core -
|
|
1
|
+
// @oktis-works/core - Enabled plugins runtime sync
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
3
|
+
// PLUGIN.md promises that `register(registry)` is called when the plugin is
|
|
4
|
+
// loaded — the core honors it for every process (API, web, worker, dev). Two
|
|
5
|
+
// scopes:
|
|
6
6
|
//
|
|
7
|
-
// - **platform** (`syncEnabledPlugins`): plugins `tenant_id IS NULL`,
|
|
8
|
-
//
|
|
9
|
-
// - **tenant** (`ensureTenantPluginsLoaded`): plugins
|
|
10
|
-
// `plugin_tenants` (status
|
|
11
|
-
//
|
|
7
|
+
// - **platform** (`syncEnabledPlugins`): plugins with `tenant_id IS NULL`,
|
|
8
|
+
// enabled globally → platform registry, loaded at boot;
|
|
9
|
+
// - **tenant** (`ensureTenantPluginsLoaded`): plugins linked in
|
|
10
|
+
// `plugin_tenants` (ENABLED status) → tenant registry, loaded on demand
|
|
11
|
+
// at that tenant's first request (TTL + LRU cache).
|
|
12
12
|
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
// boot.
|
|
16
|
-
// `/api/v1/plugins/runtime` + badge
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
// O PLUGIN.md promete que `register(registry)` é chamado quando o plugin é
|
|
20
|
-
// carregado — aqui o core cumpre isso para todos os processos (API, web,
|
|
21
|
-
// worker, dev). Dois escopos:
|
|
22
|
-
//
|
|
23
|
-
// - **platform** (`syncEnabledPlugins`): plugins `tenant_id IS NULL`,
|
|
24
|
-
// habilitados globalmente → registry platform, carregado no boot;
|
|
25
|
-
// - **tenant** (`ensureTenantPluginsLoaded`): plugins vinculados em
|
|
26
|
-
// `plugin_tenants` (status ENABLED) → registry do tenant, carregado sob
|
|
27
|
-
// demanda na primeira requisição daquele tenant (cache com TTL + LRU).
|
|
28
|
-
//
|
|
29
|
-
// Nunca lança: falha de banco, diretório ausente ou plugin quebrado são
|
|
30
|
-
// reportadas no resultado (e persistidas em `plugins.error`), sem derrubar o
|
|
31
|
-
// boot. Falhas ficam visíveis em `getPluginsRuntimeState()` (rota
|
|
32
|
-
// `/api/v1/plugins/runtime` + badge no admin) — não são silenciadas.
|
|
13
|
+
// Never throws: database failure, missing directory or a broken plugin are
|
|
14
|
+
// reported in the result (and persisted in `plugins.error`) without breaking
|
|
15
|
+
// the boot. Failures are visible in `getPluginsRuntimeState()` (the
|
|
16
|
+
// `/api/v1/plugins/runtime` route + admin badge) — never silenced.
|
|
17
|
+
import { createHash } from 'node:crypto';
|
|
33
18
|
import { getConnection } from '@oktis-works/database';
|
|
34
19
|
import { loadConfig } from '@oktis-works/config';
|
|
35
20
|
import { resolvePluginPermissionPolicy } from '@oktis-works/validation';
|
|
@@ -39,9 +24,16 @@ import { getEventBus } from '../events/bus.js';
|
|
|
39
24
|
import { tenantService } from '../tenant/service.js';
|
|
40
25
|
import { userService } from '../user/service.js';
|
|
41
26
|
import { fieldGroupService } from '../fields/service.js';
|
|
27
|
+
import { postTypeRegistry } from '../content/post-types.js';
|
|
28
|
+
import { taxonomyService } from '../taxonomies/service.js';
|
|
29
|
+
import { pluginRolesService } from '../role/plugin-roles.js';
|
|
30
|
+
import { mailService } from '../mail/service.js';
|
|
31
|
+
import { auditService } from '../observability/audit.js';
|
|
32
|
+
import { getCache } from '../cache/index.js';
|
|
33
|
+
import { queueProducer } from '../queue/producer.js';
|
|
42
34
|
import { getCurrentTenantIdSync, getCurrentUserIdSync, getCurrentRequestIdSync } from '../tenant/context.js';
|
|
43
|
-
// Dynamic imports for circular dependency with plugin-runtime
|
|
44
|
-
//
|
|
35
|
+
// Dynamic imports for the circular dependency with plugin-runtime
|
|
36
|
+
// (non-literal require so TypeScript cannot resolve it at build time)
|
|
45
37
|
const getPluginRuntime = async () => {
|
|
46
38
|
return require('@oktis-works/plugin-runtime');
|
|
47
39
|
};
|
|
@@ -56,22 +48,119 @@ const getBootstrapPlugins = async () => (await getPluginRuntimeCached()).bootstr
|
|
|
56
48
|
const getHookRegistryStore = async () => (await getPluginRuntimeCached()).getHookRegistryStore;
|
|
57
49
|
const unloadTenant = async () => (await getPluginRuntimeCached()).unloadTenant;
|
|
58
50
|
const getLoadedPluginRoutes = async () => (await getPluginRuntimeCached()).getLoadedPluginRoutes;
|
|
51
|
+
const getLoadedPluginJobHandlers = async () => (await getPluginRuntimeCached()).getLoadedPluginJobHandlers;
|
|
52
|
+
const getLoadedPluginAdminExtensions = async () => (await getPluginRuntimeCached()).getLoadedPluginAdminExtensions;
|
|
53
|
+
const getLoadedPluginBlocks = async () => (await getPluginRuntimeCached()).getLoadedPluginBlocks;
|
|
54
|
+
const getLoadedPluginPatterns = async () => (await getPluginRuntimeCached()).getLoadedPluginPatterns;
|
|
55
|
+
const getLoadedPluginAssets = async () => (await getPluginRuntimeCached()).getLoadedPluginAssets;
|
|
56
|
+
const getLoadedPluginHealthChecks = async () => (await getPluginRuntimeCached()).getLoadedPluginHealthChecks;
|
|
57
|
+
/** Deterministic plugin job id (schedules are idempotent by it). */
|
|
58
|
+
function pluginJobId(tenantId, pluginName, jobName) {
|
|
59
|
+
return `plugin:${tenantId ?? 'platform'}:${pluginName}:${jobName}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolves the handler registered by a plugin for a job (via api.jobs.on).
|
|
63
|
+
* Scope: platform (`tenantId` null) or tenant (loaded on demand).
|
|
64
|
+
* Never throws — null when the plugin is disabled or the handler is absent.
|
|
65
|
+
*/
|
|
66
|
+
export async function getPluginJobHandler(tenantId, pluginName, jobName) {
|
|
67
|
+
try {
|
|
68
|
+
const entries = await (await getLoadedPluginJobHandlers())(scopeKey(tenantId));
|
|
69
|
+
for (const entry of entries) {
|
|
70
|
+
if (entry.pluginName === pluginName) {
|
|
71
|
+
return entry.handlers.get(jobName) ?? null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* `api.admin` slots loaded in a scope (platform `null` or `tenant:<id>`) —
|
|
82
|
+
* feeds GET /api/v1/plugins/extensions together with `manifest.admin`.
|
|
83
|
+
* Never throws: runtime unavailability becomes an empty list.
|
|
84
|
+
*/
|
|
85
|
+
export async function getPluginAdminExtensions(tenantId) {
|
|
86
|
+
try {
|
|
87
|
+
return await (await getLoadedPluginAdminExtensions())(scopeKey(tenantId));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Blocks registered at runtime by the loaded plugins of a scope — feeds
|
|
95
|
+
* GET /api/v1/blocks together with `manifest.blocks`. Never throws: runtime
|
|
96
|
+
* unavailability becomes an empty list.
|
|
97
|
+
*/
|
|
98
|
+
export async function getPluginBlocks(tenantId) {
|
|
99
|
+
try {
|
|
100
|
+
return await (await getLoadedPluginBlocks())(scopeKey(tenantId));
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Patterns registered at runtime by the loaded plugins of a scope — feeds
|
|
108
|
+
* GET /api/v1/patterns together with `manifest.patterns`. Never throws:
|
|
109
|
+
* runtime unavailability becomes an empty list.
|
|
110
|
+
*/
|
|
111
|
+
export async function getPluginPatterns(tenantId) {
|
|
112
|
+
try {
|
|
113
|
+
return await (await getLoadedPluginPatterns())(scopeKey(tenantId));
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Assets enqueued by the loaded plugins of a scope — feeds the public
|
|
121
|
+
* renderer's theme:head pipeline (Item 8). Never throws: runtime
|
|
122
|
+
* unavailability becomes an empty list.
|
|
123
|
+
*/
|
|
124
|
+
export async function getPluginAssets(tenantId) {
|
|
125
|
+
try {
|
|
126
|
+
return await (await getLoadedPluginAssets())(scopeKey(tenantId));
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Health checks registered by the loaded plugins of a scope — aggregated by
|
|
134
|
+
* GET /api/v1/health (Item 14). Never throws: runtime unavailability becomes
|
|
135
|
+
* an empty list.
|
|
136
|
+
*/
|
|
137
|
+
export async function getPluginHealthChecks(tenantId) {
|
|
138
|
+
try {
|
|
139
|
+
return await (await getLoadedPluginHealthChecks())(scopeKey(tenantId));
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
59
145
|
const pluginRoutesRegistry = new Map();
|
|
60
146
|
/** Registra rotas de um plugin (chamado durante bootstrap). */
|
|
61
|
-
export function registerPluginRoutes(pluginName, routes) {
|
|
147
|
+
export function registerPluginRoutes(pluginName, routes, rpm) {
|
|
62
148
|
if (routes.length === 0)
|
|
63
149
|
return;
|
|
64
|
-
pluginRoutesRegistry.set(pluginName, { pluginName, routes });
|
|
150
|
+
pluginRoutesRegistry.set(pluginName, { pluginName, routes, ...(rpm ? { rpm } : {}) });
|
|
65
151
|
}
|
|
66
152
|
/** Remove rotas de um plugin (quando desativado/desinstalado). */
|
|
67
153
|
export function unregisterPluginRoutes(pluginName) {
|
|
68
154
|
return pluginRoutesRegistry.delete(pluginName);
|
|
69
155
|
}
|
|
70
|
-
/**
|
|
156
|
+
/** Gets every route registered for mounting on the API router. */
|
|
71
157
|
export function getRegisteredPluginRoutes() {
|
|
72
158
|
return [...pluginRoutesRegistry.values()];
|
|
73
159
|
}
|
|
74
|
-
/**
|
|
160
|
+
/** Item 21: registro das consultas preparadas por hash (teto LRU). */
|
|
161
|
+
const PREPARED_CACHE_MAX = 200;
|
|
162
|
+
const preparedPluginStatements = new Map();
|
|
163
|
+
/** Per-scope states — iteration order = LRU. */
|
|
75
164
|
const states = new Map();
|
|
76
165
|
const inflight = new Map();
|
|
77
166
|
const PLATFORM_KEY = 'platform';
|
|
@@ -94,9 +183,31 @@ function createApiDeps(tenantId) {
|
|
|
94
183
|
db: {
|
|
95
184
|
query: async (sql, params) => {
|
|
96
185
|
const conn = getConnection();
|
|
186
|
+
// Item 21: registro de prepared statements por hash — dedupe + LRU +
|
|
187
|
+
// contagem de uso por consulta (identidade da consulta preparada em
|
|
188
|
+
// api.query; o driver reutiliza o plano para consultas repetidas).
|
|
189
|
+
const hash = createHash('sha256').update(sql).digest('hex').slice(0, 24);
|
|
190
|
+
let entry = preparedPluginStatements.get(hash);
|
|
191
|
+
if (!entry) {
|
|
192
|
+
entry = { sql, uses: 0 };
|
|
193
|
+
preparedPluginStatements.set(hash, entry);
|
|
194
|
+
if (preparedPluginStatements.size > PREPARED_CACHE_MAX) {
|
|
195
|
+
const oldest = preparedPluginStatements.keys().next().value;
|
|
196
|
+
if (oldest)
|
|
197
|
+
preparedPluginStatements.delete(oldest);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
entry.uses += 1;
|
|
97
201
|
return conn.unsafe(sql, params ?? []);
|
|
98
202
|
},
|
|
99
203
|
},
|
|
204
|
+
// api.cache backend (Item 2) — lazy so contexts that never use the
|
|
205
|
+
// plugin cache don't need it at boot.
|
|
206
|
+
cache: {
|
|
207
|
+
get: (key) => getCache().get(key),
|
|
208
|
+
set: (key, value, ttlSeconds) => getCache().set(key, value, ttlSeconds),
|
|
209
|
+
del: (key) => getCache().del(key),
|
|
210
|
+
},
|
|
100
211
|
getTenantId: () => tenantId ?? getCurrentTenantIdSync(),
|
|
101
212
|
getUserId: () => getCurrentUserIdSync(),
|
|
102
213
|
getRequestId: () => getCurrentRequestIdSync(),
|
|
@@ -109,14 +220,14 @@ function createApiDeps(tenantId) {
|
|
|
109
220
|
return user ? { id: user.id, email: user.email, name: user.name, roles: user.roles } : null;
|
|
110
221
|
},
|
|
111
222
|
registerRoutes: (routes) => {
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
console.debug(`[PluginAPI] ${routes.length}
|
|
223
|
+
// Routes registered here are collected at bootstrap by the PluginAPI
|
|
224
|
+
// itself (getLoadedPluginRoutes) — this point only logs.
|
|
225
|
+
console.debug(`[PluginAPI] ${routes.length} route(s) registered — collected at bootstrap`);
|
|
115
226
|
},
|
|
116
227
|
registerContentFields: async (fields) => {
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
//
|
|
228
|
+
// Explicit guard: with noUncheckedIndexedAccess, fields[0] is
|
|
229
|
+
// T | undefined even with the length check above — checked
|
|
230
|
+
// destructuring leaves the narrowing to TS with the same semantics.
|
|
120
231
|
const firstField = fields[0];
|
|
121
232
|
if (!firstField)
|
|
122
233
|
return;
|
|
@@ -147,10 +258,10 @@ function createApiDeps(tenantId) {
|
|
|
147
258
|
fields: fieldInputs,
|
|
148
259
|
});
|
|
149
260
|
}
|
|
150
|
-
console.debug(`[PluginAPI] ${fields.length}
|
|
261
|
+
console.debug(`[PluginAPI] ${fields.length} content field(s) registered in field group "${groupKey}"`);
|
|
151
262
|
}
|
|
152
263
|
catch (error) {
|
|
153
|
-
console.error('[PluginAPI]
|
|
264
|
+
console.error('[PluginAPI] Failed to register content fields:', error);
|
|
154
265
|
}
|
|
155
266
|
},
|
|
156
267
|
registerFieldTypes: async (fieldTypes) => {
|
|
@@ -168,6 +279,114 @@ function createApiDeps(tenantId) {
|
|
|
168
279
|
console.error('[PluginAPI] Falha ao registrar tipos de campo:', error);
|
|
169
280
|
}
|
|
170
281
|
},
|
|
282
|
+
registerPostTypes: async (postTypes) => {
|
|
283
|
+
// Idempotent persistence for plugin Custom Post Types (item 1 of the
|
|
284
|
+
// plugin-parity-plan): existe com mesmo sourceId → atualiza; existe com
|
|
285
|
+
// outra origem (CORE/ADMIN/outro plugin) → warn + skip (nunca rouba).
|
|
286
|
+
try {
|
|
287
|
+
for (const type of postTypes) {
|
|
288
|
+
const supports = ['title', 'editor'];
|
|
289
|
+
if (type.revisions)
|
|
290
|
+
supports.push('revisions');
|
|
291
|
+
const existing = await postTypeRegistry.getBySlug(type.key);
|
|
292
|
+
if (existing) {
|
|
293
|
+
if (existing.source === 'PLUGIN' && existing.sourceId === type.pluginName) {
|
|
294
|
+
await postTypeRegistry.update(type.key, {
|
|
295
|
+
singularLabel: type.label,
|
|
296
|
+
pluralLabel: type.plural ?? existing.pluralLabel,
|
|
297
|
+
menuIcon: type.icon ?? existing.menuIcon,
|
|
298
|
+
supports,
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
console.warn(`[PluginAPI] Post type "${type.key}" already exists (${existing.source}) — "${type.pluginName}" cannot claim it`);
|
|
303
|
+
}
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
await postTypeRegistry.create({
|
|
307
|
+
name: type.key,
|
|
308
|
+
slug: type.key,
|
|
309
|
+
pluralLabel: type.plural ?? `${type.label}s`,
|
|
310
|
+
singularLabel: type.label,
|
|
311
|
+
source: 'PLUGIN',
|
|
312
|
+
sourceId: type.pluginName,
|
|
313
|
+
supports,
|
|
314
|
+
hasArchive: true,
|
|
315
|
+
menuIcon: type.icon ?? 'box',
|
|
316
|
+
singleton: false,
|
|
317
|
+
public: true,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
console.debug(`[PluginAPI] ${postTypes.length} post type(s) de plugin persistido(s)`);
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
console.error('[PluginAPI] Falha ao registrar post types:', error);
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
registerTaxonomies: async (taxonomies) => {
|
|
327
|
+
// Idempotent persistence for plugin Custom Taxonomies — ownership
|
|
328
|
+
// stored in meta.plugin (schema has no sourceId for taxonomies).
|
|
329
|
+
try {
|
|
330
|
+
for (const taxonomy of taxonomies) {
|
|
331
|
+
const existing = await taxonomyService.getBySlug(taxonomy.key);
|
|
332
|
+
if (existing) {
|
|
333
|
+
const owner = existing.meta?.['plugin'];
|
|
334
|
+
if (owner !== undefined && owner !== taxonomy.pluginName) {
|
|
335
|
+
console.warn(`[PluginAPI] Taxonomy "${taxonomy.key}" belongs to plugin "${String(owner)}" — "${taxonomy.pluginName}" cannot claim it`);
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
await taxonomyService.update(taxonomy.key, {
|
|
339
|
+
name: taxonomy.label,
|
|
340
|
+
hierarchical: taxonomy.hierarchical ?? false,
|
|
341
|
+
attachTo: taxonomy.postTypes,
|
|
342
|
+
meta: { ...(existing.meta ?? {}), plugin: taxonomy.pluginName },
|
|
343
|
+
});
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
await taxonomyService.create({
|
|
347
|
+
name: taxonomy.label,
|
|
348
|
+
slug: taxonomy.key,
|
|
349
|
+
hierarchical: taxonomy.hierarchical ?? false,
|
|
350
|
+
attachTo: taxonomy.postTypes,
|
|
351
|
+
meta: { plugin: taxonomy.pluginName },
|
|
352
|
+
source: 'PLUGIN',
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
console.debug(`[PluginAPI] ${taxonomies.length} taxonomia(s) de plugin persistida(s)`);
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
console.error('[PluginAPI] Falha ao registrar taxonomias:', error);
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
jobs: {
|
|
362
|
+
schedule: async (jobName, spec, ctx) => {
|
|
363
|
+
// Recurrence on the `plugins` queue — deterministic idempotent jobId
|
|
364
|
+
return queueProducer.scheduleRepeatable('plugin.job', pluginJobId(ctx.tenantId, ctx.pluginName, jobName), { plugin: ctx.pluginName, job: jobName, scheduled: true }, spec, { tenantId: ctx.tenantId ?? 'default' });
|
|
365
|
+
},
|
|
366
|
+
cancel: async (jobName, ctx) => {
|
|
367
|
+
return queueProducer.cancelRepeatable('plugin.job', pluginJobId(ctx.tenantId, ctx.pluginName, jobName));
|
|
368
|
+
},
|
|
369
|
+
enqueue: async (jobName, payload, ctx) => {
|
|
370
|
+
return queueProducer.enqueue('plugin.job', { plugin: ctx.pluginName, job: jobName, data: payload }, { tenantId: ctx.tenantId ?? 'default' });
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
roles: {
|
|
374
|
+
add: (input) => pluginRolesService.add(input),
|
|
375
|
+
remove: (input) => pluginRolesService.remove(input),
|
|
376
|
+
addPermission: (input) => pluginRolesService.addPermission(input),
|
|
377
|
+
},
|
|
378
|
+
mail: {
|
|
379
|
+
send: (input) => mailService.enqueue(input),
|
|
380
|
+
},
|
|
381
|
+
audit: {
|
|
382
|
+
record: (entry) => auditService.record({
|
|
383
|
+
tenantId: entry.tenantId ?? undefined,
|
|
384
|
+
action: entry.action,
|
|
385
|
+
resourceType: entry.resourceType,
|
|
386
|
+
resourceId: entry.resourceId,
|
|
387
|
+
changes: entry.changes,
|
|
388
|
+
}),
|
|
389
|
+
},
|
|
171
390
|
};
|
|
172
391
|
}
|
|
173
392
|
function runtimeOptions(tenantId) {
|
|
@@ -189,7 +408,7 @@ function runtimeOptions(tenantId) {
|
|
|
189
408
|
* Persiste o resultado da carga em `plugins.error`/`status`:
|
|
190
409
|
* - falha nova → `status = LOAD_FAILED` + mensagem;
|
|
191
410
|
* - sucesso depois de falha → `ACTIVATED` + `error = NULL`.
|
|
192
|
-
*
|
|
411
|
+
* Only writes when the state changed (no UPDATE per request). Never throws.
|
|
193
412
|
*/
|
|
194
413
|
async function persistScopeResult(state) {
|
|
195
414
|
const sql = getConnection();
|
|
@@ -211,7 +430,7 @@ async function persistScopeResult(state) {
|
|
|
211
430
|
}
|
|
212
431
|
}
|
|
213
432
|
catch {
|
|
214
|
-
//
|
|
433
|
+
// an unavailable database cannot break the load — visibility stays in the in-memory state
|
|
215
434
|
}
|
|
216
435
|
}
|
|
217
436
|
async function syncScope(tenantId, force) {
|
|
@@ -234,8 +453,8 @@ async function syncScope(tenantId, force) {
|
|
|
234
453
|
// Coleta rotas registradas pelos plugins neste escopo
|
|
235
454
|
const scopeKey = key; // 'platform' ou 'tenant:<id>'
|
|
236
455
|
const pluginRoutes = await (await getLoadedPluginRoutes())(scopeKey);
|
|
237
|
-
for (const { pluginName, routes } of pluginRoutes) {
|
|
238
|
-
registerPluginRoutes(pluginName, routes);
|
|
456
|
+
for (const { pluginName, routes, rpm } of pluginRoutes) {
|
|
457
|
+
registerPluginRoutes(pluginName, routes, rpm);
|
|
239
458
|
}
|
|
240
459
|
// Remove rotas de plugins que foram descarregados (unloaded)
|
|
241
460
|
for (const pluginName of result.unloaded) {
|
|
@@ -256,7 +475,7 @@ async function syncScope(tenantId, force) {
|
|
|
256
475
|
return result;
|
|
257
476
|
}
|
|
258
477
|
catch (error) {
|
|
259
|
-
console.warn(`[plugins] sync
|
|
478
|
+
console.warn(`[plugins] sync unavailable (${key}): ${error instanceof Error ? error.message : String(error)}`);
|
|
260
479
|
const fallback = { enabled: [], loaded: [], unloaded: [], failed: [] };
|
|
261
480
|
if (!states.has(key)) {
|
|
262
481
|
states.set(key, { key, tenantId, loadedAt: 0, result: fallback, errors: new Map() });
|
|
@@ -286,22 +505,22 @@ async function evictOldTenants(maxTenants) {
|
|
|
286
505
|
}
|
|
287
506
|
/**
|
|
288
507
|
* Sincroniza o registry **platform** com os plugins habilitados no banco.
|
|
289
|
-
*
|
|
290
|
-
*
|
|
508
|
+
* Implicit force: this is the explicit boot/activation call — reflects the
|
|
509
|
+
* database immediately. Idempotent and never throws.
|
|
291
510
|
*/
|
|
292
511
|
export async function syncEnabledPlugins(options = {}) {
|
|
293
512
|
try {
|
|
294
513
|
return await syncScope(null, options.force ?? true);
|
|
295
514
|
}
|
|
296
515
|
catch (error) {
|
|
297
|
-
console.warn(`[plugins] sync
|
|
516
|
+
console.warn(`[plugins] sync unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
298
517
|
return { enabled: [], loaded: [], unloaded: [], failed: [] };
|
|
299
518
|
}
|
|
300
519
|
}
|
|
301
520
|
/**
|
|
302
|
-
*
|
|
521
|
+
* Ensures the tenant's plugins are loaded into its own registry.
|
|
303
522
|
* Chamado sob demanda (middleware/API, web, worker) — com cache de TTL para
|
|
304
|
-
*
|
|
523
|
+
* avoids hitting the database on every request. Never throws.
|
|
305
524
|
*/
|
|
306
525
|
export async function ensureTenantPluginsLoaded(tenantId, options = {}) {
|
|
307
526
|
if (!tenantId)
|
|
@@ -310,13 +529,13 @@ export async function ensureTenantPluginsLoaded(tenantId, options = {}) {
|
|
|
310
529
|
return await syncScope(tenantId, options.force ?? false);
|
|
311
530
|
}
|
|
312
531
|
catch (error) {
|
|
313
|
-
console.warn(`[plugins] sync
|
|
532
|
+
console.warn(`[plugins] tenant sync unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
314
533
|
return { enabled: [], loaded: [], unloaded: [], failed: [] };
|
|
315
534
|
}
|
|
316
535
|
}
|
|
317
536
|
/**
|
|
318
|
-
*
|
|
319
|
-
*
|
|
537
|
+
* Invalidates a tenant's cache/registry (after enabling/disabling a link,
|
|
538
|
+
* uninstalling or changing permissions). The tenant's next request reloads.
|
|
320
539
|
*/
|
|
321
540
|
export async function invalidateTenantPlugins(tenantId) {
|
|
322
541
|
if (!tenantId)
|
|
@@ -327,12 +546,12 @@ export async function invalidateTenantPlugins(tenantId) {
|
|
|
327
546
|
await (await unloadTenant())(tenantId);
|
|
328
547
|
(await (await getHookRegistryStore())).invalidateTenant(tenantId);
|
|
329
548
|
}
|
|
330
|
-
/**
|
|
549
|
+
/** Invalidates the platform scope (after global changes). */
|
|
331
550
|
export function invalidatePlatformPlugins() {
|
|
332
551
|
states.delete(PLATFORM_KEY);
|
|
333
552
|
inflight.delete(PLATFORM_KEY);
|
|
334
553
|
}
|
|
335
|
-
/**
|
|
554
|
+
/** Per-scope load state — observability surface (WP2). */
|
|
336
555
|
export function getPluginsRuntimeState() {
|
|
337
556
|
return {
|
|
338
557
|
generatedAt: new Date().toISOString(),
|
package/dist/plugin/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/plugin/load.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/plugin/load.ts"],"names":[],"mappings":"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"}
|
package/dist/queue/producer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Job types produzidos pelo núcleo (consumidos pelo worker). */
|
|
2
|
-
export type JobType = 'content.publish' | 'content.unpublish' | 'media.process' | 'build.create' | 'deployment.create' | 'webhook.send' | 'cache.invalidate' | 'cleanup.expired_sessions' | 'cleanup.expired_audit_logs';
|
|
2
|
+
export type JobType = 'content.publish' | 'content.unpublish' | 'media.process' | 'build.create' | 'deployment.create' | 'webhook.send' | 'cache.invalidate' | 'cleanup.expired_sessions' | 'cleanup.expired_audit_logs' | 'plugin.job' | 'mail.deliver';
|
|
3
3
|
export interface EnqueueOptions {
|
|
4
4
|
tenantId?: string;
|
|
5
5
|
userId?: string;
|
|
@@ -30,6 +30,17 @@ export declare class QueueProducer {
|
|
|
30
30
|
* está desativada/indisponível — NUNCA lança (fila é opcional).
|
|
31
31
|
*/
|
|
32
32
|
enqueue(jobType: JobType | string, payload: Record<string, unknown>, options?: EnqueueOptions): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Agenda/recalcula um job recorrente (fila `plugins` / plugin.job).
|
|
35
|
+
* Idempotente: remove repeatables pré-existentes do mesmo `jobId` antes de
|
|
36
|
+
* re-adicionar (spec pode ter mudado de `every` para `cron`). Nunca lança.
|
|
37
|
+
*/
|
|
38
|
+
scheduleRepeatable(jobType: JobType | string, jobId: string, payload: Record<string, unknown>, spec: {
|
|
39
|
+
every?: number;
|
|
40
|
+
cron?: string;
|
|
41
|
+
}, options?: EnqueueOptions): Promise<boolean>;
|
|
42
|
+
/** Cancela agendas recorrentes do `jobId`. Nunca lança. */
|
|
43
|
+
cancelRepeatable(jobType: JobType | string, jobId: string): Promise<boolean>;
|
|
33
44
|
/** Log espaçado (1x/30s): degradação visível sem poluir o log. */
|
|
34
45
|
private warnDegraded;
|
|
35
46
|
close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../src/queue/producer.ts"],"names":[],"mappings":"AAUA,iEAAiE;AACjE,MAAM,MAAM,OAAO,GACf,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,kBAAkB,GAClB,0BAA0B,GAC1B,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../src/queue/producer.ts"],"names":[],"mappings":"AAUA,iEAAiE;AACjE,MAAM,MAAM,OAAO,GACf,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,kBAAkB,GAClB,0BAA0B,GAC1B,4BAA4B,GAC5B,YAAY,GACZ,cAAc,CAAC;AAiBnB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,QAAQ;IAShB;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,GAAG,MAAM,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAuCnB;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,GAAG,MAAM,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACvC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAyDnB,2DAA2D;IACrD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgClF,kEAAkE;IAClE,OAAO,CAAC,YAAY;IAWd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD,gFAAgF;AAChF,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,GAAG,MAAM,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAElB"}
|