Ai încredere într-o aplicație în care îți ții toată crescătoria doar dacă știi ce face cu ce îi dai. Pagina asta e scrisă pentru crescător, nu pentru programator: fără termeni pe care trebuie să îi cauți, fără promisiuni pe care nu le putem arăta. La capăt ai un link către descrierea tehnică, dacă vrei să mergi mai adânc.
Povestea unui „Salvează”
Ion e în crescătorie, cu telefonul într-o mână și un pui în cealaltă. Scrie numărul de pe inel, alege sexul, apasă Salvează. Pentru el s-a terminat acolo: pasărea apare în listă și poate trece la următoarea.
Între apăsare și pasărea din listă se întâmplă însă ceva ce merită spus pe îndelete, fiindcă aici se hotărăște cine poate vedea ce ai scris.
Telefonul împachetează rândul și îl trimite pe o legătură criptată. Nimeni de pe drum nu îl poate citi. Baza de date îl primește și pune prima întrebare care contează: cine trimite asta. Nu are încredere în telefon pe cuvânt, ci verifică sesiunea cu care ai intrat în cont.
Abia după ce știe că e Ion, rândul se scrie, iar pe el rămâne însemnat cine e proprietarul. Acel însemn nu e o etichetă decorativă. E cheia după care baza de date hotărăște, de fiecare dată când cineva cere ceva, dacă are voie să primească rândul acela. Regula se cheamă row-level security, securitate la nivel de rând, și e pornită pe fiecare tabel din baza noastră de date. Fără excepții.
Ion își vede pasărea în listă aproape instantaneu. Vecinul lui, care are cont în aceeași aplicație, nu o vede deloc, oricât ar căuta. Nu fiindcă interfața i-o ascunde, ci fiindcă baza de date refuză să i-o dea.

Unde stau datele
Baza de date stă pe servere din Uniunea Europeană. Asta e important pentru regulile europene de protecție a datelor, și e important și pentru un motiv mai simplu: e locul unde te afli și tu.
Pe fiecare tabel e pornită regula de mai sus. Porumbeii tăi, cursele tale, jurnalul tău, pozele tale: fiecare rând știe al cui e, și baza de date nu îl dă altcuiva. Crescătoria vecinului îți e invizibilă, a ta îi e invizibilă lui.
Asta nu e o setare pe care ți-o oferim și pe care ai putea uita să o pornești. E felul în care e construită baza de date, iar o modificare care ar adăuga un tabel neprotejat oprește lucrul înainte să ajungă la tine.

Ce nu vedem niciodată
Ca să știm dacă aplicația se deschide, dacă exportul e folosit, dacă cineva se împiedică într-un ecran, avem nevoie de un semnal că ceva s-a întâmplat. Atât. Semnalele astea sunt numărate pe un serviciu găzduit tot în Uniunea Europeană, iar lista lor completă e mai jos, scrisă o singură dată în codul aplicației și citită de aici. Nu e o listă pe care o repetăm din memorie într-o pagină: e chiar lista pe care o folosește aplicația.
Ce nu pleacă de pe telefon ca semnal de folosire: numerele de pe inele, numele păsărilor sau al crescătoriei, rezultatele, vitezele, pedigree-urile, pozele. Numărul inelului nu părăsește telefonul ca dată de analiză. Știm că aplicația a fost deschisă; nu știm al cui porumbel, ce serie, ce rezultat.

