Package com.iizix.server.push.engine


package com.iizix.server.push.engine
  • Class
    Description
    Finds the push configuration of an application: its .iiziPush container, 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 or AppPushConfigs.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) triggers DELIVER on the target session's PushChannelProps with the notification object as the Web Push leg carries it, and answers DeliveryOutcome.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 to AppSessionGyro to its ClientSessionGyros - 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.
    One java.nio.file.WatchService over 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.md section 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 with VPrivKey and fcmServiceAccount filled in from the files, the pattern of ServerPushKeys.get().
    The lightweight, immutable, in-flight notification: a title and an options map aligned to the browser showNotification(title,options) call, plus a time-to-live.
    The fluent builder of a PushMessage.
    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.md section 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 live PNSpoolerRoot tree 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 .iiziPush container 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.