Aller au contenu

Base de données

Quand ton app a besoin de comptes utilisateurs, de données privées par utilisateur ou de fichiers envoyés par ses utilisateurs, elle a besoin d’un backend. Highwind le crée pour toi en un clic : pas de compte à ouvrir ailleurs, rien à configurer. L’agent crée ensuite les tables, l’inscription et la connexion.

Une base de données

Des tables pour les données de ton app (tâches, réservations, catalogue…), protégées par des règles d’accès.

Des comptes utilisateurs

Inscription et connexion par e-mail et mot de passe, prêtes à l’emploi.

Un stockage de fichiers

Photos de profil, documents, pièces jointes : chaque utilisateur a son propre dossier.

Chaque app reçoit son propre projet Supabase, créé dans l’organisation de Highwind et hébergé en Europe (Paris). Ta base n’est partagée avec aucune autre app, et tu n’as pas besoin de compte Supabase.

Le backend n’est jamais activé sans toi. Deux façons de l’activer :

  1. Depuis la carte de choix. Quand ta demande implique des comptes ou des données partagées, l’agent te propose une carte À toi de choisir. Clique sur Base de données : la base est créée (« Création de la base… (moins d’une minute) »), puis l’agent reprend tout seul ce qui était prévu. Voir Où vont les données.

  2. Depuis les paramètres du projet. Ouvre Paramètres du projet → Backend et clique sur Activer le backend. La base est prête en moins d’une minute ; tu peux quitter la page pendant la création. Demande ensuite à l’agent ce que tu veux construire.

La section Backend affiche ensuite le Statut, l’URL de l’API et la Région.

Ajoute l'inscription et la connexion : chaque utilisateur retrouve ses propres
recettes, peut en ajouter, les modifier et les supprimer.

L’agent lit d’abord la structure de ta base, puis la modifie par migrations : de petits scripts SQL appliqués un par un (étape « Base de données : create recipes » dans le fil). Chaque migration est aussi enregistrée dans ton projet, dans supabase/migrations/, et fait partie du code téléchargé.

  • Des migrations petites et additives : l’agent ajoute des tables et des colonnes. Les opérations destructives (supprimer ou renommer une table ou une colonne, effacer des données) sont refusées, pour protéger tes données.
  • Des états soignés : chaque écran qui lit la base affiche un état de chargement, un état vide et un message d’erreur.
  • Pas de clé dans le code : l’app se connecte avec le client préparé par Highwind (src/lib/supabase.ts) et sa clé publique. L’agent n’utilise jamais la clé d’administration de la base.

La clé publique de ta base est visible dans le code de l’app : ce sont les règles d’accès (row level security, ou RLS) qui protègent les données. L’agent les active sur chaque table, dans la même migration que sa création :

  • une ligne qui appartient à un utilisateur porte son identifiant, rempli automatiquement, et seul cet utilisateur peut la lire, la créer, la modifier ou la supprimer ;
  • une donnée n’est visible des visiteurs non connectés que si elle est faite pour être publique, et seulement en lecture.

L’agent construit l’inscription, la connexion et la déconnexion par e-mail et mot de passe, partagées dans toute l’app, avec des pages protégées réservées aux utilisateurs connectés.

  • Mot de passe de 8 caractères au moins : le formulaire le vérifie, et, quand c’est possible, les mots de passe connus pour avoir fuité sont refusés.
  • Connecté dès l’inscription : l’utilisateur n’a pas d’e-mail de confirmation à attendre.
  • Pas d’e-mails envoyés : ni confirmation, ni lien de connexion magique, ni réinitialisation du mot de passe pour l’instant. La connexion avec Google ou d’autres comptes n’est pas disponible non plus.

Pour les fichiers envoyés par les utilisateurs, l’agent crée un espace de stockage (un « bucket ») dans une migration, avec des règles qui gardent chaque utilisateur dans son propre dossier : personne ne peut lire ou remplacer les fichiers d’un autre.

Permets à chaque utilisateur d'ajouter une photo à ses recettes, visible
seulement par lui.
  • L’aperçu et l’app publiée utilisent la même base. Les comptes et les données créés pendant tes tests dans l’aperçu se retrouvent dans l’app en ligne, et une nouvelle table créée par l’agent existe aussitôt pour les deux. Voir Mettre à jour une app publiée.
  • Restaurer une version ne touche pas à la base : le code revient en arrière, les tables et les données restent telles quelles.
  • Une app non publiée perd sa base après une période sans activité (24 h par défaut, indiquées dans Paramètres du projet → Backend), avec un message dans le chat. Si tu réactives le backend, les tables sont recréées, mais pas les données. Une app publiée garde sa base.
  • Supprimer le backend : Paramètres du projet → Zone de danger → Supprimer le backend. Les tables, les comptes des utilisateurs de l’app et ses fichiers sont supprimés définitivement ; le code de l’app ne change pas. Supprimer le projet supprime aussi son backend.