All Classes and Interfaces
Class
Description
Framework-pure alert engine: the extracted heart of the original Logback
NtfyAlertAppender, decoupled from any logging framework.Framework-neutral snapshot of a single log event, handed to
AlertEngine.submit(io.github.pimak.ntfy.core.AlertEvent).One link of an exception chain: the throwable's class name and its message (either may be
null in degenerate cases, mirroring the source throwable).The severity of an
AlertEvent, as far as the alerting engine is concerned — the value
AlertEngine routes on.Auth strategy for an outbound ntfy publish request, modeled as a sealed hierarchy so each mode
carries only the fields it needs and knows how to build its own
Authorization header.Sends
Authorization: Basic <base64(username:password)>.Sends
Authorization: Bearer <token>.Sends no
Authorization header at all — a valid anonymous publish.Resolves an
NtfyConfig from the ambient environment.Self-diagnostic sink for
AlertEngine.Parses the several duration spellings the ntfy configuration surface accepts into a
Duration.A thin Logback
UnsynchronizedAppenderBase<ILoggingEvent> shell over the framework-neutral
AlertEngine.Projects a logging framework's diagnostic context (MDC) onto the small, bounded, sanitized map of
key -> value pairs an alert body may carry — the include-mdc-keys feature.A single ntfy notification action button, modeled as a sealed hierarchy so each action type
carries only the fields it needs (mirroring the
AuthMode pattern).Sends an Android broadcast intent when tapped (only actioned by ntfy's Android app).
Sends an HTTP request to
url when tapped.Opens
url in the browser/app when the action button is tapped.Auto-configuration that turns
ntfy.* properties into a live ntfy integration for a Spring
Boot application.Generic, standalone ntfy notification client — the "send an arbitrary notification" surface,
independent of
AlertEngine's log-alert lifecycle.Exposes the injectable
NtfyClient bean, built from the bound NtfyConfiguration.Exposes a generic, application-scoped
NtfyClient for CDI injection, so Quarkus apps can
@Inject NtfyClient to send arbitrary notifications independent of the log-alert path.Immutable, framework-neutral configuration for the ntfy engine and client.
Fluent builder for
NtfyConfig; every setter returns this.Binds all
ntfy.* application configuration for a Micronaut application.Declarative zero-code entry point: name this class in a JUL
logging.properties —A
Handler that forwards SEVERE-and-above (and, when a warn route is configured,
WARNING) LogRecords to the ntfy AlertEngine.Programmatic one-liner install of the ntfy JUL handler from the ambient environment:
NtfyJulInstaller.install() early in main attaches a NtfyJulHandler to the root
logger when the environment configures ntfy (NTFY_URL/NTFY_TOPIC,
-Dntfy.*, or a trusted classpath ntfy.properties — see JulAmbientConfig for the
classpath-endpoint opt-in guard), and does nothing otherwise.A thin log4j2
AbstractAppender shell over the framework-neutral AlertEngine,
exposed to log4j2.xml as the <Ntfy .../> element.Plugin builder for the
<Ntfy .../> element.Programmatic one-liner install of the ntfy log4j2 appender from the ambient environment:
NtfyLog4j2Installer.install() early in main attaches a started NtfyLog4j2Appender to the root logger at Level.ERROR when the environment configures
ntfy (NTFY_URL/NTFY_TOPIC, -Dntfy.*, or a trusted classpath
ntfy.properties — see Log4j2AmbientConfig for the classpath-endpoint opt-in guard), and
does nothing otherwise.A Logback
Configurator SPI implementation that auto-installs the ntfy appender on the root
logger with zero XML — activated only when the ambient environment actually configures ntfy.Installs the ntfy appender named
"ntfy-auto" on the root Logback logger once the
Micronaut context has started, and detaches it again on shutdown.Binds the ntfy pipeline observability counters to Micrometer as three
FunctionCounters:
ntfy.pipeline.published, ntfy.pipeline.suppressed, and
ntfy.pipeline.failed — the same three meters, with the same names and meanings, that the Spring
Boot starter exports.Binds all
ntfy.* application properties.Stateless, never-throws HTTP publisher for the ntfy wire format.
Records the creation of the ntfy log
Handler at RUNTIME_INIT.Run-time configuration surface for the ntfy Quarkus extension, mapped from the
quarkus.ntfy.* config namespace.Thrown out of
AlertEngine.start() when the startup self-test fails and
startup-ping-fail-fast is enabled — the deliberate opt-in that turns a broken alerting
configuration into a failed deployment rather than a silent one.Read-only, monotonic observability counters for the alert pipeline, letting operators "alert on
the alerter" (e.g. a spike in
PipelineCounters.failed() signalling a revoked token or a topic ACL change).An immutable, point-in-time triple of the three counters.
What the opt-in startup self-test does when
AlertEngine.start() finishes activating.