Architektura

Cztery ruchome części,
jedna granica zaufania.

Wszystko działa na maszynach, którymi sterujesz. Collector to jedyny komponent wystawiony na internet; ClickHouse i API siedzą za nim. Jedna granica, jedno miejsce, w którym świat zewnętrzny spotyka Twoje wdrożenie.

Przepływ

Beacony wchodzą, uczciwe liczby wychodzą.

Twoje witrynyjednolinijkowy snippet · async · subdomena first-party · zablokowany do domeny
beacony
Collector :8090Node bez zależności · lista dozwolonych originów · scrubbing PII · dzienna tożsamość HMAC · surowe IP nigdy nie serializowane · replay z bufora dyskowego · dedup po event-id · limity zapytań · limity payloadu
zweryfikowane paczki
ClickHouse :8124zdarzenia TTL 24 h · materializowane rollupy 25 mies. · percentyle TDigest · siatki map ciepła
API + dashboard :8081uwierzytelnianie PBKDF2 · RBAC · post-filtr k-anonimowości · dziennik audytu · /api/v1 · migawki do udostępnienia
klucze ze scope'ami
MCP (stdio)15 narzędzi dla Claude / Cursor / Claude Code — pilnowane przez scope'y kluczy + listy dozwolonych witryn
Slack / webhooks
Alerty + przeglądsprawdzane co minutę z rollupów · cooldowny · cotygodniowy przegląd

Ścieżka rekordera (nagrywanie sesji, poziom 2) wchodzi przez ten sam collector i pozostaje wewnątrz tej samej granicy: fragmenty wysyłają się do collectora, są przechowywane 30 dni, a pola wejściowe są maskowane u źródła — wartości nigdy nie opuszczają przeglądarki.

Dlaczego to trzyma

Granica jest egzekwowana, nie obiecana.

Konfiguracje witryn podpisane Ed25519

Collector przyjmuje wyłącznie podpisane konfiguracje dla domen z listy dozwolonych witryn. Niepodpisany snippet albo ten sam kod wklejony na innej witrynie zostaje odrzucony na krawędzi błędem 403.

Postgres, gdy urośniesz

Płaszczyzna sterowania to dziś pliki JSON, z adapterem Postgresa za tym samym interfejsem. Skalowanie płaszczyzny sterowania to podmiana konfiguracji — nie projekt migracyjny.

Zero łańcucha dostaw

Collector, API, SDK, dashboard i serwer MCP nie niosą żadnych pakietów npm. Ścieżka serwowania to kod, który możesz przeczytać od końca do końca — na własnym sprzęcie.

Tożsamość, precyzyjnie

Wyznaczana po stronie serwera, rotowana dziennie.

Tożsamość to zanonimizowany pseudonim „urządzenie-dzień": HMAC-SHA256 rotowany dziennie (klucz HKDF, północ UTC) liczony z tego, co przeglądarka i tak wysyła, w przestrzeni nazw per witryna. Hash z wczoraj nie da się połączyć z dzisiejszym; Twoje witryny nie mogą łączyć swoich odwiedzających. Surowe IP żyje milisekundy w pamięci collectora — używane dla geo i jako wejście dziennego HMAC — i nigdy nie jest utrwalane, serializowane ani logowane.

Jedna granica.
Twoje maszyny za nią.

Cztery komponenty, jeden nasłuch wystawiony na internet, zero zewnętrznych endpointów. Wdrożone z Twoim DevOpsem, zweryfikowane w chwili wdrożenia, nudne na zawsze.