Kierowanie zgłoszeń do zespołów
Opisz obszary produktu w katalogu komponentów, żeby Kit mógł sugerować odpowiedni obszar dla zgłoszenia i pomóc przekazać je właściwemu zespołowi.
Po co tworzyć katalog
W małym programie jedna osoba triażuje wszystkie zgłoszenia. W miarę jak program rośnie, pojedyncza kolejka staje się wąskim gardłem: błąd w Payments i błąd w aplikacji mobilnej trafiają na ten sam stos, a właściwy inżynier zobaczy zgłoszenie tylko wtedy, gdy ktoś pamięta, żeby go do niego dopisać.
Rozwiązuje to katalog komponentów. Opisujesz obszary produktu, na przykład „Payments API”, „Mobile App” i „Marketing Site”. Kit dla każdego napływającego zgłoszenia sugeruje obszar, który je obejmuje, przypisuje zgłoszenie domyślnej osobie odpowiedzialnej za ten obszar i powiadamia kanał Slack odpowiedniego zespołu, gdy zgłoszenie zostanie zweryfikowane. Automatyczne dopasowanie daje sugestię. Przypisanie komponentu następuje dopiero po jej zatwierdzeniu lub wybraniu obszaru.
Note
Komponenty są dołączone i opcjonalne. Zgłoszenia działają także bez katalogu komponentów.
Czym jest komponent
Komponent to wpis w katalogu danego programu, opisujący jeden obszar produktu w ramach twojego programu ujawniania podatności (VDP). Każdy komponent ma następujące pola:
| Pole | Do czego służy |
|---|---|
| Nazwa | Etykieta obszaru pokazywana na zgłoszeniach i w Slacku (np. Payments API). Wymagana. |
| Opis | Krótkie podsumowanie tego, co obejmuje dany obszar. Klasyfikator AI czyta go, gdy decyduje, do którego obszaru pasuje niejednoznaczne zgłoszenie. Opisz go konkretnie. |
| Maski adresów URL (globy) | Globy adresów URL dopasowywane do punktu końcowego, którego dotyczy zgłoszenie (zobacz Maski adresów URL (globy) poniżej). |
| Kanał Slack | Kanał odpowiedniego zespołu. Otrzymuje powiadomienie „Przejmij” (Take it over), gdy skierowane zgłoszenie zostanie zweryfikowane. |
| Domyślna osoba odpowiedzialna | Członek zespołu, który jest automatycznie przypisywany do zgłoszeń skierowanych do tego obszaru, o ile zgłoszenie nie ma jeszcze przypisanej osoby. |
Obowiązkowa jest tylko nazwa. Komponent z samą nazwą nadal działa jako ręczna etykieta; dodaj maski adresów URL, kanał i osobę odpowiedzialną, żeby odblokować automatyczne sugestie i kierowanie.
Konfigurowanie komponentów
Otwórz VDP > Ustawienia programu > Komponenty. Zakładka Komponenty to katalog. Tutaj dodajesz, edytujesz i archiwizujesz obszary produktu.
Żeby dodać komponent, kliknij Nowy komponent, wypełnij pola i zapisz:
- Nadaj obszarowi jasną nazwę i konkretny opis
- Dodaj jedną lub więcej masek adresów URL, po jednym globie w wierszu
- Wybierz kanał Slack odpowiedniego zespołu (opcjonalnie)
- Wybierz domyślną osobę odpowiedzialną (opcjonalnie)
Nowi subskrybenci VDP widzą też opcjonalny krok „Skonfiguruj obszary produktu” podczas pierwszej konfiguracji. Możesz go wtedy wykonać albo pominąć i zbudować katalog później. Nic innego od niego nie zależy.
Maski adresów URL (globy)
Maski adresów URL to globy adresów URL, po jednym w wierszu, dopasowywane do punktu końcowego, którego dotyczy zgłoszenie, podanego przez badacza w zgłoszeniu. Służą do dopasowania według stałych reguł: jeśli punkt końcowy ze zgłoszenia pasuje do masek dokładnie jednego komponentu, Kit wskazuje ten komponent.
Jedna reguła: maska bez * na początku jest zakotwiczona na początku punktu końcowego. Ponieważ punkty końcowe to zwykle pełne adresy URL zaczynające się od https://, przy wyszukiwaniu fragmentu adresu dodaj * przed nim i po nim.
Dopasowanie nie rozróżnia wielkości liter, a * obejmuje również /, więc *pay* to prawdziwe dopasowanie podciągu.
Dla punktu końcowego https://app.example.com/api/pay/charge:
| Maska | Pasuje? | Dlaczego |
|---|---|---|
*pay* |
✅ |
* na początku i na końcu: dopasowuje „pay” w dowolnym miejscu ciągu |
*/api/pay/* |
✅ | Wieloznaczniki po obu stronach dopasowują ten segment ścieżki, gdziekolwiek się pojawi |
https://app.example.com/* |
✅ | Brak * na początku, ale punkt końcowy zaczyna się dokładnie od tego tekstu |
app.example.com/* |
❌ | Zakotwiczona na początku, ale punkt końcowy zaczyna się od https://, a nie app.
|
/api/pay/charge |
❌ | Zakotwiczona na początku: punkt końcowy nie zaczyna się od /api/…
|
Tip
Żeby dopasować fragment ścieżki, dodaj * z obu stron: *payments* lub */api/pay/*. Maski zakotwiczone na początku (https://…/*) zostaw na sytuacje, gdy celowo chcesz dopasować jeden konkretny host od pierwszego znaku.
Jak działa kierowanie
Automatyczne dopasowanie tylko sugeruje obszar. Samo otrzymanie sugestii nie zmienia przypisania zgłoszenia. Poniżej opisano jej przegląd i zatwierdzenie w interfejsie.
flowchart TD
submitted["Zgłoszenie przyjęte"] --> det{"Punkt końcowy pasuje do masek adresów URL dokładnie jednego komponentu?"}
det -- "Tak" --> match["Jednoznaczne dopasowanie z pełną pewnością"]
det -- "Brak dopasowania lub co najmniej dwa" --> ai["Klasyfikator AI zestawia zgłoszenie z opisami komponentów"]
ai --> fit{"Pewne najlepsze dopasowanie?"}
match --> suggested["Sugerowany obszar pokazany z pewnością i uzasadnieniem"]
fit -- "Tak" --> suggested
fit -- "Brak" --> nosuggestion["Zgłoszenie trafia bez sugerowanego obszaru"]
suggested --> staff{"Przegląd przez zespół"}
staff -- "Zaakceptuj sugestię" --> setarea["Obszar ustawiony na zgłoszeniu"]
staff -- "Wybierz inny obszar" --> setarea
staff -- "Zostaw puste" --> unset["Brak ustawionego obszaru"]
setarea --> owner{"Komponent ma domyślną osobę odpowiedzialną, a zgłoszenie nie ma właściciela?"}
owner -- "Tak" --> assigned["Domyślna osoba odpowiedzialna zostaje właścicielem zgłoszenia"]
owner -- "Nie" --> validated["Zgłoszenie zweryfikowane w triażu"]
assigned --> validated
validated --> slack{"Komponent ma kanał Slack?"}
slack -- "Tak" --> ping["Powiadomienie w Slacku z przyciskiem „Przejmij" (wysyła się raz na zgłoszenie)"]
slack -- "Nie" --> noping["Brak pinga"]
1. Kit sugeruje obszar
Gdy zgłoszenie trafia do systemu, Kit szuka pasującego komponentu w dwóch etapach:
- Dopasowanie deterministyczne: jeśli punkt końcowy ze zgłoszenia pasuje do masek adresów URL dokładnie jednego komponentu, Kit uznaje dopasowanie za jednoznaczne.
-
Klasyfikator AI: jeśli maski nie pasują do niczego albo niejednoznacznie pasują do dwóch lub więcej komponentów, klasyfikator AI zestawia zgłoszenie z opisami twoich komponentów i proponuje najlepsze dopasowanie albo
none.
Kit pokazuje sugestię tylko wtedy, gdy jest wystarczająco pewny. Jeśli nic nie pasuje, zgłoszenie trafia bez sugerowanego obszaru. Kierowanie nigdy nie blokuje ani nie opóźnia przyjęcia zgłoszenia.
2. Zespół potwierdza obszar
Na stronie zgłoszenia w panelu bocznym widać kartę „Obszar / odpowiedzialny zespół”. Gdy Kit ma sugestię, pojawia się ona jako „Sugerowany obszar” z procentem pewności i jednozdaniowym uzasadnieniem. Twój zespół może wtedy:
- Zaakceptować sugestię,
- wybrać inny obszar z listy,
- albo zostawić pole puste.
Zaakceptowanie komponentu ustawia obszar zgłoszenia oraz, jeśli komponent ma domyślną osobę odpowiedzialną, przypisuje tę osobę jako właściciela zgłoszenia (chyba że ma ono już właściciela). Obszar możesz w każdej chwili wyczyścić lub zmienić z tej samej karty.
3. Odpowiedzialny zespół dostaje powiadomienie
Gdy skierowane zgłoszenie zostanie zweryfikowane (przejdzie triaż; zobacz Triaż zgłoszeń), a jego komponent ma przypisany kanał Slack, Kit publikuje na tym kanale kartę powiadomienia z przyciskiem „Przejmij” (Take it over). Dowolny członek zespołu może go kliknąć, żeby przejąć zgłoszenie i zostać jego właścicielem. Powiadomienie jest wysyłane raz na zgłoszenie, więc ponowna weryfikacja czy zmiana przypisania nie zaśmieci kanału.
Note
Powiadomienie w Slacku jest wysyłane dopiero po weryfikacji, a nie przy przyjęciu zgłoszenia. Dzięki temu kanał zespołu pozostaje cichy, dopóki zgłoszenie nie zostanie potwierdzone jako prawdziwe i mieszczące się w zakresie. Slack skonfigurujesz w Ustawienia konta > Integracje.
Dobre i złe praktyki
| Rób tak | Nie rób tak |
|---|---|
Dodaj * z obu stron istotnego fragmentu ścieżki (*payments*) |
Pomijaj * na początku i licz na dopasowanie podciągu |
| Pisz konkretne opisy, bo klasyfikator AI je czyta | Polegaj wyłącznie na maskach adresów URL przy obszarach, których nie da się jednoznacznie rozróżnić po adresie URL |
| Traktuj każdą sugestię jako propozycję do potwierdzenia | Zakładaj, że sugerowany obszar jest już przypisany. Staje się nim dopiero po akceptacji |
| Ustawiaj domyślną osobę odpowiedzialną dla obszarów z jasnym właścicielem | Kieruj komponent na kanał Slack, do którego Kit nie należy |
| Archiwizuj obszary, które wycofujesz | Usuwaj historię. Archiwizacja ją zachowuje |
Zarządzanie przez narzędzia MCP
Katalog jest też dostępny dla agentów AI i klientów API poprzez narzędzia MCP, więc możesz budować katalog i kierować zgłoszenia programowo:
-
csirt_list_components: wyświetla katalog (odczyt) -
csirt_create_component/csirt_update_component: dodaje lub edytuje obszar (zapis) -
csirt_archive_component: wycofuje obszar (zapis) -
csirt_assign_component: ustawia, czyści lub pyta o sugerowany obszar na zgłoszeniu. Pomiń id komponentu, żeby dostać sugestię deterministyczną/AI bez wprowadzania zmian, a potem wywołaj ponownie z sugerowanym id, żeby ją potwierdzić.
Narzędzia zapisu wymagają zakresu csirt_write. Wywołanie csirt_assign_component z identyfikatorem komponentu od razu zapisuje przypisanie, więc najpierw sprawdź sugestię. Zasady potwierdzania działań asystenta i konfigurację połączenia opisuje poradnik Integracja z AI.
Archiwizowanie komponentu
Żeby wycofać obszar, kliknij Archiwizuj w zakładce Komponenty. Archiwizacja to miękkie usunięcie:
- Zgłoszenia już skierowane do komponentu zachowują swoją historię. Obszar nadal jest widoczny na tych zgłoszeniach.
- Nowe zgłoszenia przestają być do niego kierowane. Komponent znika z sugestii i z listy wyboru.
W ten sposób wycofasz obszar produktu, zachowując wcześniejsze przypisania. Interfejs udostępnia archiwizację zamiast trwałego usunięcia.
Lista kontrolna
- Utwórz komponent dla każdego obszaru produktu o wyraźnej granicy zespołu
- Napisz konkretny opis, z którego korzysta klasyfikator AI
-
Dodaj maski adresów URL z
*po obu stronach charakterystycznego fragmentu ścieżki (np.*payments*) - Ustaw kanał Slack, żeby odpowiedzialny zespół dostawał powiadomienie „Przejmij” (Take it over)
- Ustaw domyślną osobę odpowiedzialną dla obszarów z jasnym właścicielem
- Przy nowych zgłoszeniach potwierdzaj lub zmieniaj sugerowany obszar w karcie panelu bocznego
- Archiwizuj wycofywane obszary zamiast je usuwać
Co dalej
- Triaż zgłoszeń: tablica triażu, wskaźniki SLA i krok weryfikacji, który wyzwala powiadomienia zespołów
- Konfigurowanie programu: zakres, SLA, macierz nagród i reszta ustawień programu
- Integracja z AI: pełny zestaw narzędzi MCP, w tym narzędzia katalogu komponentów