Before you begin
- Who: a platform administrator with access to the
agent-factoryworkspace of the instance. - Requires: direct outbound HTTPS from the instance to the push gateway. See Known limit behind an egress proxy.
- Requires: the Prisme.ai team, who registers your instance’s public key at the gateway.
- Impact: changing the instance key later invalidates registered devices. They register again the next time the app starts.
How it works
The instance encrypts each notification with a key created by the user’s phone (RFC 8291), with a fixed size. It then signs the request with its own Ed25519 key. The gateway authenticates the instance, applies quotas, and forwards the encrypted data. It cannot read the content. Device tokens and notification keys are sealed in the instance’s database with a key derived from the instance’s private key.Set up the instance
1
Generate the instance key
Generate an Ed25519 key, then print the private key (PKCS#8 DER) and the public key (SPKI DER), both in base64url:Keep the private key in your secret manager and delete the local file once the setup is complete.
2
Register the instance
Send the Prisme.ai team the public key and a label for the instance. Never send the private key. You receive an instance identifier.
3
Update the workspace configuration
Instances installed before this feature have no
push block in the agent-factory configuration, because a release does not overwrite an existing configuration. Add it, using the gateway URL given by the Prisme.ai team:max_devices_per_user is the number of devices kept for each user. When a user goes over it, their oldest devices are removed.4
Set the secrets
In the secrets of the
agent-factory workspace, set these values:Verify
- Sign in to the mobile app on the instance and allow notifications.
- Send a message to an agent, then leave the app before the reply ends.
- Check that the notification appears on the phone.
Troubleshooting
Known limit behind an egress proxy
Delivery opens a direct HTTPS connection that does not followHTTPS_PROXY. Behind a mandatory egress proxy, every send fails with GatewayUnreachable. Allow a direct route from the instance to the gateway host.