Portail d'enseignement

E Suong
E Suong

Explorer les ressources

Accueil

Documentation technique

Comptes et synchronisation

Fiche de référence du code : fonctionnement, formats et limites. La disponibilité publique dépend de la version publiée.

Sommaire de la fiche

Cette fiche décrit le lot comptes destiné à la publication publique sélective, basé sur f68542e. Sa présence dans le candidat ne constitue pas une preuve de publication. Les classes, messages élèves, stockage élèves et cycle annuel restent sur la bêta ; voir son périmètre distinct.

Identité et droits du lot public

Better Auth gère les mots de passe et sessions, SQLite conserve profils, invitations et objets. Pas d’inscription libre ni de récupération autonome. Les comptes Élève et Professeur sont invités ; Administrateur et Webmestre exigent une autorité personnelle avec double authentification. Un administrateur ne peut pas gérer le webmestre. Le webmestre peut promouvoir un professeur actif, de confiance et muni de sa 2FA après reconnexion et confirmation.

La confiance est gérée dans le profil, sans modifier les quotas des jeux publics dans cette phase. L’exemption de salons reste propre à la bêta. Les sessions expirent après 4 heures sans activité pour un élève, 1 heure pour un professeur, 20 minutes pour un administrateur ou le webmestre. Les requêtes de fond ne prolongent pas la connexion. Les invitations sont temporaires, révocables et à usage unique. Le rétablissement d’accès est administré. Le cycle annuel reste hors du lot public. Une invitation propose un lien et un mot de passe temporaire avec identifiant, valables 48 heures et utilisables une seule fois au total. Le destinataire choisit son mot de passe puis revient à la connexion. Le temporaire est conservé uniquement sous forme de hash côté serveur et affiché une seule fois à sa génération.

Sources

src/lib/accounts/store.mjs : migrations, bibliothèque, profils, consommation atomique des invitations et propriété des objets. runtime.mjs : activation et ouverture. client.mjs : client explicite associé à un compte. src/pages/api/accounts/[...path].ts : passerelle, contrôles d’origine et limites. src/components/AccountLogin.astro : interface de connexion.

API personnelle

  • GET /api/accounts/session : identité et capacités, ou utilisateur nul.
  • GET /api/accounts/objects : liste des objets du propriétaire, avec révisions et marques de suppression.
  • GET /api/accounts/object?tool=boxplots&id=… : lecture d’un objet.
  • POST /api/accounts/object : écriture avec compte attendu, type, identifiant, révision et contenu, ou suppression explicite.

Le serveur déduit le propriétaire de la session et recontrôle l’identité dans la transaction. Une requête ne choisit jamais son propriétaire. Les conflits renvoient 409 ; aucune écriture ne doit réessayer avec une nouvelle révision sans décision de l’utilisateur. Une suppression marque l’objet et retire son contenu actif, sans prétendre supprimer les copies de sauvegarde du serveur. Les objets supprimés ne sont pas ressuscités sous le même identifiant.

Périmètre V1

Le stockage générique d’objets de ce pilote accepte les boîtes à moustaches : 100 objets au maximum par compte, marques de suppression comprises, et 256 Kio par objet. La synchronisation est explicite ; pas de file automatique hors ligne. Les boîtes personnelles ne sont pas écrites dans la sauvegarde locale anonyme. Le barème nominatif reste local. Les sessions et codes temporaires des jeux ne sont pas des sauvegardes personnelles.

Gestion des données

La page /gestion-des-donnees réutilise ces API pour l’inventaire, l’export JSON individuel et la suppression avec confirmation. Une session expirée ou un changement de compte masque les données précédentes. L’export de chaque objet contient un snapshot que l’outil boîtes peut reprendre. Il ne contient ni mot de passe ni jeton de connexion.

Validation et exploitation

Tester invitations concurrentes, récupération, révocation, isolation A/B, conflits, changements de compte en cours de requête, export et suppression. Les migrations et sauvegardes cohérentes disposent de scripts internes ; les détails d’accès au serveur restent dans la documentation privée du dépôt. Préserver configuration et base à chaque livraison ; ne jamais utiliser des données personnelles réelles pour les tests automatisés.

← Retour à la documentation