graph + mail dispatcher, test-email endpoint, notifications global

This commit is contained in:
2026-08-22 17:55:43 +02:00
parent 3d8bc9019f
commit ac48f1e9d1
40 changed files with 1336 additions and 13 deletions
+12 -1
View File
@@ -3,10 +3,12 @@ import type { Config, Plugin } from 'payload'
import type { IpalOptions } from './types.js'
import { buildCookieSettings } from './globals/CookieSettings/index.js'
import { buildNotifications } from './globals/Notifications/index.js'
import { buildSiteIntegrations } from './globals/SiteIntegrations/index.js'
import { buildSiteSettings } from './globals/SiteSettings/index.js'
import { injectRoles } from './modules/access/index.js'
import { buildArchiveFields } from './modules/content/index.js'
import { testEmailEndpoint } from './modules/email/test/testEmailEndpoint.js'
import { buildFormsPlugin } from './modules/forms/formsPluginConfig.js'
import { buildLocalizationConfig, validateI18nConfig } from './modules/i18n/index.js'
import { buildSystemPagesFields } from './modules/pages/index.js'
@@ -94,12 +96,21 @@ export const ipalKit = (options: IpalOptions): Plugin => {
}),
buildSiteIntegrations({ additionalFields: options.integrationsFields }),
buildCookieSettings(),
buildNotifications(),
]
// --- endpoints ---
// Test-email endpoint (admin-only): POST /api/ipal/test-email sends a probe
// message through the currently selected transport, so the panel's "send
// test" button can confirm delivery without leaving the admin UI.
config.endpoints = [...(config.endpoints ?? []), testEmailEndpoint]
// --- hooks: onInit ---
const incomingOnInit = config.onInit
config.onInit = async (payload) => {
if (incomingOnInit) {await incomingOnInit(payload)}
if (incomingOnInit) {
await incomingOnInit(payload)
}
payload.logger.info('[ipal] Plugin initialized.')
}