Local-first
SQLite est la source opérationnelle. Une panne réseau ne bloque pas le pointage, le calcul ou l’export. Une contrainte locale interdit deux services simultanément et les requêtes utilisent des paramètres.
Authentification et jetons
Seules l’URL du projet et une clé publiable peuvent être compilées dans l’app. Celle-ci refuse les motifs service_role et sb_secret_. La session utilisateur utilise SecureStore avec un niveau d’accès limité à l’appareil déverrouillé.
PostgreSQL comme frontière
La table distante active et force Row Level Security. Quatre politiques explicites autorisent uniquement le propriétaire authentifié. Les champs d’identité sont immuables ; types, bornes, rôles, note, pause et durée sont contraints au niveau SQL.
Tests d’isolation
La suite pgTAP crée Alice et Bob, puis prouve que Bob ne lit pas, n’insère pas et ne transfère pas les lignes d’Alice. Le rôle anonyme ne possède même pas le droit d’interroger la table. Une seconde suite répète les scénarios via Auth et PostgREST avec la seule clé publique.
Achats vérifiés
Apple ou Google encaisse le paiement. Le client n’embarque qu’une clé SDK publiable et RevenueCat vérifie le droit Premium. Une vérification échouée verrouille les fonctions payantes ; les clés secrètes, le mode de test et les faux résultats sont refusés dans une version de production.
Site web
Ce site n’a aucun endpoint de collecte, traqueur ou script externe. Chaque réponse reçoit une Content Security Policy avec nonce unique, HSTS, interdiction d’iframe, refus des permissions sensibles et politique de référent stricte.
Limites responsables
Aucun logiciel ne peut promettre une sécurité absolue. Les dépendances de build sont auditées, mais certaines alertes peuvent concerner des outils de développement sans entrée contrôlée par l’utilisateur. Elles sont documentées plutôt que masquées par une rétrogradation risquée.
Signaler un problème
Un défaut de sécurité ou de confidentialité peut être signalé à Neroxa via information@neroxa.fr. Ne joignez jamais de bulletin réel, de mot de passe ou de donnée sensible au premier message.