Ločenost podatkov, soglasja in odkrite meje
Klub nam zaupa podatke otrok. Zato je spodaj opisan mehanizem, ne zagotovilo: kako je ločenost narejena, kdo kaj vidi, kaj se izbriše in kje so meje — tudi tiste, ki nam niso všeč.
-
Ločenost je v bazi, ne v aplikaciji
Vsak klub je svoj najemnik. Pravilo ločenosti stoji pod vsakim zapisom v podatkovni bazi in velja tudi za lastnika baze — ne le za kodo, ki jo je mogoče pozabiti napisati.
-
Zaprto ob napaki
Če poizvedba teče brez konteksta kluba, vrne nič vrstic. Ne vrne vsega in ne javi napake — vrne nič. Napaka v naši kodi zato ne more postati razkritje tujih podatkov.
-
En kontekst, ena transakcija
Aplikacija do podatkov ne dostopa drugače kot skozi kontekst kluba, ki je postavljen znotraj ene same transakcije in ob njenem koncu izgine. Med sočasnimi zahtevki se ne prenaša.
-
Podpora vstopi le z zapisanim razlogom
Kadar za podporo potrebujemo pogled v vaš klub, vstopimo skozi isto pravilo ločenosti. Razlog je obvezen — brez njega vstopa ni — vstop in izhod pa se zapišeta v dnevnik dogodkov.
Ločenost je edina stvar na tej strani, ki je ni mogoče dodati naknadno. Zato je bila zgrajena pred prvo funkcijo — in zato ima svoj test, ki teče ob vsaki spremembi.
Vsaka sprememba izdelka mora prestati ta test. Če katera koli od petih trditev pade, se sprememba ne združi.
-
Klub vidi samo svoje članeDva kluba, ista poizvedba, dva različna rezultata.
-
Brez konteksta: nič vrsticNe vse, ne napaka — nič.
-
Kontekst ne pušča med povezavamiDvanajst sočasnih poizvedb, vsaka ostane pri svojem klubu.
-
Zapis v tuj klub je zavrnjenLočenost velja tudi pri pisanju, ne le pri branju.
-
Neveljaven klub je zavrnjen vnaprejPreden se sploh izvede prva poizvedba.
tenant_id = nullif(current_setting('app.tenant_id', true), '')::uuid
Brez konteksta je vrednost prazna, pogoj se ne izpolni in rezultat je prazen. To je celotno pravilo.
Mehanizem, ne obljuba: test živi v skladišču kode in je pogoj za združitev, ne izjava v nogi strani.
Skrbnik je nosilec računa
Pri mladoletnem članu je skrbnik tisti, ki ima dostop, daje soglasja in prejme račun. Otrokov zapis brez skrbnika ni samostojna enota.
-
Dostop
Mladoletni član nima dostopa, ki bi šel mimo skrbnika. Skrbništvo je zapisano razmerje med osebo in članom, ne le polje s telefonsko številko.
-
Soglasja
Pravico dajati in umikati soglasja nosi skrbnik. Pri članu je zapisano, kateri skrbnik je primarni in kateri ima to pravico.
-
Starost za lastno privolitev
Vezana je na državo kluba in je določena v kodi izdelka, ne v nastavitvi, ki bi jo lahko kdo v skrbniškem vmesniku prestavil. V Sloveniji je 15 let.
-
Plačnik
Klub pri vsakem otroku določi, kdo je plačnik — zato ločena starša lahko plačujeta vsak za svojega otroka. Plačnik je lahko tudi oseba, ki otroku ni skrbnik: delodajalec, občina ali sponzor.
Kaj od tega vidi starš v svoji aplikaciji, je opisano na strani Za starše →
Štiri tipizirana soglasja
Soglasje ni opomba v prostem besedilu. So štiri vrste, vsaka s svojim stanjem, z osebo, ki jo je podala, in s časom.
| Soglasje | Stanje | Podal | Zapisano |
|---|---|---|---|
| Posnetki za klubsko rabo Fotografije in video, ki ostanejo znotraj kluba. |
podano | skrbnica · A. K. | 3. 9. 2025 |
| Posnetki za javno objavo Fotografije in video na javnih kanalih kluba. |
umaknjeno | skrbnica · A. K. | umik 14. 1. 2026 |
| Zdravstveni podatki Obdelava alergij, stanj in zdravil — posebna vrsta podatkov. |
podano | skrbnik · M. K. | 3. 9. 2025 |
| Obveščanje Neobvezno. Brez njega član ostane vpisan in nič ne izgubi. |
ni podano | — | — |
Vzorčni prikaz. Ena zapisana odločitev na vrsto soglasja — ne dva nasprotujoča si zapisa o isti stvari. Umik se zapiše s časom umika in različico; prejšnje stanje se ne prepiše, kot da soglasja nikoli ne bi bilo.
vzorčni prikaz · demo klub imena in datumi so ponazoritev, ne podatki kluba
Zdravstveni podatki
Alergije, stanja in zdravila so strukturirana polja pri članu, ločena od ostalega zapisa — tako da jih je mogoče izbrisati, ne da bi izbrisali člana.
Ločen zapis
Zdravstveni podatki stojijo v svojem zapisu, vezanem na člana. Ločenost ni estetska — omogoča izbris samo tega dela.
Opombe ostanejo pri klubu
Interne opombe o članu vidi administrator kluba. Ko trener odide, ostanejo v klubu; ko odide član, gredo z njim.
Kontakt za nujne primere
Zapisan je pri članu, da je ob poškodbi dosegljiv na terenu, ne v mapi v pisarni.
Trener vidi člane svojih skupin — in samo njih: osebne in zdravstvene podatke, prisotnost ter poimenska poročila le za skupine, na katere je dodeljen. Zavrnjen poskus vpogleda v zdravstvene podatke se zabeleži. Trener brez dodeljene skupine ne vidi nobenega člana.
Klubski urnik ostane viden v celoti, ker je zaznava trkov pravilna le proti vsem terminom. Klubska poročila brez imen in prostovoljske izmene ostanejo klubski — to je zapisano tu in ne v drobnem tisku.
Pravice so privzeto zaprte
Vsak zaslon in vsaka globoka povezava zahtevata izrecno dovoljenje. Brez njega strežnik vsebine ne vrne — tudi če naslov nekdo prepošle naprej.
| Vloga | Vidi | Ne vidi |
|---|---|---|
| Administrator kluba Predsednik, tajnik |
Vse: člane, urnik, finance, poročila, nastavitve, prijave, prenos podatkov. | — |
| Blagajnik Kdor vodi knjige |
Cenike, račune, plačila in terjatve, finančna poročila, seznam članov in skupin (da ve, koga zaračunati). | Zdravstvenih podatkov otrok — denar jih ne potrebuje; urejanja članov, osebja in nastavitev kluba; pogovorov med starši. |
| Trener Vodja skupine |
Člane svojih skupin in njihove zdravstvene podatke, prisotnost teh skupin, klubski urnik (zaradi trkov), objave, prostovoljske izmene in poročilo o prisotnosti svojih skupin. | Cenikov, računov in terjatev; urejanja nastavitev kluba; urejanja osebnih podatkov člana; vrste prijav. |
| Starš Skrbnik |
Svoje otroke, njihov urnik in odpovedi, račune svoje družine, objave, prostovoljske izmene. | Drugih članov in njihovih skrbnikov; tujih zdravstvenih podatkov; financ kluba; internih opomb. |
| Član Polnoleten ali starejši mladoletnik |
Svoj urnik in objave ter zadeve svoje družine, enako kot skrbnik. | Enako kot pri staršu: ničesar, kar zadeva druge družine ali klubske finance. |
Vlog je pet in nič več; seštevajo se, zato je ista oseba lahko blagajnik in starš. Blagajnik obstaja prav zato, da klubu ni treba dati polnih pravic administratorja tistemu, ki vodi knjige — in ker denar ne potrebuje zdravstvenih podatkov otroka, jih ta vloga ne vidi. Nova funkcija je zaprta, dokler je nekdo izrecno ne odpre — ne obratno.
Deljena povezava · ponazoritev
GET /invoices/9f2c… → 403 · vsebina računa se ne vrne
Naslov računa, poslan naprej v skupinskem pogovoru, ne odpre ničesar. Nič ni vidno «samo zato, ker imaš povezavo».
Celoten seznam sklopov in njihovih meja je na strani Funkcije →
Hramba in izbris
Izbris je funkcija v izdelku, ne prošnja po e-pošti. Ima pa eno mejo, ki je ne moremo odpraviti, in dve pomanjkljivosti, ki ju ne skrivamo.
-
Izbris člana v izdelku
Odstrani člana in z njim njegove prijave na termine, zapise prisotnosti, fotografijo, soglasja, zdravstveni zapis in članstva v skupinah.
-
Meja: izdani računi
Dokler za člana obstaja račun, je izbris zavrnjen — izdanih računov ni dovoljeno brisati, ker mora evidenca zdržati pregled. V tem primeru se članu zapiše datum odhoda.
-
Zavrnjene prijavnice v izdelku
Zavrnjena ali vrnjena prijavnica vsebuje otrokove podatke brez podlage za članstvo. Po 60 dneh se osebni podatki iz nje samodejno izbrišejo; ostane le stanje in časovni žig, da statistika vrste ostane poštena.
-
Nastavljivi roki hrambe
Klub v nastavitvah vpiše, koliko mesecev po odhodu člana se njegovi osebni podatki izbrišejo — najmanj šest. Brez nastavitve se ne izbriše nič; privzetka namenoma ni. Pred shranitvijo klub vidi poimensko, čigav zapis bi naslednji prehod izpraznil.
-
Zahteva posameznika po izvodu podatkov
Starš ali član si izvod prenese sam, brez posredovanja kluba ali nas. Izvoz vedno zadeva prijavljenega in otroke, katerih skrbnik je — poti, po kateri bi si nekdo prenesel mapo tuje družine, ni.
Izvoz — pri svoji resnični meji
Celovit izvoz kluba je eno dejanje: upravitelj prenese datoteko ZIP s CSV-ji — člani, skrbniki, soglasja, urnik, prisotnost, računi in plačila. Zdravstveni podatki so v svoji datoteki. Poleg tega se še naprej ločeno izvozita dnevnik računov in dnevnik plačil za računovodstvo. Brez pogojev in brez pristojbine ob odhodu.
Kaj natanko je v obeh dnevnikih in kako ju uporabi računovodstvo, je opisano na strani Za odbor →
Gostovanje v potrjevanju
Tu bi na večini spletnih strani pisalo, da podatki ostanejo v EU. Pri nas piše, kdaj boste to dobili napisano tako, da se da preveriti.
«Lokacijo gostovanja in podizvajalce navedemo v pogodbi o obdelavi, preden podpišete. Do potrditve pogodbe te postavke ne navajamo kot dejstvo.»
Zato na tej strani ne boste našli imena ponudnika, imena regije ali trditve o lokaciji podatkov. Zaveza je sprejeta; pisnega dokazila še nismo objavili, in dokler ga ne objavimo, ta vrstica ni zelena.
Pogodba o obdelavi
Klub je upravljavec, youthstack je obdelovalec. To ni formalnost — določa, kdo o podatkih odloča in kdo jih sme samo obdelovati.
Klub odloča
Klub določi, kateri podatki se obdelujejo in zakaj. Podatki so klubovi tudi takrat, ko od nas odide.
Mi jih obdelujemo po njegovih navodilih — ne za svoje namene, brez oglasov in brez prodaje ali izmenjave podatkov s tretjimi.
Podpis pred podatki
Pogodbo o obdelavi podpišemo, preden v sistem naložimo prve resnične podatke. Prenos vašega seznama članov je del postavitve in se zgodi po podpisu, ne prej.
Podobdelovalci so navedeni v njej poimensko. Dokler pogodbe ne dobite v pregled, na tej strani o njih ne trdimo ničesar.
Preden naložimo karkoli
Predstavitev traja 30 minut in gre po vašem klubu: vaše skupine, kdo koga trenira, kdo plača. Prenos obstoječega seznama članov naredimo mi.
Pogodbo o obdelavi dobite v pregled, preden naložimo karkoli. · 30 minut · prenos podatkov naredimo mi · postavitev ≈ 75 minut vašega časa, razporejenih čez štiri dni