Prepojenie s sportup.sk
activity nie je samostatný projekt. Je to klient širšieho ekosystému sportup.sk, ktorý mu poskytuje autoritatívne registre osôb a organizácií.
Dva projekty, jasné rozdelenie
| Projekt | Doména | Zodpovednosť |
|---|---|---|
|
sportup.sk nadradený projekt |
sportup.sk |
Kto je kto v slovenskom športe — fyzické a právnické osoby, oficiálne číselníky (športy, regióny, kategórie), organizačná štruktúra |
|
activity tento projekt |
activity.sportup.sk |
Čo sa s nimi deje — aktivity, mentoring, komunikácia, fanúšikovské funkcie |
Toto rozdelenie zodpovedností je zámerné. "Kto je kto" je relatívne stabilná oblasť — osoba sa narodí, registruje, niekde pracuje, prípadne mení rolu pri postupe. "Čo sa deje" je vysoko frekventovaná oblasť — tréningy denne, zápasy týždenne, komunikácia neustále. Iný typ záťaže, iné DB query patterns, iné indexy.
Ako to funguje technicky
activity neduplikuje identitné dáta. Keď chce zobraziť meno športovca, dáta prichádzajú zo sportup.sk cez API integráciu. Lokálne držíme len malú cache (mirror) pre rýchle čítanie.
Hybridné master pre Person
Niektoré polia sú master-ované sportup.sk projektom (rodné číslo, oficiálne meno), niektoré lokálne v activity (preferovaný jazyk UI, vlastné role, history aktivít).
| Pole | Master |
|---|---|
| Meno, priezvisko, dátum narodenia | sportup.sk |
| Rodné číslo, národnosť | sportup.sk |
| Oficiálny email (registrácia) | sportup.sk |
| Preferovaný email (pracovný) | activity |
| Preferovaný jazyk UI | activity |
| Aktivitná história | activity |
| Aktívne mentoring cykly | activity |
Synchronizácia v praxi
Smer sportup.sk → activity
Keď v sportup.sk niekto zmení údaj osoby (napríklad zmena priezviska po sobáši), activity sa o tom dozvie cez:
- Real-time webhook — sportup.sk pošle notifikáciu activity, ktorá hneď updatne lokálnu kópiu
- Nightly reconcile — pre prípad zmeškaného webhook-u, denný cron job kontroluje zmeny
Smer activity → sportup.sk
Keď používateľ v activity zmení identitný atribút (napríklad nahláši zmenu priezviska), activity to neukladá rovno. Vytvorí návrh zmeny (proposal), ktorý prejde schvaľovacím procesom a pošle sa do sportup.sk. Po ich akceptácii webhook donesie zmenu späť do activity.
Pre čisto aplikačné polia (preferovaný jazyk, custom voľby) žiadny proposal nie je potrebný — píšeme rovno do nášho lokálneho záznamu.
Číselníky
Číselníky (športy, regióny, kategórie športovcov, ligy) sú primárne master-ované sportup.sk projektom. activity ich periodicky synchronizuje.
Niektoré číselníky existujú iba v activity — sú špecifické pre náš projekt:
mentoring_session_topic— témy mentoringového sedeniareferee_competencies— kompetenčné tagy rozhodcu (z UEFA observer report)coach_competencies,physio_competencies, ...
Tieto sa do sportup.sk nesynchronizujú. Sú lokálne pre activity.
Custom hodnoty per organizácia
Niektoré organizácie môžu chcieť pridať vlastné kompetenčné tagy. Pre to existuje flag
isCustom na hodnotách číselníka — izolované per tenant, nesynchronizované.
Otvorené API a rozšírenia
Niektoré API funkcie, ktoré activity potrebuje, ešte v sportup.sk projekte nie sú implementované. Poskytneme ich ako pull requesty:
- Webhook notifikácie pri zmene osoby alebo organizácie
- Incremental sync (parameter
changedSincena list endpointoch) - Bulk export endpoint pre initial backfill
- HMAC podpisovanie webhookov
Sú to štandardné API praktiky, nie naše tajomstvá — preto ich rovno prinesieme do open-source repa ltksolutions/sportup.sk.
Detail v dokumentácii
Toto je marketingový prehľad. Pre vývojárov, ktorí stavajú integráciu, je v dokumentácii detailný popis: