Member Junction
    Preparing search index...

    Interface ServerExtensionConfig

    Configuration for a server extension instance.

    Loaded from the host serverExtensions[] in mj.config.cjs, and/or discovered from installed Open App server packages (MJ_SERVER_EXTENSIONS export or package.json memberjunction.serverExtensions). Host entries overlay discovered ones by DriverClass.

    Each entry corresponds to one extension instance. The DriverClass field is used to look up the registered class via ClassFactory.CreateInstance().

    // mj.config.cjs
    module.exports = {
    serverExtensions: [
    {
    Enabled: true,
    DriverClass: 'SlackMessagingExtension',
    RootPath: '/webhook/slack',
    Phase: 'pre-auth',
    Settings: {
    AgentID: '...',
    BotToken: process.env.SLACK_BOT_TOKEN,
    }
    }
    ]
    };
    interface ServerExtensionConfig {
        DriverClass: string;
        Enabled: boolean;
        Phase?: ServerExtensionPhase;
        RootPath: string;
        Settings: Record<string, unknown>;
    }
    Index

    Properties

    DriverClass: string

    The @RegisterClass key used to look up this extension in ClassFactory. Must match the second argument of @RegisterClass(BaseServerExtension, 'DriverClass').

    Enabled: boolean

    Whether this extension is enabled. Disabled extensions are skipped during loading.

    Lifecycle phase for this extension. Defaults to the extension class's DefaultPhase (usually 'pre-auth') when not specified.

    RootPath: string

    URL path prefix for this extension's routes (e.g., '/webhook/slack'). The extension registers its routes under this prefix on the Express app.

    Settings: Record<string, unknown>

    Extension-specific configuration. The shape varies by extension type. For messaging adapters, this contains AgentID, BotToken, etc. The extension is responsible for parsing and validating its own settings.