Custom message routing
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- openapi, typescript
- Ambito
- api, authorization, backend-api-design
Direzione di ricerca
L'issue non indica file, test o punti di ingresso. Inizia esaminando i typings TypeScript e il generatore OpenAPI v3 del repository, quindi chiarisci come le route personalizzate e le relative regole di autorizzazione, immutabilità ed eliminazione si integrino con l'API. Il lavoro è completato quando il modello delle route e il comportamento del ciclo di vita sono specificati e implementati con validazione e copertura dei test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- TypeScript
- Stelle
- 42
- Fork
- 34
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stoatchat/javascript-client-api
-
bug: 401 Unauthorized Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
stoatchat/javascript-client-api#34 · 1 commento ·
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
stoatchat/javascript-client-api#29 · 1 reazione ·
-
feature request: Make GET channels/{target}/messages use request body instead of query parameters Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
stoatchat/javascript-client-api#28 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
stoatchat/javascript-client-api#18 · 2 commenti · 4 reazioni ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
stoatchat/javascript-client-api#16 · 2 commenti · 8 reazioni ·
Tutte le issue di stoatchat/javascript-client-api
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
0xMiden/bridge-portal#132 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
area:tools bug good first issue help wanted priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
newrelic-experimental/preflight#793 · 1 commento ·