Przewodniki po funkcjach
Konsola administracyjna
Konsola administracyjna jest warstwą sterowania platformy DataFlow AI — jedną powierzchnią, na której administratorzy platformy zarządzają użytkownikami i rolami, przestrzeniami roboczymi, połączeniami z danymi i poświadczeniami, konfiguracją zabezpieczeń i SSO, kondycją infrastruktury, kosztami chmury oraz ogólnoplatformowym dziennikiem audytu.
Kto korzysta z konsoli administracyjnej
Konsola administracyjna jest wyłączną przestrzenią roboczą persony administratora platformy (Katarzyna Zielińska). Żadna inna persona nie ma do niej dostępu — strażnik tras ogranicza prefiks /admin do persony admin, a kontrolery UserController i WorkspaceController w backendowym metadata-service zabezpieczają każdą metodę przez hasRole('ADMIN').
Jeden niewielki wyjątek: persona opiekuna danych ma ograniczony dostęp do /admin/audit-log i /admin/access-reviews na potrzeby nadzoru nad ładem danych, lecz nie do pełnej konsoli.
Uwaga
Działania w konsoli administracyjnej mają duży wpływ — dezaktywacja użytkownika, rotacja klucza API czy zmiana roli RBAC wpływają na dostęp natychmiast. Każde działanie modyfikujące jest zapisywane w dzienniku audytu.
Układ modułu
Konsola jest zamontowana pod /admin (punkt wejścia src/pages/AdminConsole.tsx). Zastępuje standardowy pasek boczny aplikacji dedykowanym AdminSidebar z pięcioma głównymi pozycjami oraz stopką Szybkie statystyki.
+----------------------------------------------------------+
| DATAFLOW AI Katarzyna Z. [v] |
+----------------------------------------------------------+
| << Back to Platform |
| |
| ADMINISTRATION |
| [icon] Users & Workspaces -> /admin/users |
| [icon] Security -> /admin/security |
| [icon] Infrastructure -> /admin/infrastructure |
| [icon] Cost Management -> /admin/costs |
| [icon] Environments -> /admin/environments |
| |
| QUICK STATS |
| Active Users: 47 |
| Services: 8/8 UP |
| Month Cost: $3,847 |
+----------------------------------------------------------+
Pięć sekcji rozwija się w mniej więcej szesnaście podstron i paneli administracyjnych: siatka Użytkowników, siatka Przestrzeni roboczych, Mapowanie grup AD, okno dialogowe Tworzenia/Edycji użytkownika, panel szczegółów Przestrzeni roboczej, konfiguracja SSO/AD, macierz Ról RBAC, Aktywne sesje, Klucze API, dziennik audytu zabezpieczeń, stan klastrów GKE, Kondycja usług, Stan połączeń, Konfiguracja konektorów, Zarządzanie kosztami oraz Zarządzanie środowiskami.

