Package com.iizix.server.push.engine
package com.iizix.server.push.engine
- ClassDescriptionFinds the push configuration of an application: its
.iiziPushcontainer, which holds the VAPID key pair, the VAPID subject, the Firebase project ID and the Firebase service account.The credentials a subscription row is signed with (AppPushConfigs.signer(SubscriptionRecord)): the configuration of an application, the row's own orAppPushConfigs.NO_APP, or none.The in-session tier over the sessions' Push Notification (PN) channels (PUSH-PROPS-DESIGN section 9.1, ruled 2026-09-24 RR-14a; P4-10):ChannelInSessionDelivery.deliver(DeliveryTarget, IPushNotification)triggersDELIVERon the target session'sPushChannelPropswith the notification object as the Web Push leg carries it, and answersDeliveryOutcome.DELIVERED_IN_SESSION.One resolved delivery target: a device or a live client session of one user for one application and Topic, carrying its delivery method and what that method needs.The in-session delivery seam: Tier 1, a write down the recipient's live IIZI session - server toAppSessionGyroto itsClientSessionGyros - entirely within IIZI transports, never VAPID or FCM.The Push Notification engine: the runtime that owns the executor, the concurrency ceiling, the store, the spool, the transports and the resolver, and performs sends.The collaborators of an engine, so that a test can build one without a server.Builds the Push Notification (PN) engine over a running server: the settings container, the subscription store and the user directory over the server's connection pool, the spool over the server's property factory, the live-session enumerator and the in-session seam over the sessions' PN channels (P4-10), the region locator and the three transports.The engine-sourced Push Notification (PN) events, fanned out to the sessions that listen (PUSH-PROPS-DESIGN sections 4.4 and 5, P4-04): a subscription stored or removed - by whichever front end, the HTTP API or the Java API, and by the engine itself when a push service reports an endpoint gone - and a target of a send that ended in a failure.A session's receiver of the events, matched by user and application at delivery.Onejava.nio.file.WatchServiceover the files the Push Notification (PN) engine re-reads when they change: the credentials file and, later, the files it names.Resolves the Push Notification (PN) key references of the server's own container - application*: the credentials file's[server]section and the server settings'$push(PUSH-KEYFILES-DESIGN.mdsection 9) - into key material: a container that names its VAPID key file (VPrivKeyFile) or its Firebase service-account key file (fcmServiceAccountFile) is answered as a detached clone withVPrivKeyandfcmServiceAccountfilled in from the files, the pattern ofServerPushKeys.get().The lightweight, immutable, in-flight notification: a title and an options map aligned to the browsershowNotification(title,options)call, plus a time-to-live.The fluent builder of aPushMessage.The resolver:(application, user, Topic, [area]) -> List<DeliveryTarget>.Resolves an address to a location.Enumerates the live sessions of this server.A live client session that has a Push Notification channel, with or without an authenticated user.The result of a send: the plan, the per-outcome tally and the per-target outcomes.One target's outcome.A send request: the notification, the filter, the three per-send policies (null for the server default) and the operator's authorization scope.The[server]section of the Push Notification (PN) credentials file (PUSH-CREDENTIALS.mdsection 3.6, ruled 2026-09-26): the PN configuration of application ID*, the iiziRun clients that have chosen no application - iiziRun Developer in a Browser (VAPID) and on a device (FCM).The write-ahead spool: the undelivered notifications, as a livePNSpoolerRoottree mirrored to one XML file.Reads and writes the tree as XML: the server's property factory in production, a test's own in a test.The routing plan of a send: the resolved targets grouped into one slice per region, plus the targets the plan rejected before any dispatch and why.One region's slice.A target rejected at plan time, with its outcome.The server's own Push Notification (PN) configuration: the.iiziPushcontainer that serves the subscriptions made with application ID*, i.e.Reads and writes the container as XML: the server's property factory in production, a test's own in a test.The subscription filter: the "group" a send targets, as a predicate over the store's dimensions plus a region selector.