Skip to content

initial draft, notifications decision process.#108

Merged
julialongtin merged 3 commits into
mainfrom
push_notification_guidance
Jul 13, 2026
Merged

initial draft, notifications decision process.#108
julialongtin merged 3 commits into
mainfrom
push_notification_guidance

Conversation

@julialongtin

Copy link
Copy Markdown
Member

Change type

  • Documentation change
  • Build pipeline change
  • Submodule update
  • Deployment change

Basic information

  • THIS CHANGE REQUIRES A WIRE-DOCS RELEASE NOW

Testing

  • I ran/applied the changes myself, in a test environment.

Tracking

  • I mentioned this PR in Jira, OR I mentioned the Jira ticket in this PR.
  • I mentioned this PR in one of the issues attached to one of our repositories.

@julialongtin
julialongtin requested review from a team as code owners March 25, 2026 19:55
Comment thread src/how-to/install/notifications.md Outdated

## Architecture: How Notifications Flow

Wire's backend push notification routing is handled by the **Gundeck** service.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the Gundeck mention could be a link to https://docs.wire.com/latest/understand/overview.html?h=gundeck#gundeck


For mobile push notifications, the delivery path is as follows:
```
Wire backend (Gundeck)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the line above this, like where does the event that causes a notification to happen "come from" inside the wire backend? Likely overkill, just mentionning the question in case / because I was wondering so maybe a user would too.

Comment thread src/how-to/install/notifications.md Outdated

Replace `<region>` with your target AWS region (e.g. `eu-central-1`):
```bash
curl -v --max-time 10 https://sns..amazonaws.com

@arthurwolf arthurwolf Mar 25, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the double dot after sns ?

Was <region> supposed to be there maybe?

Comment thread src/how-to/install/notifications.md Outdated

### 2. Test connectivity to AWS SQS (required for Options A and B)
```bash
curl -v --max-time 10 https://sqs..amazonaws.com

@arthurwolf arthurwolf Mar 25, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another double dot after sqs.

Was <region> supposed to be there maybe?

You should receive a response of the form:
```json
{
"QueueUrl": "https://.queue.amazonaws.com//-gundeck-events"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hink the "response" format we show here might be broken / missing parts (on purpose? but maybe we want to add * or some other "wildcard" type expression there?) , an example I found looks something like:

https://sqs.eu-west-1.amazonaws.com/123456789012/production-gundeck-events. 


### 4. Test connectivity to APNs (iOS clients)

APNs uses TCP port 443 (with HTTP/2) or legacy port 2197. From a host on the same

@arthurwolf arthurwolf Mar 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be incorrect that 2197 is a «legacy» port, docs say it's an "alternative" port:

the port 2197 is an alternative port for the current, modern APNs HTTP/2 API (the same one that uses 443)

Research shows that the actual legacy APNs binary protocol used port 2195/2196 (and is deprecated, that is true).

The correct phrasing would be maybe something like « alternative port 2197 (if port 443 is blocked on the client network) »

Comment thread src/how-to/install/notifications.md Outdated
through some special hoops in order to notify users, without always running,
and draining the battery.

In order to notify users that a message or call has occured, Wire's mobile clients

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In order to notify users that a message or call has occured, Wire's mobile clients
In order to notify users that a message or call has occurred, Wire's mobile clients


> **Note:** Even in WebSocket-only deployments where FCM/APNs are not used, Gundeck
> still depends on an SQS-compatible API for internal event processing. In that
> case, the `fake-aws-sqs` service (part of the `fake-aws` Helm chart) provides a

@arthurwolf arthurwolf Mar 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe also mention fake-aws-sns in this context since (I think) fake-aws provides both?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arthurwolf arthurwolf left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All looks good.

@julialongtin
julialongtin enabled auto-merge July 7, 2026 10:25
All client applications use the web socket interface to download (encrypted) message
content.

## WebSocket Mode (Android Only)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cross linking it with https://docs.wire.com/latest/how-to/install/helm-prod.html#fake-aws-snssqs-for-websocket-only-notifications-no-fcmapns-on-android-devices could provide a better understanding and management of our related pages.

- Your Wire backend servers **cannot** reach the Wire-managed AWS SNS/SQS endpoints,
for example due to network policy or firewall restrictions preventing outbound
connections to AWS.
- You are able to provision and maintain your own AWS account and SNS/SQS

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or AWS SNS/SQS compatible infrastructure


APNs uses TCP port 443 (with HTTP/2) or legacy port 2197. From a host on the same
network as your client devices (or from a device itself):
```bash

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can mention a 4xx be expected but confirms connectivity to network


### 5. Test connectivity to FCM (Android clients)

FCM endpoints use HTTPS on port 443:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can mention a 4xx be expected but confirms connectivity to network

@julialongtin
julialongtin merged commit da3f4a9 into main Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants