Użytkownicy i ścieżki

Persony i role

DataFlow AI jest zaprojektowany wokół czterech głównych person — inżyniera danych, analityka biznesowego, administratora platformy oraz stewarda danych. Każda persona ma w dokumentacji projektowej swojego nazwanego reprezentanta, a interfejs platformy jest adaptacyjny względem roli: układ, widżety, nawigacja i treść zmieniają się tak, aby pasować do pracy, którą dana persona faktycznie wykonuje. Ta strona przedstawia każdą personę, a następnie godzi trzy odrębne słowniki ról istniejące w kodzie.


Cztery persony

Doświadczenie użytkownika platformy zbudowano dla czterech osób. Każda ma nazwanego reprezentanta, dział, próbny adres e-mail oraz kolorowy znacznik roli widoczny w całym interfejsie.

PersonaReprezentantDziałE-mail (próbny)Kolor awataraZnacznik roli
Inżynier danychAnna Kowalska (AK)Zespół DWHanna.kowalska@polkomtel.com.plblue-600„Data Engineer” (niebieski)
Analityk biznesowyMarek Nowicki (MN)Zespół Analitykimarek.nowicki@polkomtel.com.plemerald-600„Business Analyst” (szmaragdowy)
Administrator platformyKatarzyna Zielińska (KZ)Platform Engineeringkatarzyna.zielinska@polkomtel.com.plpurple-600„Platform Admin” (fioletowy)
Steward danychTomasz Wiśniewski (TW)Data Governancetomasz.wisniewski@polkomtel.com.plamber-600„Data Steward” (bursztynowy)

Aktywna persona jest przechowywana w trwałym personaStore Zustand (klucz localStorage dataflow-persona) i odczytywana przy każdym renderowaniu, dzięki czemu panele renderują się ponownie w miejscu po przełączeniu persony — bez konieczności ponownego uwierzytelniania.

Role poza czterema personami

Kilka ról pojawia się w dokumentach pomocniczych, ale nie otrzymuje pełnoprawnego pulpitu persony: Specjalista ds. migracji (w praktyce inżynier danych pracujący w Centrum Migracji), Menedżer / Administrator obszaru roboczego (przegląda i zatwierdza wdrożenia potoków danych), Operator (Wykonywanie + Monitorowanie, z modelu RFI) oraz Przeglądający (tylko do odczytu). Wykorzystują one ponownie powierzchnie Inżyniera, Administratora lub Stewarda.


Inżynier danych — Anna Kowalska

Anna buduje i utrzymuje ponad 500 potoków danych ETL dla zespołu DWH. Jest zaawansowanym użytkownikiem platformy, pracując codziennie z płótnem wizualnym, SQL-em i Pythonem.

Cele

  • Niezawodne potoki danych, które działają zgodnie z harmonogramem bez niespodzianek.
  • Szybkie debugowanie, gdy coś zawiedzie w nocy.
  • Czysty, wersjonowany w Git kod, który przejdzie przegląd kodu.

Punkty bólu (stan obecny)

  • Informatica PowerCenter jest wolna w tworzeniu rozwiązań.
  • Brak integracji z Git w starszym oprzyrządowaniu.
  • Rozproszone narzędzia rozrzucają jej pracę po wielu niepołączonych aplikacjach.

Obowiązki

  • Projektowanie potoków danych we wszystkich trzech trybach — wizualnym, SQL i Python.
  • Zarządzanie połączeniami do Teradata, Snowflake, Databricks, SAP HANA, MSSQL i innych.
  • Planowanie potoków danych za pomocą wyrażeń cron.
  • Debugowanie awarii i stosowanie poprawek sugerowanych przez AI.
  • Przegląd kodu i promocja między środowiskami (Dev → Staging → Prod).
  • Migracja starszych rozwiązań za pośrednictwem Centrum Migracji.

Adaptacyjny pulpit

Pulpit główny Anny korzysta z układu grid-cols-3 z niebieskim gradientowym banerem powitalnym. Prezentuje PipelineStatusCard (np. „487/500 sprawnych” z segmentowanym zielono-czerwono-żółtym paskiem), RecentFailuresCard z klikalnymi pozycjami awarii, AIInsightsCard z niebieskim lewym obramowaniem i wskazówkami w formie żarówki, QuickActionsBar (Nowy potok / Wyświetl uruchomienia / Design Studio / Czat AI) oraz RecentActivityFeed wraz z 7-dniowym wykresem PipelineHealthTrend.

Pulpit główny inżyniera danych pokazujący kondycję potoków danych, ostatnie awarie i wskazówki AI
Adaptacyjny względem roli pulpit inżyniera danych Anny — trójkolumnowy układ z kartą statusu potoków danych i kanałem ostatnich awarii na czele.

Kluczowe metryki

MetrykaCel
Czas do pierwszego uruchomienia potoku danych< 2 godziny
Czas do pierwszego produkcyjnego potoku danych< 5 dni
Satysfakcja z wdrożenia> 4,5 / 5

Analityk biznesowy — Marek Nowicki

Marek tworzy doraźne ekstrakty danych i raporty. Nie jest programistą, a platformę zbudowano tak, by tak pozostało.

Cele

  • Samoobsługowy dostęp do danych bez konieczności programowania.

Punkty bólu (stan obecny)

  • Licencja Alteryx jest droga.
  • Ograniczona współpraca z resztą zespołu analityki.

Obowiązki

  • Budowanie ekstraktów za pomocą czatu AI lub projektanta wizualnego.
  • Planowanie potoków danych raportowych.
  • Monitorowanie świeżości danych.
  • Eksplorowanie katalogu danych poprzez Przeglądarkę danych.

Adaptacyjny pulpit

Pulpit główny Marka korzysta z układu grid-cols-2 ze szmaragdowym banerem gradientowym. Pokazuje MyPipelinesCard (znacznik „5/5”, wiersze ostatniego/następnego uruchomienia), AIChatQuickEntry (pole tekstu swobodnego oraz pigułki szybkich podpowiedzi otwierające AI Copilot), DataFreshnessCard z paskami świeżości dla poszczególnych źródeł, RecentExtractsCard z pobraniami Excel/CSV/Parquet oraz ScheduledPipelinesTable.

Pulpit główny analityka biznesowego pokazujący moje potoki danych, wejście do czatu AI i świeżość danych
Pulpit analityka biznesowego Marka — uproszczony dwukolumnowy układ z szybkim wejściem do czatu AI oraz kartą świeżości danych na czele.

Kluczowa metryka

MetrykaCel
Czas do pierwszego potoku danych< 30 minut

Administrator platformy — Katarzyna Zielińska

Katarzyna zarządza infrastrukturą, bezpieczeństwem i użytkownikami, którzy utrzymują DataFlow AI w działaniu.

Cele

  • Stabilna platforma z przewidywalnym czasem dostępności.
  • Łatwe skalowanie podczas szczytowego obciążenia (koniec miesiąca).
  • Kontrola kosztów względem miesięcznego budżetu.

Punkty bólu (stan obecny)

  • Ręczne zarządzanie serwerami.
  • Brak elastyczności chmury.

Obowiązki

  • Provisioning infrastruktury (Terraform, GKE Autopilot, Cloud SQL).
  • Federacja Keycloak i Active Directory.
  • Mapowanie ról RBAC (grupy AD → role platformy).
  • Rejestracja konektorów i testowanie łączności.
  • Konfiguracja monitorowania i alertowania (Grafana, PagerDuty).
  • Zarządzanie użytkownikami i obszarami roboczymi.
  • Śledzenie kosztów, reagowanie na incydenty i skalowanie.

Adaptacyjny pulpit

Pulpit główny Katarzyny korzysta z układu grid-cols-3 z fioletowym banerem gradientowym. Prezentuje SystemHealthCard (paski CPU/Pamięć/Dysk/Sieć oraz czas dostępności), CostTrackerCard (dziś/miesiąc/budżet z prognozą), ActiveUsersCard (liczba oraz paski dla poszczególnych ról), InfrastructureAlertsCard z przyciskami potwierdzenia, ScalingEventsCard oraz ServiceStatusTable.

Konsola administratora platformy pokazująca kondycję systemu, śledzenie kosztów i zarządzanie użytkownikami
Konsola administratora platformy Katarzyny — kondycja infrastruktury, śledzenie kosztów oraz powierzchnia zarządzania użytkownikami/obszarami roboczymi w jednym miejscu.

Steward danych — Tomasz Wiśniewski

Tomasz zapewnia jakość danych i ład danych w całym majątku danych Polkomtela.

Cele

  • Kompletne, godne zaufania pochodzenie danych.
  • Ciągłe monitorowanie jakości.
  • Wykazywalna zgodność z regulacjami.

Punkty bólu (stan obecny)

  • Rozproszone pochodzenie danych rozrzucone po Informatica, Teradata i narzędziach BI.

Obowiązki

  • Badanie pochodzenia danych w całym majątku danych.
  • Przegląd ładu i zatwierdzanie potoków danych przed wdrożeniem.
  • Zarządzanie regułami jakości i ich monitorowanie.
  • Utrzymywanie słownika biznesowego.
  • Przegląd ścieżki audytu i raportowanie zgodności (mapy danych RODO, inwentarz PII, audyty dostępu).

Adaptacyjny pulpit

Pulpit główny Tomasza korzysta z bursztynowego banera gradientowego i prezentuje kolejkę przeglądu ładu, wyniki jakości oraz punkty wejścia do pochodzenia danych. GovernanceQueueCard wyświetla potoki danych oczekujące na certyfikację, QualityScoreCard pokazuje ogólny procentowy wskaźnik jakości danych z deltą tydzień do tygodnia, a bezpośrednie odnośniki otwierają Eksplorator pochodzenia danych oraz Ścieżkę audytu.

Pulpit główny stewarda danych pokazujący kolejkę przeglądu ładu i wyniki jakości
Pulpit stewarda danych Tomasza — powierzchnia w bursztynowej kolorystyce skupiona wokół kolejki przeglądu ładu oraz wyniku jakości w skali całego majątku.

Trzy taksonomie ról

Kod zawiera trzy nakładające się słowniki ról, które nie są w pełni zgodne. Jest to znane źródło zamieszania, dlatego warto powiedzieć to wprost.

1. Persony UX (4)

Warstwa produktowa i UX korzysta z czterech person: engineer, analyst, admin, steward. Sterują one adaptacyjnym względem roli interfejsem oraz strażnikami tras frontendu.

2. Role realmu Keycloak (5–6)

Realm Keycloak dataflow dostarcza sześć ról realmu: org_admin, workspace_admin, developer, analyst, operator, viewer. org_admin jest rolą złożoną, która obejmuje pozostałe pięć. Zauważ, że nie ma roli realmu steward ani engineerdeveloper zastępuje inżyniera.

Przewodnik administratora opisuje również pięciorolowy widok powiązany z grupami AD:

Rola KeycloakGrupa ADDostęp w DataFlow
ADMINDL-DataFlow-AdminsPełny dostęp do systemu, zarządzanie użytkownikami
MANAGERDL-DataFlow-ManagersZarządzanie obszarami roboczymi, zatwierdzanie potoków danych, wgląd we wszystkie pulpity
ENGINEERDL-DataFlow-EngineersTworzenie/edycja/uruchamianie potoków danych, zarządzanie połączeniami
VIEWERDL-DataFlow-ViewersPulpity tylko do odczytu, status potoków danych, pochodzenie danych
STEWARDDL-DataFlow-StewardsŁad danych, reguły jakości, tagi katalogu

3. Role RBAC RFI (6 + OPA)

Odpowiedź RFI opisuje bardziej szczegółowy model z sześcioma wbudowanymi rolami plus Open Policy Agent do kontroli dostępu opartej na atrybutach:

RolaPotoki danychPołączeniaŚrodowiskaAdministracja
Org AdminPełnyPełnyWszystkiePełny
Workspace AdminPełny (w obszarze roboczym)Pełny (w obszarze roboczym)Wszystkie (w obszarze roboczym)Obszar roboczy
DeveloperRWX Dev; R Staging/ProdR Dev; brak ProdDev, StagingBrak
AnalystRX Dev; R Staging/ProdR DevDev, StagingBrak
OperatorX (Wykonywanie) + MonitorowanieRWszystkieMonitorowanie
ViewerRBrakWszystkie (Odczyt)Brak

Sam backend korzysta z hierarchicznego modelu DataFlowRoleADMIN(100) > ENGINEER(75) > ANALYST(50) > STEWARD(40) > VIEWER(25) — w którym rola nadaje każde uprawnienie, którego wymagany poziom jest równy jej własnemu lub niższy.

Inwersja hierarchii stewarda

