Custom message routing
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- openapi, typescript
- Área
- api, authorization, backend-api-design
Línea de trabajo
El issue no menciona archivos, pruebas ni puntos de entrada. Empieza revisando los typings de TypeScript y el generador de OpenAPI v3 del repositorio; después, aclara cómo encajan las rutas personalizadas y sus reglas de permisos, inmutabilidad y eliminación en la API. Se considera terminado cuando el modelo de rutas y el comportamiento del ciclo de vida están especificados e implementados con validación y cobertura de pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What do you want to see?
This could be useful for cross-posting and IoT-related use cases. Custom route management should be permissions-gated to prevent spamming by randomly creating message routes.
The semantics should be as follows: server-wide permissions allow you to create, alter and drop a message route targeting any channel, while per-guild permission only allows you to do so while requiring you to have either:
- Posting, storage, view all within that guild
- Posting channel is null (meaning that route is read-only) and view channel is within that guild, no constraints on storage channel
Routing rule
A routing rule shall consist of eight elements:
- Timestamp of the registration (stored as snowflake)
- Source channel
- Storage channel
- Sink channel
- Source users (user, group or role ID)
- Target users (user, group or role ID)
- Valid since timestamp
- Valid until timestamp
Invariants
- Valid since cannot be earlier than time of registration
- Valid until cannot be earlier than valid since
- Source user set has to have message posting permission in the source channel at the time of use
- Event type validity checks are done based on the storage channel
- Target user set has to have read messages permission in the source channel at the time of use
- Each routing rule is considered immutable once created, except for valid until timestamp, which can be set to any future time while the routing rule is still in effect
A routing rule can only be deleted in either of the following cases:
- none of the source channels are present
- none of the storage channels are present
- none of the sink channels are present
- the routing rule is not in effect AND no messages are affected by deletion of the routing rule
- Lenguaje dominante
- TypeScript
- Estrellas
- 42
- Forks
- 34
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de stoatchat/javascript-client-api
-
bug: 401 Unauthorized Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
stoatchat/javascript-client-api#34 · 1 comentario ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
stoatchat/javascript-client-api#29 · 1 reacción ·
-
feature request: Make GET channels/{target}/messages use request body instead of query parameters Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
stoatchat/javascript-client-api#28 · 1 comentario ·
-
feat: add opt-in chat features Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
stoatchat/javascript-client-api#18 · 2 comentarios · 4 reacciones ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
stoatchat/javascript-client-api#16 · 2 comentarios · 8 reacciones ·
Todos los issues de stoatchat/javascript-client-api
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mksglu/context-mode#1200 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/claude-code#96687 ·
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
AOSSIE-Org/DebateAI#582 · 2 comentarios ·