Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Web Push as a way to ingest messages

Abierto
#765 20 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
go
Área
api, backend

Línea de trabajo

Comienza leyendo el WebKit Declarative Web Push explainer, RFC 8030, RFC 8292, el Web Push encryption draft y los artículos generales enlazados. No se han identificado archivos de implementación ni pruebas; para considerar el trabajo terminado sería necesario definir el alcance de las suscripciones, la autenticación, el cifrado de mensajes y el mapeo propuesto de campos de mensajes antes de poder verificar la implementación.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

a:feature in:server

Web Push provides standardized means not only for web clients to subscribe to and receive messages, but for servers to send them.

Previously, the subscription mechanism and the authentication mechanism servers would use were well-defined. Recent developments have also resulted in the actual message format moving to a standardized format, pushed by WebKit. The feature is available in the latest version of Safari Technology Preview.

I propose supporting Web Push in gotify - as a way of ingesting messages in a standardized way, making gotify compatible with existing and future Web Push-aware servers, meaning users of said applications could use gotify without dedicated support in the applications themselves.

In the normal Web Push flow, a user would request a subscription via their browser vendor's infrastructure. In this case, my suggestion is for gotify to act as that vendor. By letting users create a Web Push subscription via gotify, they could get the same reply from gotify as they would from their browser, letting them set up their applications to send messages to gotify.

Gotify would then receive messages from the services and respond like a Web Push server, supporting the subset of features that is mandated and makes sense in gotify's context.

As for the message format, I propose to use the format specified by WebKit, moving towards standardization: https://github.com/WebKit/explainers/blob/main/DeclarativeWebPush/README.md. W3C discussion

Useful article for an overview of Web Push: https://web.dev/articles/push-notifications-web-push-protocol.

Relevant RFCs and articles

Message field mapping

Below is a rough field mapping between Gotify's current message format and the message format proposed for Web Push. Note that there are additional fields in the proposed Web Push format that could be used for features like the image URLs, android actions, but they would likely not be supported by Web Push-compatible servers without additional work on their end.

{
  "title": "My title",
  "message": "My message",
  "extras": {
    "client::display": {
      "contentType": "text/plain"
    },
    "client::notification": {
      "click": {
        "url": "https://gotify.net"
      },
      "bigImageUrl": "https://placekitten.com/400/300",
    },
    "android::action": {
      "onReceive": {
        "intentUrl": "https://gotify.net"
      }
    }
  }
}
{
  "title": "My title",
  "options": {
    "body": "My message"
  },
  "default_action_url": "https://gotify.net"
}
Lenguaje dominante
Go
Estrellas
16k
Forks
878
Merge medio
2 d 15 h
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de gotify/server

Todos los issues de gotify/server

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.