OptionalauditAlways-on arm: AuditPlugin. Omitted → memory storage default.
OptionalauthOptional arm: AuthPlugin. Provided only when the caller supplies
auth configuration; omitted → auth not registered. Configure at least one
passive strategy (jwt, apiKey, session, or strategies). The plugin
registers its authentication middleware globally unless disabled.
OptionalcacheAlways-on arm: CachePlugin. Omitted → memory store default.
OptionalconfigOptions for ConfigPlugin. Omitted → defaults.
OptionalcqrsAlways-on arm: CqrsPlugin. Omitted → no built-in behaviors.
OptionaldatabaseOptional arm: DatabasePlugin. Provided only when the caller supplies database credentials; omitted → database not registered.
OptionaldecoratorsOptions for DecoratorPlugin. Omitted → defaults.
OptionaldiOptional arm: DiPlugin. Omitted → decorated services are constructed
directly and registered in the kernel's ServiceRegistry, which is the
default and needs no container.
Supplying this arm changes how every decorated service in the application
is constructed: DecoratorPlugin branches on the presence of a container,
so with this arm each @Injectable class becomes a container provider that
honors its scope. That is why it is gated rather than always-on — the
default composition stays identical to a starter app without it.
OptionaleventsAlways-on arm: EventsPlugin. Omitted → in-memory bus default.
OptionalfeatureOptional arm: FeatureFlagsPlugin. Gated — requires a provider to be useful.
OptionalgraphqlOptional arm: GraphqlPlugin. Gated because the plugin cannot boot without
an application-supplied schema — the rule that made session gated.
OptionalhealthOptions for HealthPlugin. Omitted → defaults.
OptionalhttpOptions for HttpSecurityPlugin. Omitted → defaults.
OptionalloggerOptions for LoggerPlugin. Omitted → defaults.
OptionalmailAlways-on arm: MailPlugin. Omitted → log provider default.
OptionalmessagingConfiguration for MessagingPlugin, which this tier ALWAYS
registers — unlike the gated arms inherited from
RestStarterOptions, omitting this does not skip the plugin.
Omitted → the memory broker default.
OptionalmetricsOptions for MetricsPlugin. Omitted → defaults.
OptionalmultiOptional arm: MultiTenancyPlugin. Gated — requires resolvers to be useful.
OptionalnotificationsOptional arm: NotificationPlugin. Gated — requires channels to be useful.
OptionalopenapiOptions for OpenApiPlugin. Omitted → defaults.
OptionalqueueConfiguration for QueuePlugin, always registered. Omitted → the memory adapter default.
OptionalreactOptional arm: ReactRouterPlugin. Gated — requires serverBuildPath for SSR.
OptionalrealtimeOptional arm: the real-time plugins, one per sub-arm. Omitted → none of the three is registered.
OptionalresilienceConfiguration for ResiliencePlugin, always registered. Omitted → plugin defaults.
OptionalschedulerAlways-on arm: SchedulerPlugin. Omitted → defaults. On Cloudflare Workers the
scheduler is left out unless this arm is given, because the plugin refuses that platform;
schedule there with Cron Triggers (cloudflare-plugin's WorkersCron).
OptionalsecretsAlways-on arm: SecretsPlugin. Omitted → env provider default.
OptionalserviceOptional arm: ServiceDiscoveryPlugin. Provided → service discovery is registered; omitted → no discovery capability is added.
OptionalsessionOptional arm: SessionPlugin. Omitted → the application has no cookie
session and no session-backed form CSRF.
Gated because a session needs a secret nobody can default: the plugin
throws during register() without one, so an always-on arm would make
every starter application fail to boot until it supplied one. It is also
genuinely optional — a token-authenticated API has no use for cookies,
which is what auth covers.
Setting csrf additionally registers the synchronizer-token middleware at
priority 325, which is the check a progressive-enhancement <Form> post
can satisfy — unlike the stateless Origin/Referer check that
httpSecurity performs, which a form structurally cannot. Running both is
intended.
OptionalstaticOptional arm: StaticPlugin. Gated — requires root to serve
from; absent registers nothing, leaving the composition byte-identical.
OptionalstorageAlways-on arm: StoragePlugin. Omitted → memory provider default.
OptionaltelemetryConfiguration for TelemetryPlugin, always registered.
Omitted → a NoopTelemetryService, since no exporter is configured.
OptionalvalidationOptions for ValidationPlugin. Omitted → defaults.
Options for
createFullStackApp. ExtendsMicroserviceStarterOptionswith full-stack arms (always-on + gated). Omitted plugins use their defaults.See
FullStackStarterOptions