45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
import node from "@astrojs/node";
|
|
import react from "@astrojs/react";
|
|
import { apiTestPlugin } from "@emdashcms/plugin-api-test";
|
|
import { auditLogPlugin } from "@emdashcms/plugin-audit-log";
|
|
import { embedsPlugin } from "@emdashcms/plugin-embeds";
|
|
import { webhookNotifierPlugin } from "@emdashcms/plugin-webhook-notifier";
|
|
import { defineConfig } from "astro/config";
|
|
import emdash from "emdash/astro";
|
|
import { sqlite } from "emdash/db";
|
|
|
|
export default defineConfig({
|
|
output: "server",
|
|
adapter: node({
|
|
mode: "standalone",
|
|
}),
|
|
integrations: [
|
|
react(),
|
|
emdash({
|
|
// SQLite database for demo
|
|
database: sqlite({ url: "file:./data.db" }),
|
|
|
|
// Register plugins - order matters for hook execution!
|
|
plugins: [
|
|
// 1. Audit log runs last (priority 200) to capture final state
|
|
// Settings (retention, data changes, excluded collections) are
|
|
// configured at runtime via the admin UI, not constructor options.
|
|
auditLogPlugin(),
|
|
|
|
// 2. Webhook notifier sends events to external URLs
|
|
// Demonstrates: network:fetch:any, apiRoutes, settings.secret(),
|
|
// hook dependencies, errorPolicy: "continue"
|
|
// Webhook URL, collections, and actions are configured via admin settings.
|
|
webhookNotifierPlugin(),
|
|
|
|
// 3. Embeds plugin for YouTube, Vimeo, Twitter, etc.
|
|
// Components are auto-registered with PortableText
|
|
embedsPlugin(),
|
|
|
|
// 4. API Test plugin - exercises all v2 APIs
|
|
apiTestPlugin(),
|
|
],
|
|
}),
|
|
],
|
|
});
|