Zarządzanie użytkownikami i przestrzeniami roboczymi
Trasa: /admin/users — punkt wejścia src/pages/admin/UserManagementPage.tsx.
Ta strona ma dwie karty — Użytkownicy i Przestrzenie robocze.
Karta Użytkownicy
+-----------------------------------------------------------------------+
| Users & Workspaces [+ Create User] |
+-----------------------------------------------------------------------+
| [Users] [Workspaces] |
+-----------------------------------------------------------------------+
| Search: [____________] Role: [All v] Status: [All v] |
+-----------------------------------------------------------------------+
| Name | Email | Role | Workspace | Last Active | Status | Actions |
|----------------|-------------------|---------------|-----------|-------------|--------|---------|
| Anna Kowalska | a.kowalska@plk.pl | Data Engineer | DWH Team | 09:12 today | Active | [E] [D] |
| Marek Nowak | m.nowak@plk.pl | Business Anal.| Analytics | 08:45 today | Active | [E] [D] |
+-----------------------------------------------------------------------+
| Showing 1-10 of 47 users [< 1 2 3 4 5 >] |
+-----------------------------------------------------------------------+
Filtrowalna siatka użytkowników pokazuje awatar (inicjały, pokolorowane według roli), imię i nazwisko, adres e-mail, plakietkę roli, przestrzeń roboczą, względny czas ostatniej aktywności, kropkę statusu (zielona — aktywny / szara — nieaktywny / czerwona — zablokowany) oraz wbudowane akcje Edytuj / Dezaktywuj w każdym wierszu. Pasek filtrów nad siatką filtruje według tekstu wyszukiwania, roli i statusu.
Poniżej siatki znajduje się zwijana tabela Mapowania grup Active Directory — każdy wiersz mapuje grupę AD na rolę platformy i zakres przestrzeni roboczej, wraz z bieżącą liczbą członków.
| Grupa AD | Rola platformy | Zakres przestrzeni roboczej | Członkowie |
|---|---|---|---|
| PLK-BI-Admins | Org Admin | Wszystkie przestrzenie robocze | 3 |
| PLK-BI-Engineers | Developer | DWH Team, CDR Processing | 14 |
| PLK-BI-Analysts | Analyst | Analytics Team | 8 |
| PLK-BI-Operations | Operator | Wszystkie przestrzenie robocze | 5 |
| PLK-BI-Governance | Data Steward | Governance Team | 4 |
| PLK-BI-Viewers | Viewer | Analytics Team | 13 |
Okno dialogowe Tworzenia / Edycji użytkownika
Okno dialogowe o szerokości 640 px obsługuje zarówno tworzenie, jak i edycję (tryb edycji jest wykrywany na podstawie obecności użytkownika). Pola: imię i nazwisko (wymagane, min. 2 znaki), e-mail (wymagany, musi pasować do *@plk.pl), rola, przestrzeń robocza, grupy AD, status (Aktywny/Nieaktywny) oraz przełączniki powiadomień dla e-maila, Slacka i dyżuru PagerDuty.
Ścieżka kliknięć — wdrożenie nowego użytkownika
- Otwórz
/admin/usersi pozostań na karcie Użytkownicy. - Kliknij + Create User (prawy górny róg) — otworzy się okno dialogowe użytkownika.
- Wprowadź imię i nazwisko oraz adres e-mail w formacie
*@plk.pl. - Wybierz Rolę (Data Engineer, Business Analyst, Data Steward, Developer, Operator, Viewer, Workspace Admin lub Org Admin).
- Wybierz Przestrzeń roboczą, do której należy użytkownik.
- Dodaj dowolne Grupy AD — to one sterują rolą i zakresem przestrzeni roboczej poprzez federację.
- Ustaw Status na Aktywny i wybierz kanały powiadomień.
- Kliknij Create User. Nowy użytkownik pojawi się w siatce; działanie zostanie zapisane w dzienniku audytu.
Karta Przestrzenie robocze
Karta Przestrzenie robocze pokazuje kafelek dla każdej przestrzeni roboczej — liczbę członków, liczbę środowisk, liczbę potoków danych, wykorzystaną przestrzeń dyskową oraz wartości procentowe wykorzystania limitów CPU/pamięci/dysku. Kliknięcie View Details otwiera panel wysuwany (lub podstronę) z listą członków, podsumowaniem dla każdego środowiska (Development / Staging / Production) oraz paskami limitów zasobów.
Co dzieje się w tle
api/admin.ts obsługuje użytkowników, przestrzenie robocze i dzienniki audytu. Faktyczna autoryzacja to hasRole('ADMIN') na kontrolerach UserController i WorkspaceController w metadata-service. Mapowania grup AD są okresowo synchronizowane z dostawcy federacji LDAP.
Konfiguracja zabezpieczeń
Trasa: /admin/security — punkt wejścia src/pages/admin/SecurityPage.tsx.
Strona Zabezpieczenia ma pięć kart: Konfiguracja SSO/AD, Role RBAC, Aktywne sesje, Klucze API, Dziennik audytu.
Konfiguracja SSO / AD
Widok konfiguracji tożsamości tylko do odczytu z przyciskiem Edit Config. Pokazuje ustawienia dostawcy tożsamości Keycloak/OIDC, ustawienia federacji LDAP Active Directory (domena, serwer LDAP, bazowy DN, bazy wyszukiwania, użytkownik bind, interwał synchronizacji) oraz politykę sesji.
| Ustawienie | Wartość |
|---|---|
| Dostawca tożsamości | Keycloak (OpenID Connect / OIDC) |
| Realm | dataflow |
| Klient SPA | dataflow-app (klient publiczny, PKCE S256) |
| Klient usługowy | dataflow-api (poufny, client-credentials) |
| Federacja AD | ldaps://ad.polkomtel.internal:636, READ_ONLY |
| Czas życia tokena dostępu | 15 minut |
| Bezczynność sesji SSO | 30 minut |
| Ochrona przed atakami brute-force | Włączona — blokuje po 5 niepowodzeniach, oczekiwanie do 900 s |
Role RBAC
Macierz uprawnień dziewięciu ról systemowych względem domen uprawnień — Potoki danych, Połączenia, Środowiska, Użytkownicy, System. Przycisk + Custom Role dodaje role niesystemowe.
| Rola | Potoki danych | Połączenia | Użytkownicy | System |
|---|---|---|---|---|
| Org Admin | Pełne | Pełne | Pełne | Pełne |
| Workspace Admin | Pełne (WS) | Pełne (WS) | Zarządzanie | Odczyt |
| Developer | CRUD+Wykonywanie | Odczyt+Użycie | Brak | Brak |
| Data Engineer | CRUD+Wykonywanie | CRUD | Brak | Brak |
| Business Analyst | Tworzenie+Odczyt+Wykonywanie | Odczyt+Użycie | Brak | Brak |
| Analyst | Odczyt+Wykonywanie | Odczyt+Użycie | Brak | Brak |
| Data Steward | Odczyt+Zatwierdzanie | Odczyt | Brak | Audyt |
| Operator | Wykonywanie+Monitorowanie | Odczyt | Brak | Monitorowanie |
| Viewer | Odczyt | Odczyt | Brak | Brak |
Backendowy RBACService sprowadza to do pięciu kanonicznych poziomów DataFlowRole — ADMIN 100, ENGINEER 75, ANALYST 50, STEWARD 40, VIEWER 25 — a dana rola przyznaje każde uprawnienie, którego wymagany poziom roli jest na jej poziomie lub niżej.
Aktywne sesje
Siatka aktualnie uwierzytelnionych sesji — użytkownik, adres IP, lokalizacja, urządzenie/przeglądarka/system operacyjny, czas rozpoczęcia, czas bezczynności — z akcją Revoke w każdym wierszu oraz Revoke All Sessions w nagłówku.
Klucze API
Siatka kluczy API platformy — nazwa, zamaskowany prefiks klucza, zakres, daty utworzenia/wygaśnięcia, status. Status jest oznaczany kolorem: zielony — aktywny, bursztynowy — wygasający (w ciągu 14 dni), czerwony — wygasły, szary — odwołany. Każdy wiersz udostępnia Rotate i Delete; przycisk + Generate Key tworzy nowy klucz.
Ścieżka kliknięć — przegląd dziennika audytu
- Otwórz
/admin/securityi wybierz kartę Dziennik audytu. - Ustaw Zakres dat na okres podlegający przeglądowi.
- Opcjonalnie filtruj według Kategorii (Auth, RBAC, API, Security, System, Data), Wagi (INFO/WARN/ERROR/CRITICAL) lub konkretnego użytkownika.
- Kliknij Apply Filters.
- Przejrzyj wiersze — wiersze WARN są oznaczone bursztynowo, wiersze ERROR — czerwono, wiersze CRITICAL — czerwono z białą plakietką. Każdy wiersz pokazuje znacznik czasu, wagę, kategorię, użytkownika, zdarzenie i szczegóły.
- Przeglądaj wyniki strona po stronie; wyeksportuj do SIEM, jeśli potrzebne jest głębsze dochodzenie.
Co dzieje się w tle
Dziennik audytu jest zapisywany przez AuditInterceptor bramy, który podwójnie zapisuje ustrukturyzowaną linię JSON dla SIEM oraz asynchroniczny wiersz w bazie danych dla każdego modyfikującego żądania /api/**. Wpisy są przechowywane przez 365 dni. Kontroler AuditLogController w metadata-service ogranicza dostęp do odczytu do hasRole('ADMIN').
Połączenia i poświadczenia
Połączenia z danymi to opatrzone poświadczeniami łącza między DataFlow AI a źródłowymi i docelowymi systemami Polkomtela (Teradata, Snowflake, SAP HANA, Databricks, Oracle, MSSQL, Sybase, Kafka, GCS oraz źródła plikowe). Administratorzy tworzą i testują połączenia; inżynierowie korzystają z nich w potokach danych w Design Studio.
Połączenia są prezentowane w sekcji Stan połączeń pulpitu Infrastruktury i zarządzane przez kreator połączeń osiągany z poziomu Rynku konektorów.
Ścieżka kliknięć — utworzenie połączenia
- Otwórz Rynek konektorów (
/marketplace) i wybierz konektor dla systemu docelowego lub otwórz kreator połączeń bezpośrednio. - Kliknij New Connection na kafelku zainstalowanego konektora — kreator otworzy się pod
/connections/new?connector={id}. - Wprowadź nazwę połączenia oraz szczegóły hosta/punktu końcowego.
- Wprowadź poświadczenia — są one przechowywane w postaci zaszyfrowanej i nigdy nie są zwracane jawnym tekstem.
- Wybierz zakres przestrzeni roboczej dla połączenia.
- Kliknij Test Connection — platforma wykona sprawdzenie łączności na żywo i zgłosi sukces albo błąd połączenia.
- Po pomyślnym sprawdzeniu kliknij Save. Połączenie staje się dostępne do wyboru jako węzeł źródłowy lub docelowy w Design Studio.
Co dzieje się w tle
Kontroler ConnectionController w metadata-service zabezpiecza odczyty pięcioma kanonicznymi rolami; tworzenie, edycja i testowanie wymagają roli ADMIN lub ENGINEER; usuwanie wymaga ADMIN. Kontroler ConnectorController obsługuje katalog rynku. Maskowanie PII na bramie usuwa poświadczenia i wartości wrażliwe z każdej odpowiedzi błędu.
Infrastruktura, koszty i środowiska
Pulpit infrastruktury
Trasa: /admin/infrastructure — punkt wejścia src/pages/admin/InfrastructurePage.tsx. Pojedynczy przewijalny pulpit z czterema sekcjami.
Stan klastrów GKE pokazuje dwa klastry obok siebie — klaster Control Plane (df-control-eu-c2) oraz klaster Data Plane (df-data-eu-c2), oba działające w trybie GKE Autopilot w regionie europe-central2. Każdy panel raportuje nazwę klastra, region, tryb, status działania, liczbę węzłów oraz wersję Kubernetes. Poniżej klastrów dwa wykresy wskaźnikowe Recharts pokazują wykorzystanie CPU (np. 34% z 80 rdzeni) oraz wykorzystanie pamięci (np. 52% z 320 GB), a po nich linia podsumowania podów — liczba podów działających, oczekujących, nieudanych i łączna.
Kondycja usług wymienia mikrousługi platformy ze wskaźnikiem działania/awarii dla każdej usługi; stopka Szybkie statystyki na pasku bocznym odzwierciedla to jako 8/8 UP. Stan połączeń raportuje bieżącą kondycję każdego zarejestrowanego połączenia z danymi. Konfiguracja konektorów prezentuje katalog zainstalowanych konektorów i ich ustawienia dla poszczególnych konektorów.
| Klaster | Rola | Region | Tryb | Węzły |
|---|---|---|---|---|
df-control-eu-c2 | Control plane | europe-central2 | Autopilot | 6 |
df-data-eu-c2 | Data plane | europe-central2 | Autopilot | 12 |
Zarządzanie kosztami
Trasa: /admin/costs — śledzenie i prognozowanie kosztów chmury. Strona pokazuje dzisiejsze wydatki, wydatki od początku miesiąca, skonfigurowany budżet, pasek postępu procentu budżetu oraz prognozę na koniec miesiąca. Koszty są wyświetlane w USD dla wydatków chmurowych, z PLN tam, gdzie to właściwe, zgodnie z konwencjami konsoli dla lokalizacji polskiej (daty DD.MM.YYYY). Pulpit główny administratora platformy odzwierciedla tę powierzchnię w CostTrackerCard, a api/monitoring.ts obsługuje także anomalie kosztów — nieoczekiwane skoki oznaczone do zbadania przez administratora.
Zarządzanie środowiskami
Trasa: /admin/environments — promocja i konfiguracja środowisk w Development, Staging i Production. Każda przestrzeń robocza posiada własny zestaw środowisk; panel szczegółów przestrzeni roboczej podsumowuje liczby potoków danych i przydział CPU dla poszczególnych środowisk. Zarządzanie środowiskami to miejsce, w którym administrator promuje konfigurację między poziomami i przegląda stan zasobów dla poszczególnych środowisk.
Co dzieje się w tle
api/monitoring.ts obsługuje podsumowania kosztów i anomalie; stan infrastruktury — kondycja klastrów, usług i połączeń — jest odczytywany z punktów końcowych monitorowania platformy. Wszystkie odczyty są po stronie serwera ograniczone do hasRole('ADMIN').
Mapa podstron administracyjnych
| Podstrona / panel | Trasa lub powierzchnia |
|---|---|
| Siatka użytkowników | /admin/users (karta Użytkownicy) |
| Siatka przestrzeni roboczych | /admin/users (karta Przestrzenie robocze) |
| Tabela Mapowania grup AD | sekcja na karcie Użytkownicy |
| Okno dialogowe Tworzenia / Edycji użytkownika | modal na karcie Użytkownicy |
| Panel szczegółów przestrzeni roboczej | panel wysuwany z karty Przestrzenie robocze |
| Konfiguracja SSO / AD | /admin/security (karta SSO) |
| Macierz Ról RBAC | /admin/security (karta RBAC) |
| Aktywne sesje | /admin/security (karta Sesje) |
| Klucze API | /admin/security (karta Klucze API) |
| Dziennik audytu zabezpieczeń | /admin/security (karta Dziennik audytu) |
| Stan klastrów GKE | /admin/infrastructure |
| Kondycja usług | /admin/infrastructure |
| Stan połączeń | /admin/infrastructure |
| Konfiguracja konektorów | /admin/infrastructure |
| Zarządzanie kosztami | /admin/costs |
| Zarządzanie środowiskami | /admin/environments |
Dokumentacja API
| Obszar | Moduł API |
|---|---|
| Użytkownicy, przestrzenie robocze, dzienniki audytu | api/admin.ts |
| Podsumowania kosztów i anomalie | api/monitoring.ts |
| Przeglądy dostępu | api/accessReviews.ts |
| Odwoływanie dostępu | api/accessRevocation.ts |
| Połączenia | api/connections.ts |
| Konektory | api/connectors (rynek) |
Wszystkie żądania administracyjne przechodzą przez bramę API. Brama weryfikuje token JWT Keycloak, egzekwuje oświadczenie audience i wstrzykuje nagłówki tożsamości X-User-*; nadrzędny metadata-service ponownie weryfikuje token JWT i stosuje zabezpieczenie metod hasRole('ADMIN').