Slack
Co to robi
Dział zatytułowany „Co to robi”Dzięki integracji ze Slackiem Speedwave czyta kanały i wiadomości prywatne, w których jesteś, otwiera udostępnione tam pliki, znajduje osoby i pisze wiadomości. Robi to w twoim imieniu: wszystko, co wyśle, idzie pod twoim nazwiskiem i z twoim zdjęciem, a widzi tylko tyle, ile widzi twoje konto na Slacku.
Z czego się składa
Dział zatytułowany „Z czego się składa”Połączenie składa się z dwóch części: krótkotrwałego tokenu dostępu, podmontowanego tylko do odczytu do workera Slacka, oraz tokenu odświeżającego, który nigdy nie opuszcza hosta. Tylko worker rozmawia z API Slacka i trzyma przy sobie bieżący token dostępu, i nic więcej.
Folder~/.speedwave/
Foldertokens/
Folder<project>/
Folderslack/
- access_token krótkotrwały, podmontowany do workera tylko do odczytu
Folderoauth/
Folder<project>/
- slack.json token odświeżający i tożsamość przestrzeni roboczej, nigdy niepodmontowany
Jak to działa
Dział zatytułowany „Jak to działa”Logujesz się tylko raz, przyciskiem Sign in with Slack w Speedwave Desktop. Nie musisz zakładać własnej aplikacji Slacka ani nigdzie wklejać tokenu: Speednet prowadzi jedną publiczną aplikację Slacka wspólną dla wszystkich instalacji, a cała wymiana danych rozgrywa się na twoim komputerze.
Po kliknięciu przycisku w przeglądarce otwiera się ekran zgody Slacka. Wybierasz przestrzeń roboczą, klikasz Allow, a Slack odsyła przeglądarkę na stały, lokalny adres http://localhost:41739/callback, którego nasłuchuje Speedwave. Speedwave przechwytuje stamtąd kod i od razu, u ciebie na komputerze, wymienia go na tokeny. Żaden serwer Speedwave nie bierze w tym udziału.
sequenceDiagram
participant You as Ty
participant Desktop as Speedwave Desktop
participant Browser as Przeglądarka
participant Slack
You->>Desktop: Klik Sign in with Slack
Desktop->>Browser: Otwórz ekran zgody Slacka
Browser->>Slack: Wybierz workspace, klik Allow
Slack->>Browser: Przekieruj na localhost:41739/callback z kodem
Browser->>Desktop: Dostarcz kod do lokalnego nasłuchu
Desktop->>Slack: Wymień kod na tokeny (PKCE, na twoim komputerze)
Desktop->>You: Karta pokazuje Connected to (workspace)
Po nawiązaniu połączenia Speedwave czyta kanały i wiadomości prywatne, znajduje osoby i pisze wiadomości za pomocą zestawu narzędzi MCP. Identyfikatory autorów podmienia przy tym na wyświetlane nazwy, więc zamiast surowych ID widzisz prawdziwe imiona i nazwiska.
| Narzędzie | Co robi |
|---|---|
getChannelMessages | Czyta historię kanału. Wymaga channel (nazwa, #nazwa lub ID); limit od 1 do 100, domyślnie 50; opcjonalne okno oldest/latest zawęża zakres. Zwraca po jednej stronie naraz, od najnowszych, a next_cursor/has_more służą do dociągania kolejnych. |
getThreadMessages | Czyta wątek. Wymaga channel i thread_ts; najpierw zwraca wiadomość otwierającą, potem odpowiedzi od najstarszej do najnowszej. |
sendChannel | Publikuje wiadomość na kanale lub w DM w twoim imieniu. Nie da się tego cofnąć, a wiadomość jest widoczna od razu po wysłaniu. |
listChannelIds | Wymienia kanały, w których jesteś (domyślnie publiczne i prywatne). |
listDirectMessages | Wymienia twoje otwarte rozmowy jeden na jeden oraz grupowe DM. |
openDirectMessage | Otwiera lub przywraca DM z 1 do 8 osobami, wskazanymi przez ID użytkownika Slacka albo dokładny adres e-mail, nigdy przez samą nazwę. Odbywa się to bezgłośnie: druga strona niczego nie zauważa, dopóki faktycznie nie wyślesz wiadomości. |
getFileContent | Czyta w miejscu plik tekstowy udostępniony na Slacku (markdown, kod, logi, JSON), do 1 MB, z flagą truncated, gdy trzeba było go przyciąć. Plików binarnych nie czyta, zwraca za to ich metadane. |
downloadFile | Pobiera dowolny plik, także binarny w rodzaju PDF-ów i obrazów, do przestrzeni roboczej projektu w /workspace/.speedwave/slack/, z limitem 50 MB, dzięki czemu otworzysz go integracją Dokumenty biurowe albo wprost z systemu plików. |
getUsers | Odnajduje osobę po dokładnym adresie e-mail. |
findUsers | Przybliżone wyszukiwanie po nazwie w całej przestrzeni roboczej, nieczułe na znaki diakrytyczne. Zwraca do 25 trafień i przypomina, że nazwy się powtarzają, więc przed napisaniem DM potwierdź, do kogo piszesz. |
Wysłanie wiadomości to jedyna czynność, która zostawia trwały ślad: reszta tylko czyta, a openDirectMessage co najwyżej otwiera rozmowę, po której nie widać niczego, dopóki nie padnie wiadomość.
Wyszukiwanie kanałów i osób opiera się na katalogu wczytywanym na żądanie i buforowanym (users.list/conversations.list Slacka, odświeżanym co godzinę), więc kolejne wyszukiwania nie biją za każdym razem do API Slacka.
Wysłanie wiadomości wymaga twojej zgody: przed każdym wpisem na kanale i każdą wiadomością prywatną Speedwave powtarza dokładnego odbiorcę oraz treść wiadomości słowo w słowo, a potem w tej samej turze czeka na twoje wyraźne przyzwolenie.
Tokeny dostępu tracą ważność po 12 godzinach, a Speedwave odświeża je po stronie hosta i za każdym razem rotuje token odświeżający, żeby pozostawał jednorazowy. Sam token odświeżający wygasa po 30 dniach bez aktywności i wtedy na karcie integracji wyświetla się baner z prośbą o ponowną autoryzację.
Skonfiguruj to
Dział zatytułowany „Skonfiguruj to”- Otwórz projekt w Desktop i przejdź do Integrations, a dalej do Slack.
- Kliknij Sign in with Slack i w oknie przeglądarki, które się otworzy, wybierz swoją przestrzeń roboczą.
- Kliknij Allow. Jeśli twoja przestrzeń robocza wymaga akceptacji aplikacji przez administratora, ktoś z uprawnieniami musi raz zatwierdzić aplikację Speedwave, zanim skończysz.
- Zaczekaj, aż karta pokaże Connected to z nazwą twojej przestrzeni roboczej, i kliknij restart now, żeby worker przejął dane uwierzytelniające.
Ogólny schemat, który powtarza się przy każdej integracji, opisuje Podłącz integrację.
Granice bezpieczeństwa
Dział zatytułowany „Granice bezpieczeństwa”Przy logowaniu prosimy tylko o uprawnienia na poziomie użytkownika, więc Speedwave potrafi dokładnie tyle, co twoje konto, i ani trochę więcej: nie założy kanału, nie zarchiwizuje go, nie zmieni mu nazwy, nikogo nie zaprosi ani nie ruszy ustawień przestrzeni roboczej. Czyta wyłącznie rozmowy, w których już jesteś. Nie ma sposobu, żeby podpiąć integrację do kanału, w którym cię nie ma.
Worker trzyma tylko krótkotrwały token dostępu, i to tylko do odczytu; token odświeżający oraz tożsamość twojej przestrzeni roboczej zostają w pliku, którego nie podmontowuje żaden kontener. O tym, jak taki podział powstrzymuje przejęty worker przed sięgnięciem do innych usług, przeczytasz w jak obsługiwane są dane uwierzytelniające.