W backendowym RBACService STEWARD znajduje się na poziomie 40 — poniżej ANALYST na poziomie 50. Steward dziedziczy więc jedynie uprawnienia hierarchiczne na poziomie VIEWER; cała władza specyficzna dla stewarda pochodzi z jawnych list @PreAuthorize na poszczególnych kontrolerach. Z kolei frontendowy model person nadaje steward rozbudowane uprawnienia ładu, jakości i katalogu. Oba modele faktycznie nie zgadzają się co do tego, jak potężny jest steward.


Jak odwzorowują się taksonomie

Trzy słowniki są godzone przez zakodowane na sztywno tabele mapowania w RBACService, KeycloakJwtConverter oraz frontendowym keycloak.ts.

Persona UXBackendowy DataFlowRoleRola realmu KeycloakRola RFI
Inżynier danychENGINEERdeveloperDeveloper
Analityk biznesowyANALYSTanalystAnalyst
Administrator platformyADMINorg_adminOrg Admin
Steward danychSTEWARD(brak roli realmu)

Nie ma persony dla MANAGER, Operator ani Viewer. Rola MANAGER ujawnia się wyłącznie w przepływie przeglądu i zatwierdzania w ramach ładu.

Rozwiązywanie nazw ról na bramie

Brama API odwzorowuje każdy surowy ciąg roli — role realmu, role klienta, nazwy grup, ścieżki grup — na pojedynczą DataFlowRole, przy czym wygrywa najwyższy poziom. Kilka przykładów:

Surowa rola / grupa→ DataFlowRole
PLK-BI-Admins, org_admin, workspace_admin, platform_adminADMIN
PLK-BI-Engineers, developer, operator, data_engineerENGINEER
PLK-BI-Analysts, analyst, business_analystANALYST
PLK-BI-Stewards, steward, data_stewardSTEWARD
PLK-BI-Viewers, viewerVIEWER
Nierozpoznana rolapominięta — brak niejawnego nadania

Jeśli JWT nie ma odwzorowywalnych ról, zbiór uprawnień jest pusty, a żądanie zostaje odrzucone — celowy wybór przeciw eskalacji uprawnień. Członkostwo w grupach AD synchronizuje się automatycznie z propagacją trwającą pięć minut lub krócej.

Steward w Keycloak

Ponieważ w dostarczonym eksporcie nie ma roli realmu steward, zaczytany użytkownik „Tomasz Zielinski / Data Steward” faktycznie posiada rolę realmu viewer. Prawdziwy steward otrzymałby władzę poprzez grupę AD, taką jak PLK-BI-Stewards (którą KeycloakJwtConverter potrafi odwzorować), a nie poprzez rolę realmu.


Zakres obszaru roboczego i środowiska

RBAC zagnieżdża się w hierarchii:

Organization
  └─ Workspace
       └─ Environment (Dev / Staging / Prod)
            └─ Resources (Pipelines, Connections, Datasets)
                 └─ Permissions (R / W / X / Admin)

Każdy obszar roboczy jest izolowanym środowiskiem z własnymi definicjami potoków danych, połączeniami, regułami jakości, politykami ładu oraz grafami pochodzenia danych. Użytkownik może należeć do wielu obszarów roboczych i przełącza się między nimi za pomocą selektora obszaru roboczego w górnym pasku.


Persona → widoczność nawigacji

Pasek boczny jest adaptacyjny względem roli: elementy, których dana persona nie może użyć, są całkowicie ukryte, a nie wyszarzone.

Element nawigacjiTrasaInżynierAnalitykAdministratorSteward
Pulpit/dashboard
Design Studio/design-studio
Centrum Monitorowania/monitor
Hub Ładu/governance
Przeglądarka danych/data-browser
Centrum Migracji/migration
Administracja/admin
AI Copilot/ai-copilot
Eksplorator pochodzenia danych/governance/lineage
Ścieżka audytu/governance/audit

Samo filtrowanie nawigacji okazało się niewystarczające — późniejsze działania naprawcze dodały strażnika ProtectedRoute, moduł RBAC tras permissions.ts oraz stronę AccessDenied, aby do adresów URL nie dało się dotrzeć przez zwykłe ich wpisanie. Frontendowy RBAC dotyczy wyłącznie UX; prawdziwe egzekwowanie odbywa się po stronie serwera na bramie oraz w każdej usłudze.


Dokąd dalej

Poprzednia
CDR i roaming w telekomunikacji