[{"data":1,"prerenderedAt":967},["ShallowReactive",2],{"blog-fr-download-your-supabase-backup":3,"blog-index-fr":621},{"id":4,"title":5,"body":6,"category":577,"cover":578,"coverAlt":579,"description":580,"draft":581,"extension":582,"faq":583,"image":598,"keywords":599,"meta":609,"navigation":610,"ogTitle":611,"path":612,"published":613,"seo":614,"stem":615,"tldr":616,"updated":613,"__hash__":620},"blog_fr\u002Fblog\u002Fdownload-your-supabase-backup.md","Pourquoi vous ne pouvez pas télécharger votre sauvegarde Supabase",{"type":7,"value":8,"toc":563},"minimark",[9,13,21,24,29,46,127,135,139,147,150,163,169,173,181,202,205,236,241,245,248,256,259,263,266,272,292,306,310,319,329,336,343,367,370,374,377,394,399,402,416,424,428,431,444,451,459,463,494,498,503,543,556],[10,11,12],"p",{},"Vous êtes sur un plan Supabase payant, donc vous avez des sauvegardes. Vous\nouvrez Database, puis Backups, et elles sont là : une liste de copies\nquotidiennes datées, chacune avec un bouton Restore. Vous cherchez le bouton qui\npermet de télécharger votre sauvegarde Supabase et de la garder chez vous, et il\nn'existe pas.",[10,14,15,16,20],{},"Rien n'est cassé. Voici ce que les anciens guides présentent encore de travers :\n",[17,18,19],"strong",{},"sur un projet récent, il n'y a aucune sauvegarde quotidienne à télécharger.","\nSupabase a basculé ses copies quotidiennes vers un autre type de sauvegarde, que\nSupabase peut restaurer pour vous et ne peut pas vous remettre. Le bouton de\ntéléchargement que décrivent ces guides appartenait à l'ancien type. Un fichier\nque vous détenez, vous le fabriquez désormais vous-même, et c'est un autre type\nde fichier.",[10,22,23],{},"Votre téléphone est le moyen le plus simple de voir la différence. La sauvegarde\nqu'il fait de lui-même chaque nuit est complète et exacte, et elle revient en une\nétape sur un téléphone connecté au même compte. Vous ne pouvez pas l'ouvrir sur\nun ordinateur portable et en sortir vos photos. Pour avoir des photos à garder\nn'importe où, vous les exportez, et vous obtenez un dossier de fichiers\nordinaires. La sauvegarde quotidienne de Supabase est désormais du premier type.\nLe fichier que vous pouvez détenir est du second.",[25,26,28],"h2",{"id":27},"puis-je-télécharger-ma-sauvegarde-supabase","Puis-je télécharger ma sauvegarde Supabase ?",[10,30,31,32,39,40,45],{},"Pas la quotidienne, si votre projet tourne sous Postgres 15.8.1.079 ou plus\nrécent. La documentation de Supabase sur les sauvegardes indique que\n",[33,34,38],"a",{"href":35,"rel":36},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[37],"nofollow","tous les projets sur cette version et au-delà utilisent des sauvegardes physiques",",\net ses notes de dépannage indiquent qu'une fois les sauvegardes physiques\nactivées, Supabase\n",[33,41,44],{"href":42,"rel":43},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Ftroubleshooting\u002Fdownload-logical-backups",[37],"ne génère plus le fichier de sauvegarde téléchargeable",".\nVous pouvez restaurer ces copies quand vous voulez. Vous ne pouvez en emporter\naucune.",[47,48,49,64],"table",{},[50,51,52],"thead",{},[53,54,55,58,61],"tr",{},[56,57],"th",{},[56,59,60],{},"La sauvegarde quotidienne Supabase (physique)",[56,62,63],{},"Un dump que vous faites vous-même (logique)",[65,66,67,79,95,106,117],"tbody",{},[53,68,69,73,76],{},[70,71,72],"td",{},"Ce que c'est",[70,74,75],{},"Un instantané des fichiers que Postgres garde sur disque",[70,77,78],{},"Du SQL : les instructions pour reconstruire chaque table, puis les lignes",[53,80,81,84,87],{},[70,82,83],{},"Qui la restaure",[70,85,86],{},"Supabase, quand vous cliquez sur Restore",[70,88,89,90,94],{},"Vous, avec ",[91,92,93],"code",{},"psql",", dans n'importe quel Postgres",[53,96,97,100,103],{},[70,98,99],{},"Où elle peut aller",[70,101,102],{},"Ce projet, ou un nouveau dans la même région",[70,104,105],{},"Un autre projet, un autre compte, votre portable, votre serveur",[53,107,108,111,114],{},[70,109,110],{},"Téléchargeable",[70,112,113],{},"Non",[70,115,116],{},"C'est déjà un fichier",[53,118,119,122,124],{},[70,120,121],{},"Survit à la perte de l'accès au compte",[70,123,113],{},[70,125,126],{},"Oui, si vous la gardez ailleurs",[10,128,129,130,134],{},"La dernière ligne mérite d'être relue. Supabase indique que lorsqu'un projet\nest supprimé, il efface toutes les données associées,\n",[33,131,133],{"href":35,"rel":132},[37],"y compris les sauvegardes stockées dans S3",".\nSupprimez le projet, et ses copies quotidiennes partent dans le même geste.",[25,136,138],{"id":137},"quelle-est-la-différence-entre-une-sauvegarde-physique-et-une-sauvegarde-logique","Quelle est la différence entre une sauvegarde physique et une sauvegarde logique ?",[10,140,141,142,146],{},"L'endroit d'où la copie est tirée. Une sauvegarde physique copie les fichiers\nque Postgres écrit lui-même sur disque, ce que Supabase décrit comme\n",[33,143,145],{"href":35,"rel":144},[37],"un instantané du répertoire sous-jacent de la base",".\nUne sauvegarde logique demande à la base de se décrire elle-même en SQL, table\npar table et ligne par ligne, et écrit cette description dans un fichier texte.",[10,148,149],{},"Chacune est bonne à quelque chose de différent. Une copie physique se prend vite\net se remet vite en place, et elle revient exactement telle qu'elle était. Elle\nne peut être lue que par le même type d'installation Postgres que celle d'où\nelle vient, ce qui chez Supabase veut dire les machines de Supabase elles-mêmes.\nUne copie logique se rejoue plus lentement et prend plus de place, et n'importe\nquel Postgres de la même version ou plus récent peut la charger. C'est encore la\nsauvegarde du téléphone et le dossier exporté, et seul le second est un fichier\nque vous pouvez détenir.",[10,151,152,153,158,159,162],{},"Le bouton de téléchargement dont on se souvient était du type logique. La\n",[33,154,157],{"href":155,"rel":156},"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fsupabase\u002Fblob\u002Fb34da8d7eca562be5e1341413d140dd76ee19f25\u002Fapps\u002Fdocs\u002Fcontent\u002Fguides\u002Fplatform\u002Fbackups.mdx",[37],"documentation de Supabase elle-même, en 2025",",\nexpliquait que la tâche quotidienne lançait ",[91,160,161],{},"pg_dumpall",", compressait le fichier\nSQL et le stockait, et que les sauvegardes physiques chargent moins la base et\névitent de verrouiller vos tables pendant de longues périodes. La même page\nprécisait que les copies physiques ne peuvent pas être téléchargées depuis la\nsection Backups du tableau de bord.",[164,165],"diagram",{"alt":166,"caption":167,"src":168},"Deux couloirs. Dans celui du haut, un instantané scellé à l'intérieur d'une limite Supabase en pointillés atteint deux projets situés dedans, tous deux cochés, et une troisième flèche est barrée à la limite, avant un projet Supabase, un portable et un serveur dessinés en gris. Dans celui du bas, un simple fichier hors de toute limite atteint ces trois mêmes destinations, éclairées et cochées.","La copie quotidienne peut retourner chez Supabase et nulle part ailleurs. Un dump que vous faites vous-même va partout où tourne un Postgres.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fwhere-each-copy-can-go-1600x640.png",[25,170,172],{"id":171},"comment-savoir-lequel-mon-projet-utilise","Comment savoir lequel mon projet utilise ?",[10,174,175,176,180],{},"Cherchez une option de téléchargement sur la page Backups. Ouvrez Database, puis\nBackups, dans votre tableau de bord Supabase. Si chaque copie datée propose un\nmoyen de la télécharger, votre projet est encore sur des sauvegardes logiques.\nSi chacune propose Restore et rien d'autre, il est sur des sauvegardes\nphysiques, et\n",[33,177,179],{"href":155,"rel":178},[37],"l'ancienne documentation de Supabase utilisait exactement ce test",".",[10,182,183,184,187,188,191,192,195,196,199,200,180],{},"La seconde vérification est le numéro de version. Il est affiché sous Project\nSettings, puis General. Tout ce qui part de ",[91,185,186],{},"15.8.1.079"," signifie des\nsauvegardes physiques. Lisez-le de gauche à droite : une version qui commence\npar ",[91,189,190],{},"17"," est plus récente que n'importe quelle ",[91,193,194],{},"15",", et ",[91,197,198],{},"15.8.1.100"," est plus\nrécente que ",[91,201,186],{},[10,203,204],{},"Deux cas n'ont besoin d'aucune vérification :",[206,207,208,225],"ul",{},[209,210,211,219,220,224],"li",{},[17,212,213,214,218],{},"La ",[33,215,217],{"href":216},"\u002Fblog\u002Fsupabase-point-in-time-recovery","restauration à un instant précis","\nest activée."," Elle repose par définition sur des sauvegardes physiques.\nSupabase précise aussi que si vous\n",[33,221,223],{"href":35,"rel":222},[37],"désactivez la restauration à un instant précis",",\nil continue de prendre des sauvegardes physiques, donc le téléchargement ne\nrevient pas.",[209,226,227,230,231,235],{},[17,228,229],{},"Vous êtes sur le plan gratuit."," La page Backups n'a rien à télécharger ni à\nrestaurer, parce que le plan gratuit ne vous donne aucune sauvegarde\nquotidienne utilisable.\n",[33,232,234],{"href":233},"\u002Fblog\u002Fback-up-supabase-free-tier","Faire une copie sans terminal"," est le point\nde départ.",[164,237],{"alt":238,"caption":239,"src":240},"Deux listes de cinq copies datées côte à côte, l'une surmontée d'un simple fichier, l'autre d'un instantané scellé. Dans la liste de gauche, chaque ligne porte une marque de restauration et une marque de téléchargement. Dans celle de droite, chaque ligne porte la même marque de restauration, et la place de la marque de téléchargement est un contour vide en pointillés.","La même page sur deux projets. À gauche, les anciennes sauvegardes logiques, chacune avec son téléchargement. À droite, des sauvegardes physiques : restauration seulement.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fwhich-one-you-have-1600x620.png",[25,242,244],{"id":243},"contre-quoi-chacune-me-protège-t-elle","Contre quoi chacune me protège-t-elle ?",[10,246,247],{},"La sauvegarde quotidienne vous protège contre ce qui tourne mal à l'intérieur du\nprojet. Un fichier que vous détenez couvre aussi la perte du projet lui-même.",[10,249,250,251,255],{},"Le premier type de perte, c'est vous qui le causez. Une suppression qui a emporté\nplus de lignes que prévu, une migration écrite par un agent IA et que vous avez\nvalidée, un script pointé sur la mauvaise table. La copie quotidienne est\nexactement l'outil pour ça : vous choisissez hier, vous cliquez sur Restore, et\nle projet est remis en place. Jusqu'où elle remonte dépend de votre plan, et\n",[33,252,254],{"href":253},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","savoir sur quel plan vous êtes"," prend\nenviron deux minutes.",[10,257,258],{},"Le second type n'implique aucune erreur dans la base. Une carte expirée pendant\nvotre absence, un identifiant que vous ne pouvez pas récupérer, un projet que\nquelqu'un a supprimé. Les copies sont derrière la même porte que le projet, et\nc'est la porte qui s'est refermée. La sauvegarde de votre téléphone fonctionne\npareil : elle vous sauve si le téléphone tombe à la mer, et elle ne vous sert à\nrien le jour où vous ne pouvez plus vous connecter au compte où elle se trouve.\nSupabase garde ses sauvegardes avec la plateforme parce que c'est ce qui permet\nune restauration en un seul bouton. Une copie qui survit au compte doit être\nstockée ailleurs, ce qui chez Supabase veut dire un dump logique sorti du compte.",[25,260,262],{"id":261},"que-veut-dire-restaurer-pour-chacune","Que veut dire restaurer, pour chacune ?",[10,264,265],{},"Pour la copie quotidienne, Supabase fait le travail et vous choisissez où elle\natterrit. Pour un fichier que vous détenez, vous faites le travail, et il peut\natterrir n'importe où.",[10,267,268,271],{},[17,269,270],{},"Restaurer la copie quotidienne dans le même projet"," remplace la base par la\ncopie que vous choisissez. Supabase indique que le projet est inaccessible\npendant l'opération et qu'une base plus grosse prend plus de temps.",[10,273,274,277,278,283,284,287,288,291],{},[17,275,276],{},"La restaurer dans un nouveau projet"," est une fonction payante que Supabase\nappelle\n",[33,279,282],{"href":280,"rel":281},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fclone-project",[37],"Restore to a New Project",",\nencore marquée bêta. Elle crée un projet distinct dans la même région, avec vos\nutilisateurs et leurs mots de passe hachés, et elle est facturée comme un\nsecond projet. Un avertissement sur la même page passe facilement inaperçu. Elle\ncopie la base entière, y compris les extensions qui agissent vers l'extérieur\ncomme ",[91,285,286],{},"pg_cron"," et ",[91,289,290],{},"pg_net",", et ces tâches démarrent dès que la restauration est\nterminée. Si une tâche planifiée de votre app envoie des e-mails ou appelle une\nAPI de paiement, le nouveau projet se met à le faire aussi, dès l'instant où il\nexiste.",[10,293,294,297,298,300,301,305],{},[17,295,296],{},"Restaurer un fichier que vous détenez"," consiste à le rejouer avec ",[91,299,93],{}," dans\nce que vous visez : un nouveau projet Supabase, un projet sur un autre compte,\nou un Postgres sur votre propre ordinateur.\n",[33,302,304],{"href":303},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Comment restaurer une sauvegarde Supabase","\npasse en revue les commandes, et ce qui reste cassé une fois qu'elles ont fini.",[25,307,309],{"id":308},"comment-obtenir-une-copie-de-ma-base-supabase-sous-forme-de-fichier","Comment obtenir une copie de ma base Supabase sous forme de fichier ?",[10,311,312,313,318],{},"Faites vous-même un dump logique. Supabase le publie dans son\n",[33,314,317],{"href":315,"rel":316},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fmigrating-within-supabase\u002Fbackup-restore",[37],"guide de sauvegarde et de restauration","\nsous la forme de trois commandes, chacune écrivant un fichier :",[320,321,326],"pre",{"className":322,"code":324,"language":325},[323],"language-text","supabase db dump --db-url \"postgresql:\u002F\u002F…\" -f roles.sql --role-only\nsupabase db dump --db-url \"postgresql:\u002F\u002F…\" -f schema.sql\nsupabase db dump --db-url \"postgresql:\u002F\u002F…\" -f data.sql --use-copy --data-only\n","text",[91,327,324],{"__ignoreMap":328},"",[10,330,331,332,335],{},"La chaîne de connexion se trouve derrière le bouton Connect en haut de votre\nprojet, avec le mot de passe de votre base à la place de l'espace réservé. La\nCLI Supabase a besoin de Docker, car elle exécute ",[91,333,334],{},"pg_dump"," dans un conteneur au\nlieu d'utiliser celui de votre ordinateur.",[10,337,338,339,180],{},"Gardez les trois fichiers. Le deuxième seul est la forme de vos tables sans une\nseule ligne dedans, et\n",[33,340,342],{"href":341},"\u002Fblog\u002Fsupabase-backup-auth-users","vos utilisateurs ne sont que dans le troisième",[10,344,345,346,348,349,354,355,357,358,363,364,366],{},"Vous pouvez aussi lancer ",[91,347,334],{}," directement. Deux choses à savoir d'abord.\n",[33,350,353],{"href":351,"rel":352},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fself-hosting\u002Frestore-from-platform",[37],"Supabase indique","\nqu'un ",[91,356,334],{}," brut emporte les schémas internes de Supabase avec les vôtres,\net que les rejouer provoque des erreurs de permissions au retour. Et\n",[33,359,362],{"href":360,"rel":361},"https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fapp-pgdump.html",[37],"Postgres documente","\nque ",[91,365,334],{}," refuse de faire le dump d'un serveur d'une version majeure plus\nrécente que la sienne, donc une copie ancienne sur votre ordinateur refuse de\ndémarrer plutôt que d'écrire un mauvais fichier.",[10,368,369],{},"Rangez les fichiers ailleurs que dans votre compte Supabase, et pas seulement sur\nvotre portable.",[25,371,373],{"id":372},"puis-je-restaurer-une-sauvegarde-supabase-sur-ma-propre-machine","Puis-je restaurer une sauvegarde Supabase sur ma propre machine ?",[10,375,376],{},"Une sauvegarde logique, oui, dans un Postgres de la même version majeure ou plus\nrécent. La copie quotidienne physique ne se restaure nulle part ailleurs que\nchez Supabase.",[10,378,379,380,384,385,389,390,393],{},"La règle des versions vient de Postgres lui-même. Sa documentation indique qu'un\ndump\n",[33,381,383],{"href":360,"rel":382},[37],"devrait pouvoir se charger dans des versions plus récentes","\net qu'il n'est pas garanti qu'il se charge dans une plus ancienne, pas même celle\ndont il vient. Le guide de Supabase pour\n",[33,386,388],{"href":351,"rel":387},[37],"passer un projet de la plateforme à Supabase auto-hébergé","\nmontre à quoi cela ressemble. La plateforme peut tourner sous Postgres 17 alors\nque l'image auto-hébergée est en 15 par défaut, et le fichier de données\ncontient alors une ligne, ",[91,391,392],{},"SET transaction_timeout = 0",", que Postgres 15 ne\nreconnaît pas.",[164,395],{"alt":396,"caption":397,"src":398},"Deux couloirs. Dans celui du haut, un fichier quitte une base marquée 15 et arrive dans une base marquée 17, coché. Dans celui du bas, un fichier quitte une base marquée 17 et s'arrête devant une base marquée 15, barré.","Un dump va vers l'avant. C'est en le chargeant dans un Postgres plus ancien que celui d'où il vient que les erreurs commencent.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fforwards-not-backwards-1600x560.png",[10,400,401],{},"Ces trois mêmes fichiers sont aussi le moyen de quitter Supabase complètement.\nCe guide est la voie pour faire tourner Supabase sur un serveur à vous, et le\ndécalage de versions est la première chose contre laquelle il met en garde.",[10,403,404,405,408,409,411,412,415],{},"Sur votre propre ordinateur, la CLI Supabase lance une copie locale de Supabase\ndans Docker quand vous tapez ",[91,406,407],{},"supabase start",". Rejouez-y les trois fichiers avec\nla commande ",[91,410,93],{}," du guide de sauvegarde et de restauration de Supabase, en\nvisant ",[91,413,414],{},"postgresql:\u002F\u002Fpostgres:postgres@localhost:54322\u002Fpostgres",", et vos données\nsont lisibles sur votre propre ordinateur, sans aucun compte.",[10,417,418,419,423],{},"Il reste un endroit où Supabase propose encore une sauvegarde à télécharger. Un\nprojet gratuit mis en pause au-delà de sa fenêtre de restauration remplace le\nbouton Restore par le téléchargement de la dernière copie prise avant la pause,\net\n",[33,420,422],{"href":421},"\u002Fblog\u002Fsupabase-project-paused-recover","que faire de ce fichier"," est un article\nà part.",[25,425,427],{"id":426},"quest-ce-qui-ne-se-trouve-dans-aucune-des-deux-copies","Qu'est-ce qui ne se trouve dans aucune des deux copies ?",[10,429,430],{},"Vos fichiers envoyés, vos Edge Functions et la plupart des réglages de votre\nprojet.",[10,432,433,434,438,439,443],{},"Supabase indique que les sauvegardes de la base\n",[33,435,437],{"href":35,"rel":436},[37],"n'incluent pas les objets stockés via la Storage API",".\nLa base conserve une ligne qui décrit chaque fichier, et le fichier lui-même vit\nailleurs, donc aucune sauvegarde de la base, sur aucun plan, ne contient ce que\nvos utilisateurs ont envoyé.\n",[33,440,442],{"href":441},"\u002Fblog\u002Fsupabase-storage-backup","Sauvegarder Storage"," est un travail à part.",[10,445,446,447,450],{},"La liste que donne Supabase pour\n",[33,448,282],{"href":280,"rel":449},[37],"\nest un bon inventaire du reste : Edge Functions, réglages d'authentification et\nclés d'API, réglages Realtime, réglages des extensions et réplicas en lecture\nsont tous à reconfigurer à la main.",[10,452,453,454,458],{},"Un manque ne concerne que le fichier que vous détenez. Si votre app garde des\nsecrets dans Supabase Vault ou utilise des colonnes chiffrées, Supabase indique\nque\n",[33,455,457],{"href":315,"rel":456},[37],"les fichiers de sauvegarde ne contiennent jamais la clé racine",",\nseulement les données chiffrées. Un nouveau projet démarre avec sa propre clé,\ndonc ces valeurs arrivent illisibles tant que l'ancienne clé n'a pas été\nrecopiée. Et l'ancienne clé ne peut être récupérée que tant que l'ancien projet\nest actif. Une fois ce projet mis en pause ou supprimé, la clé ne peut plus être\nrécupérée, ni rien de ce qu'elle chiffrait.",[25,460,462],{"id":461},"ce-quil-faut-faire-cette-semaine","Ce qu'il faut faire cette semaine",[464,465,466],"key-takeaways",{},[206,467,468,471,474,485,488,491],{},[209,469,470],{},"Ouvrez Database, puis Backups, et cherchez une option de téléchargement. Si chaque copie ne propose que Restore, vous avez des sauvegardes physiques et rien à emporter.",[209,472,473],{},"Faites aujourd'hui un dump logique avec les trois commandes, et gardez les trois fichiers ensemble.",[209,475,476,477,480,481,484],{},"Cherchez ",[91,478,479],{},"auth.users"," dans ",[91,482,483],{},"data.sql"," avant de vous y fier. C'est le fichier où se trouvent vos comptes, quand ils y sont.",[209,486,487],{},"Stockez les fichiers ailleurs que dans votre compte Supabase.",[209,489,490],{},"Si vous utilisez Supabase Vault ou des colonnes chiffrées, lisez comment la clé racine se transfère avant d'en avoir besoin. Elle n'est pas dans le fichier.",[209,492,493],{},"Rejouez le dump une fois dans un projet jetable ou un Supabase local, pour que la première fois que vous l'ouvrez ne soit pas le jour où vous en avez besoin.",[25,495,497],{"id":496},"où-reeve-care-intervient","Où Reeve Care intervient",[10,499,500],{},[17,501,502],{},"Care fait la copie logique pour vous, la garde hors de Supabase, et chaque\ncopie est un fichier que vous pouvez télécharger.",[206,504,505,521,527,533],{},[209,506,507,510,511,514,515,287,517,520],{},[17,508,509],{},"Téléchargez n'importe quelle copie en zip."," Dedans : ",[91,512,513],{},"schema.sql",",\n",[91,516,483],{},[91,518,519],{},"roles.sql",", un manifeste qui compte les lignes de chaque table,\net une note expliquant comment la charger dans n'importe quel Postgres. C'est\nun dump standard, donc n'importe quel développeur peut l'ouvrir, et n'importe\nquel autre hébergeur aussi.",[209,522,523,526],{},[17,524,525],{},"Stockée hors de votre compte Supabase",", chiffrée, donc toujours là le jour\noù le compte ne l'est plus.",[209,528,529,532],{},[17,530,531],{},"Relue avant de compter."," La date affichée dans votre tableau de bord est\ncelle de la dernière copie ouverte et vérifiée, jamais celle de la dernière\ntentative.",[209,534,535,538,539,542],{},[17,536,537],{},"Vos utilisateurs sont dedans."," Le schéma ",[91,540,541],{},"auth"," voyage avec vos tables, et\nles fichiers envoyés par vos utilisateurs suivent dès que vous connectez un\naccès Storage.",[10,544,545,546,550,551,555],{},"Care garde une copie de votre base Supabase. Laissez les sauvegardes\nquotidiennes de Supabase activées à côté : elles sont le chemin le plus rapide\npour revenir d'une migration ratée, et le fichier est ce qui reste si vous\nperdez le compte. La façon dont une copie est prise, vérifiée et téléchargée est\ndessinée étape par étape sur la\n",[33,547,549],{"href":548},"\u002Fsupabase-backups","page des sauvegardes Supabase",", et\n",[33,552,554],{"href":553},"\u002Fpricing","ce que comprend chaque plan"," est sur la page des tarifs.",[10,557,558,559,562],{},"Avant de fermer cet onglet, ouvrez Database, puis Backups, et regardez à côté de\nvotre copie la plus récente. S'il n'y a rien à télécharger, le prochain fichier\nque vous détiendrez est celui que vous ferez vous-même, et\n",[33,560,561],{"href":341},"ce qui rend un dump complet"," est la chose à\nlire avant de le faire.",{"title":328,"searchDepth":564,"depth":564,"links":565},3,[566,568,569,570,571,572,573,574,575,576],{"id":27,"depth":567,"text":28},2,{"id":137,"depth":567,"text":138},{"id":171,"depth":567,"text":172},{"id":243,"depth":567,"text":244},{"id":261,"depth":567,"text":262},{"id":308,"depth":567,"text":309},{"id":372,"depth":567,"text":373},{"id":426,"depth":567,"text":427},{"id":461,"depth":567,"text":462},{"id":496,"depth":567,"text":497},"Backups","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcover-1200x630.png","Quatre instantanés quotidiens d'une base empilés dans une enceinte Supabase, celui de devant éclairé et scellé, près d'un bac vide.","Impossible de télécharger votre sauvegarde Supabase sur un projet récent : la copie quotidienne est physique. Comment le vérifier et garder la vôtre.",false,"md",[584,586,588,591,593,595],{"q":28,"a":585},"Pas la sauvegarde quotidienne, si votre projet tourne sous Postgres 15.8.1.079 ou plus récent. Supabase indique que tous les projets sur ces versions utilisent des sauvegardes physiques et qu'une fois celles-ci activées, il ne produit plus le fichier de sauvegarde téléchargeable. Vous pouvez toujours restaurer ces copies depuis le tableau de bord. Pour obtenir un fichier à garder, faites vous-même un dump logique avec la CLI Supabase ou pg_dump.",{"q":138,"a":587},"Une sauvegarde physique copie les fichiers que Postgres conserve sur disque. Elle se restaure vite et à l'identique, et seulement sur le même type d'installation Postgres que celle d'où elle vient, ce qui chez Supabase signifie que Supabase la restaure pour vous. Une sauvegarde logique est du SQL : les instructions pour reconstruire chaque table, suivies des lignes. Elle se rejoue plus lentement et se charge dans n'importe quel Postgres de la même version ou plus récent, y compris sur votre propre ordinateur.",{"q":589,"a":590},"Pourquoi le bouton de téléchargement a-t-il disparu ?","Parce que ce qu'il téléchargeait n'est plus produit. Le bouton appartenait aux anciennes sauvegardes quotidiennes logiques, des fichiers SQL que Supabase compressait et stockait. Quand un projet passe aux sauvegardes physiques, Supabase cesse de produire ce fichier, et la page Backups propose Restore sans téléchargement à côté. Désactiver la restauration à un instant précis ne le fait pas revenir, car Supabase continue ensuite de prendre des sauvegardes physiques.",{"q":309,"a":592},"Lancez les trois commandes que Supabase publie dans son guide de sauvegarde et de restauration : supabase db dump avec --role-only, puis sans option pour le schéma, puis avec --data-only et --use-copy pour les lignes. La CLI a besoin de Docker, car elle exécute pg_dump dans un conteneur. Gardez les trois fichiers ensemble, dans un endroit qui n'est pas votre compte Supabase.",{"q":373,"a":594},"Une sauvegarde logique, oui, dans un Postgres de la même version majeure ou plus récent. Postgres documente qu'un dump se charge vers l'avant et qu'il n'est pas garanti qu'il se charge dans une version plus ancienne, et Supabase donne un exemple : sa plateforme peut tourner sous Postgres 17 alors que Supabase auto-hébergé est en 15 par défaut. Une copie quotidienne physique ne se restaure nulle part ailleurs que chez Supabase.",{"q":596,"a":597},"Le plan Pro me donne-t-il une sauvegarde téléchargeable ?","Pas sur un projet en Postgres 15.8.1.079 ou plus récent. Là, Pro vous donne des sauvegardes physiques quotidiennes conservées sept jours, que vous pouvez restaurer dans le même projet ou, tant que la fonction est en bêta, dans un nouveau projet de la même région. Aucune des deux voies ne vous donne un fichier. Une copie téléchargeable, vous la faites vous-même, ou vous payez quelqu'un pour la faire.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",[600,601,602,603,604,605,606,607,608],"download supabase backup","télécharger sauvegarde supabase","sauvegarde physique supabase","sauvegarde logique supabase","fichier de sauvegarde supabase","copie de ma base de données supabase","sauvegarde supabase non téléchargeable","télécharger sauvegarde quotidienne supabase","exporter sauvegarde supabase",{},true,"Pourquoi votre sauvegarde Supabase ne se télécharge pas","\u002Fblog\u002Fdownload-your-supabase-backup","2026-09-26",{"title":5,"description":580},"blog\u002Fdownload-your-supabase-backup",[617,618,619],"Vous ne pouvez pas télécharger votre sauvegarde Supabase sur un projet en Postgres 15.8.1.079 ou plus récent. Les copies quotidiennes y sont des instantanés physiques : Supabase peut les restaurer pour vous, vous ne pouvez pas les télécharger.","Le bouton de téléchargement que décrivent les anciens guides appartenait aux sauvegardes logiques, qui étaient des fichiers SQL. Seuls les projets encore sur les anciennes versions l'ont toujours.","Pour détenir un fichier à vous, vous faites vous-même un dump logique avec la CLI Supabase ou pg_dump. C'est la seule copie qui survit à la perte de votre accès au compte.","wnuBV2C6UlOPj7dsWn_oY9nZunI_FfihhPSlmAnSvqQ",[622,629,635,641,647,653,659,665,671,677,683,689,695,701,707,708,713,719,725,730,736,742,748,754,760,766,772,778,783,788,793,799,805,811,817,823,829,835,841,847,853,859,865,870,876,882,888,894,900,905,911,917,923,929,934,940,945,951,956,962],{"path":623,"title":624,"description":625,"published":626,"category":627,"image":628,"draft":581},"\u002Fblog\u002Fbase44-security-scan","Scan de sécurité Base44 : ce que lui seul peut voir","Le scan de sécurité Base44 vérifie sept types de problèmes depuis l’intérieur. Voici la moitié que lui seul lit, et celle qu’il ne regarde jamais.","2026-10-10","Bases de la sécurité","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":630,"title":631,"description":632,"published":633,"category":627,"image":634,"draft":581},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Votre clé API a fuité. L'ordre dans lequel agir","Une clé API a fuité et vous ne savez pas par quoi commencer. Toutes les clés de votre frontend n'en sont pas une, et l'ordre compte plus que la vitesse.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":636,"title":637,"description":638,"published":639,"category":627,"image":640,"draft":581},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" sans désactiver RLS","\"Infinite recursion detected in policy for relation\" signifie que votre policy a interrogé la table qu'elle protège. Voici comment rompre le cercle.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":642,"title":643,"description":644,"published":645,"category":627,"image":646,"draft":581},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" sur Supabase, et le mauvais correctif","\"No API key found in request\" veut dire que votre requête est arrivée sans clé. La plupart des réponses pointent vers les règles de votre base.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":648,"title":649,"description":650,"published":651,"category":627,"image":652,"draft":581},"\u002Fblog\u002Fis-base44-safe","Base44 est-il sûr ? Ce que 5 442 applications ont montré","Base44 est-il sûr ? Neuf vérifications sur 5 442 applications Base44 en ligne. Presque toutes ont eu un B, pour des raisons que personne n’a choisies.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":654,"title":655,"description":656,"published":657,"category":627,"image":658,"draft":581},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Cacher une clé API : la déplacer dans une Edge Function Supabase","Cacher une clé API veut dire la sortir du navigateur, et une Edge Function Supabase est le plus petit endroit où la mettre. Deux étapes comptent davantage.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":660,"title":661,"description":662,"published":663,"category":627,"image":664,"draft":581},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Votre fichier .env est-il exposé ? Les douze chemins à vérifier","Votre fichier .env est-il exposé sur votre propre serveur web ? Douze adresses vous le disent, et une réponse signifie que tout son contenu est public.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":666,"title":667,"description":668,"published":669,"category":627,"image":670,"draft":581},"\u002Fblog\u002Fis-v0-safe","Sécurité de v0 : les 1 790 applications scannées ont toutes eu A","La sécurité de v0 mesurée sur 1 790 applications en ligne : toutes ont eu A. Seules 17 citaient une base de données, et c’est surtout cela que ce A mesure.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":672,"title":673,"description":674,"published":675,"category":627,"image":676,"draft":581},"\u002Fblog\u002Fis-bolt-safe","Bolt est-il sûr ? Ce que 1 123 applications Bolt ont montré","Bolt est-il sûr ? Neuf vérifications sur 1 123 applications Bolt en ligne. L’hébergement était propre. Les trouvailles : des clés et des tables ouvertes.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":678,"title":679,"description":680,"published":681,"category":627,"image":682,"draft":581},"\u002Fblog\u002Fis-supabase-down-or-your-app","Supabase en panne, ou est-ce votre app ? Comment le savoir","Supabase est-il en panne, ou est-ce votre app ? Un projet en pause, une base pleine et un bug chez vous se ressemblent. Quatre vérifications les séparent.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":684,"title":685,"description":686,"published":687,"category":627,"image":688,"draft":581},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Supabase chiffre-t-il mes données ? Oui. Ce que cela arrête","Supabase chiffre-t-il les données ? Oui : AES-256 au repos, TLS en transit, SOC 2 et ISO 27001. Ce que couvre chacun, et la fuite qu'aucun n'arrête.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":690,"title":691,"description":692,"published":693,"category":627,"image":694,"draft":581},"\u002Fblog\u002Fsupabase-free-plan-limits","Limites du plan gratuit Supabase : ce qui se passe à chacune","Les limites du plan gratuit Supabase : 500 Mo de base, 5 Go d'egress, aucune sauvegarde. Ce qui se passe à chaque seuil, et ce que change Pro à $25.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":696,"title":697,"description":698,"published":699,"category":577,"image":700,"draft":581},"\u002Fblog\u002Ftest-your-supabase-backup","Testez votre sauvegarde Supabase avant d'en avoir besoin","Comment tester votre sauvegarde Supabase : la restaurer dans un projet d'exercice, compter les lignes, se connecter, chercher la ligne qui manque.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":702,"title":703,"description":704,"published":705,"category":577,"image":706,"draft":581},"\u002Fblog\u002Fsupabase-backup-github-action","Sauvegarde Supabase gratuite avec une GitHub Action, et le piège","Une sauvegarde Supabase par GitHub Action est gratuite et convient à beaucoup d'apps. Le workflow, la bonne connection string et l'egress de chaque run.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":612,"title":5,"description":580,"published":613,"category":577,"image":598,"draft":581},{"path":709,"title":710,"description":711,"published":613,"category":627,"image":712,"draft":581},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\" : le grant manquant","Dès le 30 octobre, une nouvelle table Supabase répond \"permission denied for table\" tant que l'accès n'est pas accordé. Le grant de l'e-mail est la moitié.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":714,"title":715,"description":716,"published":717,"category":627,"image":718,"draft":581},"\u002Fblog\u002Fopen-api-endpoint-exposed","Un endpoint d'API ouvert est-il un problème de sécurité ?","Votre scan a signalé un endpoint d'API ouvert. Que cela compte dépend de ce qui est revenu, et la plupart de ceux trouvés étaient à la plateforme.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":720,"title":721,"description":722,"published":723,"category":627,"image":724,"draft":581},"\u002Fblog\u002Flovable-security-scan","Scan de sécurité Lovable : ce qu’il ne peut pas prouver","Scan de sécurité Lovable : ce que vérifient le Quick scan et le Deep scan, quand chacun part, et la seule chose qu’un scan de l’intérieur ne prouve pas.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":341,"title":726,"description":727,"published":728,"category":577,"image":729,"draft":581},"Pourquoi votre dump Supabase ne contient aucun utilisateur","Lancez supabase db dump tout seul et vous obtenez la forme de votre base et aucune de ses lignes, sans le schéma auth où vivent vos utilisateurs.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":731,"title":732,"description":733,"published":734,"category":627,"image":735,"draft":581},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domaine expiré, site hors ligne : ce qui se passe ensuite","Votre domaine a expiré et votre site est hors ligne. Le compte à rebours qui démarre, pourquoi le certificat est le moindre souci, et comment vérifier les deux.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":737,"title":738,"description":739,"published":740,"category":627,"image":741,"draft":581},"\u002Fblog\u002Fis-lovable-safe","Lovable est-il sûr ? Ce que 18 554 applications Lovable ont montré","Lovable est-il sûr ? 18 554 applications, neuf vérifications. La plateforme était la plus propre des cinq. Les trouvailles étaient dans les applications.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":743,"title":744,"description":745,"published":746,"category":627,"image":747,"draft":581},"\u002Fblog\u002Fvibe-coded-app-security-checklist","La checklist de sécurité du vibe coding, en neuf vérifications","Une checklist de sécurité du vibe coding en neuf points, chacun vérifiable de l’extérieur sur votre appli en ligne, et chacun avec un test d’une ligne.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":749,"title":750,"description":751,"published":752,"category":627,"image":753,"draft":581},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Une clé secrète Stripe dans votre frontend peut déplacer de l’argent","Une clé secrète Stripe exposée dans votre frontend peut rembourser, débiter et lire chaque fiche client que vous détenez. Votre clé pk_live_ y a sa place.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":755,"title":756,"description":757,"published":758,"category":627,"image":759,"draft":581},"\u002Fblog\u002Fvite-and-next-public-env-vars","Variables d’environnement Vite exposées : le préfixe dit publier","Variables d’environnement Vite exposées : votre appli a fait ce que le préfixe demandait. VITE_ et NEXT_PUBLIC_ veulent dire publier, et l’IA ignorait le prix.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":761,"title":762,"description":763,"published":764,"category":627,"image":765,"draft":581},"\u002Fblog\u002Fbase44-source-maps","Sécurité Base44 : ce qu’un scan signale, et ce qui dépend de vous","Sécurité Base44 sur 5 438 applis : trois signalements sur presque chacune sont ceux de la plateforme, la source map est le badge Base44, votre part est courte.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":767,"title":768,"description":769,"published":770,"category":627,"image":771,"draft":581},"\u002Fblog\u002Fis-cursor-ai-safe","Cursor AI est-il sûr ? L’éditeur, le code et l’appli publiée","Cursor AI est-il sûr ? Trois questions dans une recherche : ce que Cursor garde, ce que son code rate, et si l’appli que vous avez publiée est ouverte.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":773,"title":774,"description":775,"published":776,"category":627,"image":777,"draft":581},"\u002Fblog\u002Fis-replit-safe","Replit est-il sûr ? Ce que 3 042 applications Replit nous ont montré","Replit est-il sûr ? 3 042 applications Replit en ligne, neuf vérifications externes. Les trouvailles étaient dans l’application publiée, pas chez l’hébergeur.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":441,"title":779,"description":780,"published":781,"category":577,"image":782,"draft":581},"Supabase storage backup : votre copie de base n'a aucun fichier","Un Supabase storage backup est une tâche à part. Les sauvegardes de la base gardent la liste de vos fichiers et aucun des fichiers, donc chaque upload casse.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":216,"title":784,"description":785,"published":786,"category":577,"image":787,"draft":581},"Point-in-time recovery Supabase : prix et limites","Le point-in-time recovery de Supabase rembobine votre base à la seconde près sur la dernière semaine. $100 par mois en plus de Pro, et rien que la base.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":421,"title":789,"description":790,"published":791,"category":577,"image":792,"draft":581},"Projet Supabase en pause ? Vos données sont toujours là","Supabase a mis votre projet en pause après une semaine sans activité. Rien n'est supprimé, Restaurer est à côté du nom, et vous avez un an pour cliquer.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":794,"title":795,"description":796,"published":797,"category":627,"image":798,"draft":581},"\u002Fblog\u002Fsafest-ai-app-builder","Quel builder d'app IA est le plus sûr ? 30 998 apps testées","Quel builder d'app IA est le plus sûr ? Nous avons scanné 30 998 apps actives de Lovable, Base44, Replit, v0 et Bolt. Ce n'est pas le builder qui décide.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":800,"title":801,"description":802,"published":803,"category":627,"image":804,"draft":581},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Activer Row Level Security sur chaque table Supabase, et le prouver","Activer Row Level Security dans Supabase sans politique ferme la table entièrement. Une politique sans le réglage ne fait rien. Voici le SQL, et le test.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":806,"title":807,"description":808,"published":809,"category":627,"image":810,"draft":581},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\" : ce que l'alerte rate","Supabase signale \"RLS disabled in public\" comme une erreur. Elle ne dit rien de la politique de lecture qui laisse votre table tout aussi ouverte.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":812,"title":813,"description":814,"published":815,"category":627,"image":816,"draft":581},"\u002Fblog\u002Frotate-supabase-service-role-key","Faire tourner une clé service_role Supabase qui a fuité","Supabase dit de colmater la fuite d'abord. D'autres guides disent de faire tourner la clé tout de suite. Tout dépend d'où votre clé service_role a fuité.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":818,"title":819,"description":820,"published":821,"category":627,"image":822,"draft":581},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Scanners de sécurité vibe coding comparés, le nôtre compris","Le meilleur scanner de sécurité vibe coding tient à trois questions qu'aucune liste de fonctions ne traite. Dix outils comparés, avec les prix.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":824,"title":825,"description":826,"published":827,"category":627,"image":828,"draft":581},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker : les cinq vérifications à faire soi-même","Un Supabase security checker lit votre app publiée plutôt que les réglages de votre projet. Voici les cinq vérifications, et comment faire chacune vous-même.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":830,"title":831,"description":832,"published":833,"category":627,"image":834,"draft":581},"\u002Fblog\u002Fvibe-coding-security-scanner","Scanner de sécurité vibe coding : ce qu’un scan d’URL rate","Un scanner de sécurité vibe coding lit votre app en ligne depuis l’extérieur. Ce qu’il couvre, les quatre choses qu’il ne voit pas, et comment lire le résultat.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":836,"title":837,"description":838,"published":839,"category":627,"image":840,"draft":581},"\u002Fblog\u002Fmissing-security-headers","En-têtes de sécurité manquants : quand cela compte","Les en-têtes de sécurité manquants sont notre constat le plus fréquent. Contre quoi ils protègent, et quand ils comptent le moins dans votre rapport.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":842,"title":843,"description":844,"published":845,"category":627,"image":846,"draft":581},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Votre clé API OpenAI est exposée dans votre frontend. Changez-la.","Une clé API OpenAI exposée dans votre frontend ne peut être liée à aucun domaine. Changez-la aujourd'hui, passez par votre serveur et plafonnez la dépense.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":848,"title":849,"description":850,"published":851,"category":627,"image":852,"draft":581},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Clé API exposée dans le frontend : ce que 30 998 applis livrent","Une clé API exposée dans votre frontend est le plus souvent une clé Google Maps. Nous avons scanné 30 998 applis vibe-codées et compté ce qui fuit vraiment.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":854,"title":855,"description":856,"published":857,"category":577,"image":858,"draft":581},"\u002Fblog\u002Fsupabase-backup-tools-compared","Outils de sauvegarde Supabase comparés, le nôtre compris","Quatre familles d'outil de sauvegarde Supabase, ce que chacun copie vraiment, et quand une GitHub Action gratuite bat le fait de payer, nous compris.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":860,"title":861,"description":862,"published":863,"category":627,"image":864,"draft":581},"\u002Fblog\u002Freplit-secrets-explained","Utiliser les secrets sur Replit, et ce qui est publié quand même","Utiliser les secrets sur Replit : en ajouter un, le relire, corriger les deux causes du undefined. Et les clés que l'outil Secrets ne peut pas protéger.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":233,"title":866,"description":867,"published":868,"category":577,"image":869,"draft":581},"Sauvegardes du plan gratuit Supabase : en faire une sans terminal","Le plan gratuit de Supabase ne fait aucune sauvegarde : la copie vient de vous. Comment la faire depuis le tableau de bord, et ce que le CSV oublie.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":871,"title":872,"description":873,"published":874,"category":627,"image":875,"draft":581},"\u002Fblog\u002Fis-supabase-secure","Supabase est-il sûr ? Oui. Votre projet est une autre question","Supabase est-il sûr ? La plateforme est auditée, chiffrée et testée en intrusion. Sa documentation dit où cela s'arrête et où vos réglages commencent.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":877,"title":878,"description":879,"published":880,"category":627,"image":881,"draft":581},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Où trouver vos clés API Supabase : anon, service_role et URL","L'URL du projet, la clé anon et la clé service_role tiennent sur une page du tableau de bord. Voici où elle est, et laquelle des quatre va dans votre app.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":883,"title":884,"description":885,"published":886,"category":627,"image":887,"draft":581},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy sur Supabase : et après ?","\"New row violates row-level security policy\" signifie que Supabase a refusé une écriture. Le correctif rapide rouvre la table à tout le monde.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":889,"title":890,"description":891,"published":892,"category":627,"image":893,"draft":581},"\u002Fblog\u002Fcors-wildcard-security-risk","Un joker CORS est-il un risque de sécurité ? Rarement.","Un joker CORS est-il un risque de sécurité ? C'est souvent le réglage par défaut de votre builder, et il ne livre rien que votre serveur ne donnait déjà.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":895,"title":896,"description":897,"published":898,"category":577,"image":899,"draft":581},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Le branching Supabase n'est pas une sauvegarde de vos données.","Pourquoi le branching Supabase n'est pas une sauvegarde : une branche démarre sans vos données, et un merge ne déplace que le schéma. À quoi il sert vraiment.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":303,"title":901,"description":902,"published":903,"category":577,"image":904,"draft":581},"Restaurer une sauvegarde Supabase, et ce qui casse après","Restaurer une sauvegarde Supabase depuis le tableau de bord ou un fichier de dump, ce que la restauration remplace et pourquoi votre app peut rester cassée.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":906,"title":907,"description":908,"published":909,"category":627,"image":910,"draft":581},"\u002Fblog\u002Fsupabase-storage-bucket-public","Votre bucket Supabase Storage est public. Est-ce un problème ?","Un bucket Supabase Storage public signifie que celui qui a l'URL d'un fichier peut l'ouvrir. Il ne signifie pas que quelqu'un peut lister ce qu'il contient.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":912,"title":913,"description":914,"published":915,"category":627,"image":916,"draft":581},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Une clé API Google dans votre frontend, est-ce un problème ?","Une clé API Google exposée dans votre frontend est la clé que notre scanner trouve le plus souvent, et en général tout va bien. Un réglage gratuit tranche.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":918,"title":919,"description":920,"published":921,"category":577,"image":922,"draft":581},"\u002Fblog\u002Fai-agent-deleted-my-database","Un agent IA a supprimé mes données Supabase. Que puis-je récupérer ?","Un agent IA a supprimé des données de votre base. Ce que vous pouvez récupérer était déjà décidé avant, et les prochaines minutes décident du reste.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":924,"title":925,"description":926,"published":927,"category":627,"image":928,"draft":581},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Qui peut lire votre base Supabase ? Nous avons testé 3 680 apps","N'importe qui peut-il lire votre base de données Supabase sans se connecter ? Nous avons scanné 30 998 apps en ligne créées avec des builders IA.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":930,"title":931,"description":932,"published":927,"category":627,"image":933,"draft":581},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source maps exposées : votre app publie son code original","Une source map exposée laisse n'importe qui lire le code original de votre app, commentaires compris. Le test de 30 secondes, et ce qui compte vraiment.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":935,"title":936,"description":937,"published":938,"category":627,"image":939,"draft":581},"\u002Fblog\u002Fsupabase-new-api-keys","Les nouvelles clés API Supabase : laquelle va dans votre app ?","Supabase a remplacé anon et service_role par des clés publiables et secrètes. Laquelle a sa place dans votre app, et laquelle jamais ?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":253,"title":941,"description":942,"published":943,"category":577,"image":944,"draft":581},"Supabase sauvegarde-t-il ma base de données ? Cela dépend du plan.","Supabase sauvegarde-t-il votre base de données ? Chaque jour sur les plans payants, jamais sur le gratuit. Comment savoir ce que vous avez vraiment.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":946,"title":947,"description":948,"published":949,"category":627,"image":950,"draft":581},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security est activé. La table reste publique.","Activer Supabase Row Level Security ne protège pas une table. Ce sont vos politiques, et celle qui a réparé votre app laisse peut-être entrer tout le monde.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":952,"title":953,"description":954,"published":949,"category":577,"image":955,"draft":581},"\u002Fblog\u002Fversion-history-is-not-a-backup","L'historique des versions n'est pas une sauvegarde de vos données.","Lovable et Bolt tiennent un historique des versions de votre code. Votre base de données est un service à part, et revenir en arrière ne la ramène pas.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":957,"title":958,"description":959,"published":960,"category":577,"image":961,"draft":581},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Trois façons de sauvegarder une base Supabase, et ce qui manque","Le tableau de bord, pg_dump et un service géré. Ce que chacun enregistre, ce qu'il laisse de côté sans le dire, et lequel survit à la perte du compte.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":963,"title":964,"description":965,"published":960,"category":627,"image":966,"draft":581},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quelles clés API sont sûres côté navigateur, et lesquelles non","Votre clé anon Supabase est faite pour être publique. Votre clé service_role non, et elle ignore toutes les règles que vous posez. Comment les distinguer.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618969090]