Sessions
1 sessionLes enregistrements des appels. Le résumé et la transcription sont sous la vidéo.
Session 1 · Faire le point sur les bases
Un premier tour du projet pour voir ce qui est compris et ce qui ne l’est pas : GitHub, front-end et back-end, Supabase, puis la façon dont le projet traite les essais. L’appel s’est fait en deux parties.
Résumé · partie 1
- 2:38
Le but de la session
Faire le point sur ce qui est vraiment compris du projet, plutôt que de tout laisser faire à Claude. Idée retenue : des flashcards tirées des appels pour réviser entre les sessions.
- 8:00
Une seule conversation pour tout
Le CRM et l’interface élève avancent dans la même discussion avec l’agent. Ça ralentit tout : la réponse, ce sont T3 et les worktrees, une tâche par conversation.
- 9:05
Front-end et back-end
Le front-end, c’est ce que l’utilisateur voit. Le back-end, ce qui travaille derrière. Les variables d’environnement sont à revoir.
- 15:00
À quoi sert GitHub
GitHub n’héberge pas l’application. Il garde l’historique du code, permet de revenir à une version d’avant et sert de copie distante.
- 19:36
Branches, pull requests et merge
On travaille sur une branche, on ouvre une pull request, on relit les changements, puis on merge dans main.
- 22:35
Les tests et la CI
À chaque pull request, des tests vérifient que rien n’est cassé avant la mise en ligne. Le projet n’en a pas encore.
- 28:20
L’accès à Supabase
L’invitation avait expiré : elle est renvoyée.
- 29:31
Le tour de la base
Les tables, leurs droits d’accès et l’endroit où sont rangées les clés.
- 34:06
Serveur, front-end, back-end
Un serveur est un ordinateur allumé en permanence. Next.js fait le front-end, Supabase le back-end, et GitHub envoie le code au serveur.
- 39:28
Base de données ou edge function
Renommer un utilisateur, c’est une simple écriture en base. Créer une correction avec l’IA, c’est un travail : c’est le rôle d’une edge function.
- 42:05
Les règles RLS
Elles disent qui peut lire ou modifier quelles données. Un skill permet de les vérifier : aucun élève ne doit voir les données d’un admin.
- 45:54
Un endpoint est public
Chaque edge function a une adresse que n’importe qui peut appeler. Il faut vérifier qui l’appelle et ce qu’on lui envoie.
- 52:25
Une tâche planifiée à la place d’une edge
Les essais passent par pg_cron et pg_net, qui se déclenchent à intervalle régulier. D’où plusieurs minutes d’attente.
- 56:19
Next.js fait aussi du back-end
Le projet mélange le back-end de Next.js et celui de Supabase. Il faudra choisir où vit chaque traitement.
À retenir
- GitHub garde l’historique du code. C’est le serveur qui fait tourner l’application.
- Une nouveauté passe par une branche, une pull request et des tests avant d’arriver sur main.
- Supabase sert de back-end : les RLS disent qui lit quoi, les edge functions font le travail.
- Une edge function a une adresse publique : il faut la protéger.
- Une tâche planifiée qui tourne toutes les X minutes fait attendre l’utilisateur. Une edge function répond tout de suite.
Prochaines étapes
- Prochaine session jeudi ou vendredi : mettre en place l’environnement de travail et le fichier AGENTS.md.
- Lire les fiches préparées avant la session et venir avec ses questions.
- Will : accepter l’invitation Supabase et relire les règles RLS.
- Will : relire les edge functions et les routes Next.js, puis déplacer le travail lourd dans des edge functions.
Transcription · partie 1140 interventions
Transcription automatique de Fathom, non relue. Les noms sont parfois inversés.
- 0:01Neil
Hello? Hello?
- 0:06Will
It's my mom?
- 0:09Neil
It's weird, but AirPods don't Yeah, hear you. It's It's fine, you?
- 0:16Will
Hello?
- 0:17Neil
You hear or not? Yeah, and you? No?
- 0:22Will
Wait, It's weird.
- 0:35Neil
It's Yes, yes, yes. It's good. Oh, yes, for that. Okay, I'm sorry. Ah, here are the AirPods. Okay, it's good. Who?
- 1:00Will
Ah. Question. Comment je swap d'écran ? Attends, je reviens.
- 1:07Neil
Je reviens. 2 secondes. C'est bon là, normalement. Test, test, je peux répondre ?
- 1:59Will
Ouais.
- 2:00Neil
Ouais, c'est bon, parfait. Tu vois mon écran, non ?
- 2:03Will
C'est un ouf, Will, il m'en rend une facture à 5250. Il est ouf. Pourquoi ?
- 2:10Neil
Il me dit la TV à Wolf. Ah bah oui, on n'a pas le choix.
- 2:15Will
Ce raton. Ah ouais, elle n pas inclus, genre t'annonce des prix Wolf. J'annonce des prix en taxe. Ah là, l'écran, il va être gratuit, voilà. Je crois que je n rien à voir là-dedans. Attends, tu vois mon écran ? Tu vois l'iPad ?
- 2:32Neil
Je vois un écran noir, là, pour l'instant. Oui, mais c'est ça le problème, attends.
- 2:38Will
Attends, que je viens de l'activer. Là, tu vois, attends, tu réactives sur partenaire. Attends, tac, tac, tac, tac, tac, tac, Je ne sais pas pourquoi. Donc, ok. Je vais t'expliquer comment je pense que ça va se dérouler. C'est pas facile d'expliquer le knowledge d'un savant en lignard. J'ai un peu. Ah ouais, ça commence bien. Le mec qui n pas compris la pédagogie. Juste une insulte. Le premier truc que je veux qu'on cerne tous les deux, c'est qu'est-ce que tu as compris de ce que tu fais et qu'est-ce que tu n pas compris. Ça, ça va être les premières questions que je veux te poser. Ça me permettra juste d'affiner et d'aller plus vite sur certains blocs. Je pense honnêtement que tu ne comprends rien. Enfin, ce que je pense par rapport à ce que j'ai compris, ce n pas que tu comprends rien, c'est que tu laisses Claude faire. Du coup, tu ne sais pas vraiment ce que tu fais. Peut-être que je me trompe. C ce qu'on va voir. Enfin, ça, c'est le premier truc que je veux qu voit ensemble. Aujourd'hui, on peut aussi parler de setup, des trucs du style T3, etc. et t'expliquer pourquoi c'est intéressant. Mais ça dépend de ton cas d'usage. Moi, je trouve ça très intéressant. Est-ce que toi, ça va t'intéresser ? Oui, non, on verra. Et sinon, je veux qu'on commence... Avant qu'on commence à creuser des détails techniques comme la sécu, il faudra d'abord que tu comprennes comment je sais quel truc qu faut que j'aille vérifier dans la sécu. OK. Le problème de la sécu aujourd'hui... c'est que l'IA elle bloque si je te donne un exemple de pourquoi ça va être chiant la sécu, t'expliquer là maintenant si t'as pas le knowledge des mots que tu dois chercher c'est pas des mots, des concepts que tu dois chercher l'IA si tu lui demandes de réparer les failles de sécurité quand elle en trouve, elle te dit qu'elle a pas le droit de les réparer parce qu'elle sait pas genre en gros tu pourrais l'utiliser pour exploiter les failles de quelqu'un d'autre donc elle va pas te dire mais par contre si tu lui dis ok je pense regarde, on va faire un exemple regarde si j'ai des endpoints qui me permettent d'injecter genre une faille XSS par exemple juste bêtement ça elle va être en capacité de le faire parce que tu lui as dit précisément dit, je sais pas pourquoi exactement ça marche comme ça, mais quand t'es dans le domaine elle a l'air d'être moins réticente alors quand tu l'es donc avant qu'on puisse travailler sur ce genre de topique, j'aimerais bien d'abord que tu comprennes genre ce qui se passe genre dans un serveur le front-end, le back-end etc ce genre de choses je me suis loté une... attends du coup je voudrais recommencer avec l'iPad est-ce que t'as l'ambition d'en vendre beaucoup des coachings ou ça va être juste moi a priori euh... — Create and share flashcards/notes from this session w/ Neil Est-ce que j'ai l'ambition d'en vendre beaucoup des coachings ? Je n'en sais rien. Juste, je me suis fait une liste de points. Pourquoi tu me dis ça ? Parce que là,'ai juste besoin. Tu connais déjà des choses, n pas ignère non plus.
- 5:14Neil
Très approximativement. Mais moi, ce que je ferais, parce que je le fais avec mes closers, etc., pour qu'on puisse bosser aussi entre les sessions, c'est qu'à partir du transcript, ça me génère limite des flashcards ou des conneries sur ton interface.
- 5:27Will
Comme ça, je peux réviser les définitions, mettre de la clarté sur tout. Pas de soucis. De toute façon, j'ai commencé à te faire des listes de choses qu'on doit avoir. Si ça, tu ne connais pas, tu ne pas devenir dev. Je ne suis pas fini. Là, tout à l'heure, je me suis rendu compte que j'ai oublié de parler des tests. Sache qu va y avoir un gros travail à faire. Là, on va avoir d'abord le théorique.'est pour ça que je te dis, je pense qu'une heure, ça va être compliqué. Tu vas vraiment être fatigué, parce que c'est juste plein de nouveaux trucs, plein de nouveaux concepts. En gros, la façon dont je vois le truc,'est là, je veux juste comprendre ce que tu sais, ce que tu ne sais pas. Ça va me permettre de voir. en global une fois que j'ai ça on va commencer par les concepts de base fontaine back-end un serveur ok une fois qu'on a ça on va commencer à avoir ces petits points une base de données le scaling genre qu'est ce que c'est qu'un bucket r2 même si toi tu apposes super base pas parce qu'est que je dis cdn dns comme ça tu vas comprendre aussi ce que ça implique etc on va voir aussi comment tu dois gérer le code à l'intérieur j'ai commencé j'ai commencé à te trifouiller trois petits skills qui commencent à être intéressants mais je vais t'expliquer comment ça s'utilise ok donc là j'ai pas encore d'exercice là à proprement parler parce qu'aujourd'hui ça met à raison flash car je pense que c'est une bonne idée au moment pour que les concepts sache que je m'en fous que claude sache que ce sont les concepts ça ne sert à rien si tu n pas capable de comprendre doit chercher que claude le sache ça sert à rien ouais j'ai bien compris parce que oui claude c'est tout ce que je vais dire il n pas de problème tu lui dis les mots il sait dire mais si toi tu n pas la si tu n pas les astuces pour dire maintenant peut-être que ça ça va ça servira ok pour la méthode de révision je pense que je vais te mettre ça après c'est pas encore publié parce que je suis en train de la bulle dans ta face mais je vais te faire ça je pense que c'est une bonne idée mais vu qu'on va pas voir tout ce que j'ai mis là pour l'instant on va voir des trucs sur l'iPad c'est pas si grave, de toute façon je rajouterai et puis fais moi tes feedbacks c'est la première fois que je vais coacher quelqu'un encore plus dans le dev donc vraiment aucune idée si c'était montrer des skills et tout c'est facile mais voilà ok du coup let's go moi là j'ai plusieurs petites questions avant que je te montre l'iPad qu'est-ce que t'as compris est-ce que tu peux m'expliquer ce que c'est qu'un front-end et un back-end si tu sais pas c'est pas grave un front-end et un back-end non mais en fait moi le truc majeur je pense que j'ai pas compris parce qu'après j'ai peur d'oublier donc je préfère le dire c'est que je parle beaucoup à Claude mais dans une discussion genre 4-5 disons disons
- 8:00Neil
Je vais faire beaucoup de choses que dans une discussion. Je ne pas à quel point c'est mal. C'est-à-dire qu'en gros, à la fois mon CRM, à la fois mon interface étudiant est sur la même discussion.
- 8:11Will
Oui, du coup, c'est bien un problème. Du coup, ça va venir dans cette partie-là. T3 et les WorkTree. T3 pour est-ce que ça va être utilisé et les WorkTree pour travailler. OK, bon, ça, d'accord. Ça n'a rien à voir avec le knowledge de base. Donc, réponds à mes questions. Ça, c'est noté. Et de toute façon, ça, c'est un des trucs sur lesquels je pense qu'on va travailler dès peut-être sans doute le prochain appel pour que tu puisses commencer à travailler mieux même si tu n pas encore tous les concepts. Oui, en effet, pour répondre à ta question. Oui, en effet, c mal de travailler avec une discussion. Tu travailles moins efficacement. Tu pourrais aller plus vite. Et surtout, j'imagine que la façon dont tu travailles, c'est que tu lui dis plein de grosses features à faire, tout dans le même truc et tu attends comme un con pendant 4 heures qu te fasse le truc et tu review, c'est ça ? Oui, comme un génie, pas comme un con, mais sinon, c'est ça. Non, je pense que du coup,'est pas... C quand même un con, mais justement, va voir ça ensemble. Tu n aucune idée de ce que ça veut dire front-end, back-end ?
- 9:05Neil
Oui, front-end, c'est ce que les gens voient, et back-end, c'est ce qu'il y a derrière, en code, non ?
- 9:10Will
Ok, mais sur un… Ok, alors vas-y, c'est quoi, vu que j'ai vu ton GitHub ? C'est quoi le front-end dans ton GitHub, et'est quoi le back-end dans ton GitHub ?
- 9:18Neil
Ah, je ne regarde pas mon GitHub, mais le front-end, c'est ce que les gens voient pour moi, et le back-end, c'est ce qu'il y a en code, c'est tout.
- 9:26Will
Ok, ça va être sympa. Alors, attends, hop. Par contre, faut juste que la recopie d'écran marche, sinon c'est relou. Là, je vois Atelier, machin, je ne pas si je suis sûr de se faire voir. Ah, là, je vois un écran noir. Ah, quand même, je te jure,'est bizarre. Avant que tu arrives, j'avais le partage d'écran, je vais juste couper pour qu parle. Mais attends, what the ? Sinon, je vais le faire sur… Sinon, peut-être, peux me montrer sur GitHub, je ne pas.
- 9:55Neil
Tu n pas besoin de faire de schéma.
- 9:57Will
Oui, là, je voudrais d'abord que tu comprennes bien les trucs. Attends. Oui, oui, j'ai besoin de faire des chemins. OK. Ce n pas grave. Ça, j'aurais peut-être dû le dessiner là-dessus. Ce n pas très, très grave. OK. Et juste, variable d'environnement. Tu as une idée de où est-ce que tu les gères aujourd'hui dans ton code ? Je ne sais pas exactement ce que c'est.
- 10:20Neil
C'est-à-dire qu'on n'a pas défini ces termes avec Will. Oui, je sais. C'est vraiment du code.
- 10:27Will
OK, il y a plein de trucs à bien faire, même pour toi. OK, attends. Est-ce que l'iPad,'est rémuné ? Est-ce que tu peux te montrer ? Si ça ne se met pas un screen mirroring, c'est une dinguerie quand même de faire.
- 10:46Neil
Peut-être que tu veux arrêter la réunion et la relancer, vu que ça marchait quand tu la lancais. C'est l'iPad qui met un écran noir, gros.
- 10:52Will
Qu'est-ce que c'est que cette merde ? Ça me casse les couilles. Ah, c'est sur l'iPad que tu as écran noir ? Ou c'est un partage d'écran ?
- 10:58Neil
Non, en gros, quand je fais le partage d'écran, ça me... Au lieu de te display l'iPad...
- 11:02Will
Attends. Ouais, j calqué. C'est quoi cette merde ? Mais gros, attends, c'est pas ça. Attends, est-ce que c'est parce que je suis en... Attends. Là, si je fais ça et que fais ça et que je fais ça... La vie de ta mère, je peux pas... Ah, je peux pas dual... Mais non. Ok, bah, j'ai trouvé le problème, c'est que je peux pas faire de partage d'écran, je sais pas pourquoi. L'iPad le refuse. Eh bah, je vais trouver une autre solution, c'est pas grave. C'est chiant, quand même. Donc là, si je fais ça et que je fais ça... ça m'attend. Écran noir,'est ça. Ok, bon. Ok. Bouge pas. Je vais passer sur... Même sur le téléphone, je pourrais être là. Ah, cool. J'ai fait des cours particuliers avec ça. Ça marchait très bien. Je ne comprends pas pourquoi maintenant, je ne peux plus. Peut-être pas sur Google Meet, mais sur Discord. peut pour ça. Bon, ce n pas grave. Je vais trouver une autre solution. Pas très important. OK, bon. Unique pour les schémas. Je ne pas perdre de temps. Ce n pas très grave. J'aurais dû faire un truc là-dessus. Bon, ce n grave. OK, tu m'écoutes ? Non. OK, globalement, je vais te montrer sur ton GitHub. Finalement, c'est toi qui as raison. Envoie-moi le lien du GitHub.
- 12:42Neil
Le lien du GitHub.
- 12:44Will
Si juste avec un email et que je mets l'email en partenaire, ça crée le compte et il peut directement se connecter ? C'est possible ? Il le cache pas de l'artiste où tu passes le... Oui, oui, ça. Ils peuvent directement se connecter. font avec un code. Il a pas besoin d'avoir fait quelque chose. Oui, Oui, oui, je crois. pas chose. chose. Sous-titrage ST' 501 Envoie le lien du GitHub. Vas-y, attends, je me connecte.
- 13:10Neil
Comme ça, va regarder ensemble ce que c'est.
- 13:15Will
Vas-y.
- 13:16Neil
Je t'avais ajouté, normalement. Oui, je sais, mais je n'ai pas de moyens faciles d'y aller.
- 13:23Will
Ouais, OK. Attends, je me connecte, alors.
- 13:27Neil
Je vais aller dans le spam.
- 13:28Will
Dans le repository, il faut voir si je regarde les trucs partagés ou avec les invitations. C'est bizarre, je suis censé recevoir un code que je ne reçois pas. vais faire GitHub. Ah, voilà, c'est bon. OK. Donc, quoi ? Je suis connecté. Tu peux juste m'envoyer, je peux juste l'ouvrir. Vas-y, que quand tu dis le lien,
- 14:00Neil
mon github c'est le lien de mon portable ok ça veut dire quoi le lien de mon github en gros là attend je vois pas l'écran vas-y on fait donc là normalement tu as ton projet tu as ton nom d'utilisateur est à ton projet et là tu devrais avoir un truc à 100 ans tu m'envoies juste le lien qui est là vas-y attend je vais sur mon nom d'utilisateur dans ce pic sur dashboard c'est ça elle peut tirer portail ouais je te mets je te donne accès à ça on est d'accord elle paie le portail je crois et après du coup ça je m'a dit je clique ou en haute à le code tiens au tas le lien où tu peux m'envoyer les vues que j le lien vas-y vas-y passe faire à 2000% que c'est bon et ça c'est ça je sais c'est ça il ya trois heures tu as fait un commit ok j'ai une autre question que je voulais poser
- 15:00Will
Au niveau de GitHub, est-ce que tu as compris à quoi ça servait ou pas du tout ? Parce que du coup, ça va venir avec le fait de chatter, de pouvoir envoyer plusieurs messages, etc. Juste pour savoir si tu as compris à quoi ça servait.
- 15:11Neil
GitHub, pour moi,'est là où c'est ce qui héberge mon projet.
- 15:18Will
Pas les données. Les données, c'est sur Superbase, mais ça héberge le projet. Pour moi, ça assure le fonctionnement du projet. Ok, non. Ok. Pas de soucis. Bon, on va refaire un point. On va faire d'abord un point sur GitHub parce que du coup, c'est pas ça. GitHub, ok. Donc, quand tu crées un projet, globalement, du code, quand tu crées un projet de code, c'est bon, tu me suis là ? Ouais. Quand tu crées un projet de code, tu as un dossier. Donc, je vais te donner un exemple avec Captures. Comme ça, tu vas aussi comprendre très rapidement. Donc, sur mon ordinateur, ok. J'ai, voilà, ça c'est mes projets de dev, tous les projets que j'ai, ok. Et donc, j'ai par exemple, il y a Captures. Captures. Ok, j'ai Captures. Ce dossier-là contient tout mon code. Donc ça, jusque-là, tu as compris que toi aussi, avais la même chose. Sort by snake. Toi aussi, tu as la même chose. Tu as plein de fichiers, dossiers qui sont du code. On s'en fout que tu comprennes ce que ça veut dire. Le fait est qu'aujourd'hui, à chaque fois que je fais une modification sur Capture, par exemple, je veux tester une feature, tester une fonctionnalité, mais qu'en fait, elle ne me plaît pas. ce qu'il faut que je fasse, ça veut dire que je dois supprimer depuis que j'ai commencé à faire cette nouvelle fonctionnalité pour tout enlever. Imaginons, j'ai tout mon code dans ce dossier-là. Je marche bien, vais faire une nouvelle fonctionnalité. Mais en la fonctionnalité ne me plaît pas, il faut que je revienne en arrière. C'est ça que résout GitHub. GitHub, il résout le fait que tu versionnes ton code. GitHub, si je regarde, si on vient ici, c'est ce que tu vois. Version, ce n pas clair.
- 16:57Neil
Version, ça veut dire que tu es en état de ton code à un instant T. Qu'est-ce que ça veut dire ?
- 17:01Will
Si je reviens, donc dans ton code, si je reviens le premier jour où tu as utilisé GitHub sur ce projet-là, je ne pas, il y a trois semaines, il y a trois semaines, l'état de ton projet, c'était quelque chose, OK ? Et si je reviens à cet état-là, en fait, GitHub, il me permet de revenir à un état d'avant. Et ça, ça sert à quoi ? Ça sert à dire, OK, là, tu vois, je suis revenu, là, dans l'état dans je suis. Mon GitHub me dit, je suis dans l'état de la semaine dernière, pas de mes comités, tu vois ce que c'est ? je vois. Ça historicise le code. Le code. Ça historicise le code, c'est ça. Et du coup, un, ça te permet de revenir en arrière, de faire des tests. Deux, ça te permet, alors attends ça, par contre, j un petit truc à te montrer. Deux, GitHub te permet de genre avoir toujours une source remote, donc ça veut dire un environnement distant pour récupérer ce code-là. Ça veut dire que sur ta machine, ma machine, une autre machine, on peut travailler dessus, OK ? Et trois, ça permet de travailler à plusieurs. Mais globalement, ce qu'il faut comprendre c'est que ça te permet d'avoir des versions ce que fait aujourd'hui ton cloud d'ailleurs on peut le voir ici ce qu'il faut comprendre c'est que Github de base t'as une branche, on appelle ça une branche faut vraiment voir ça comme un Github, comme un arbre t'as un point T, un moment T de l'espace c'est vraiment casse-cou parce que c'est vraiment des trucs quand tu dessines ça se comprend bien non je comprends bien tu vois très bien là ? oui mais je comprends très bien ok en gros globalement t'as version 1, version 2 version 3 maintenant, parce que ça c'est important et c'est justement je te dis pas ça pour rien, je te dis ça parce qu'on va l'utiliser après pour quand tu vas coder ça va venir avec le fait de travailler avec plusieurs sessions il y a ce qu'on appelle créer une branche créer une branche c'est juste dire ok donc là je suis à mon état V3 ok et je vais faire une nouvelle fonctionnalité la fonctionnalité profil ok donc je vais créer une branche la branche c'est quoi ? c'est juste par rapport à mon état d'aujourd'hui je veux créer le même copie, mais quand je vais faire mes tests, ça ne sera que sur cette copie. Donc, si je veux revenir à l'état d'avant, je vais juste revenir à V3. Sinon, je fais mes tests là-dessus. L'avantage de faire ça, c'est que je peux faire tous mes petits tests. Ce que tes agents font, attends, parce que du coup, je viens de voir ça là. Ce que tes agents font, c'est qu'ils font des pull requests ou pas ? Oui, ils font des pull Ça me dit un truc, ouais.
- 19:29Neil
Parfait, regarde, c'est bien parce que heureusement que l'IA, elle n'est pas si débile.
- 19:36Will
Une fois que tu as fait tes avancements sur ta nouvelle fonctionnalité, tu veux que la production, ton environnement de production, ton vrai truc, soit au même état que ta nouvelle fonctionnalité.
- 19:51Neil
Tu fais une pull request. Une pull request,'est juste une demande.'est ça.
- 19:54Will
PR. Oui, je le vote très souvent. Oui, parce qu'il te dit, j'ouvre une pull request, tu la valides et je... Merge. Et en fait, c'est exactement ce que ça fait, une pull request. Mais justement, je te montre ça parce qu'on va mettre plein de choses dans ces étapes-là. Donc, tu vas créer une pull request sur ta nouvelle branche, qui est Feature Profile. Et une fois que la pull request, donc la pull request, ça ressemble à ça. Tu les as là. Là, par exemple, le planning des vacances d'octobre sort du menu. C'est globalement les fichiers que tu as changés.
- 20:23Neil
Dans le code, on s'en fout. Ça t'explique ce que tu as changé.
- 20:26Will
Et toi, tu acceptes ou tu n'acceptes pas de... On appelle ça Merge, de mettre cette branche-là, donc cette nouvelle fonctionnalité dans la branche principale. Donc, on parle toujours de branche sur GitHub. C'est hyper important que tu comprennes ça parce que vraiment, toute la suite de pouvoir travailler à plus, va être ça. Donc, n'hésite pas. Si tu n pas compris, on refait. Mais globalement, j'ai mes versions 1, 2, 3, j'avance sur main. Quand je veux faire une fonctionnalité, je ne pas sur main parce que j'ai envie de pouvoir revenir en arrière et peut-être que je veux pouvoir faire deux fonctionnalités en même temps. Donc, je vais créer une feature, Feature Profile. Quand j'ai fini de travailler, j'ouvre une PR à ce moment là, ce que tu n'as pas encore qu'il faut qu'on fasse quand mon code, moi aujourd'hui quand mon code, je fais une nouvelle fonctionnalité j'ouvre une pull request donc je lui dis ok, on s'apprête à mettre ça sur la branche principale et à ce moment là moi j'ai un agent qui regarde les changements dans le code à quoi ça sert ? ce à quoi ça sert c'est un, regarder si tu n'exposes pas des nouvelles failles de sécurité deux, de regarder que le code est propre trois, que tu ne fais pas de régression la régression de code ça veut dire avoir des fonctionnalités qui marchaient, qui ne marchent plus aujourd'hui, un des gros problèmes que tu as dans ton donc on appelle ça un répertoire un des gros problèmes que tu as c'est que quand tu ouvres une pull request il n a aucune action qui se lance qu'est-ce que c'est qu'une action ? je vais te montrer avec un de mes projets à moi ce sera très bien ça, c'est juste Will, quand je vais tout mettre sur ma plateforme in fine, t'es sûr qu'il n pas vraiment de risque à le faire montrer avec un...
- 22:00Neil
Genre de ton point de vue ? C'est-à-dire ? Non, non, non.
- 22:05Will
Parce que… Enfin, voilà, quoi. Non, non.'est jamais. OK. Non, il n pas de risque. Il n pas de risque si tu écoutes les concepts. Je sais que là, pour toi, ça va être chiant. Mais gros, si tu ne comprends pas ça, je ne pas comment tu vas avancer après tout seul.
- 22:19Neil
Oui, non, mais le truc, c'est juste que si je ne gère pas des situations de crise, entre guillemets, pendant notre coaching, quand je vais être seul face à ça… Oui, je serai là, mais bon. C'est cela… Après, mais l'idée, c'est qu'aujourd'hui, tu arrives à comprendre qu'est-ce que ça va être une situation de crise.
- 22:35Will
Et comment on empêche ça ? Moi, aujourd'hui, je te parlais de faire une branche. Tout à l'heure, j'ai travaillé, j'ai fait une branche. C'est ça, une action. Moi, quand j'ouvre une pull request, quand je dis je veux mettre ça sur la branche la plus haute, j'ai une IA qui regarde mon code, mais j'ai aussi ça, des tests. Et ça, aujourd'hui, tu n'en as pas. Et ça, c'est hyper important. Quand tu codes, tu dois toujours… C'est-dire que là, mes actions prennent du temps.
- 23:05Neil
Mais est-ce que le test, il prend du temps en plus ou il se fait en back-end ? Le test, se fait quand tu ouvres une pull request.
- 23:13Will
Donc, quand tu dis, OK, ma feature, elle est finie, ça se fait une fois et ça se lance quand tu ouvres la pull request. Et ces tests-là, c'est des tests qui écrits. Mais aujourd'hui, ton code n'a pas ça. Et ça, c'est très grave. Pourquoi c'est très grave ? Oui, parce que regarde, typiquement, je vais te donner un cas d'usage où moi, ça détecte même des bugs. Tu vois, ici, ça me dit que ça ne passe pas. Donc, c'est une façon de… Ça, c'est l'historique de toutes les actions qui sont lancées sur GitHub. Et genre, moi, ça me dit que ça ne passe pas. Et la raison, le test ne passe pas. Et si je regarde mes tests, ça me dit, OK, sur tes 14 tests, il y a un qui n'a pas passé. Ça, ça a juste découvert un bug qu'en faisant du changement de code, j'ai introduit. Et au lieu d'envoyer ça en production, ça, m'a dit non. Tu vois, c'est test, detect, change, build. deploy, donc en gros l'équivalent c'est je teste et j'envoie sur le serveur pour que tout le monde ait la mise à jour mais là ça m'a dit non,'as un bug et ça c'est un truc qu'il va falloir qu fasse, donc ça on va le faire ensemble, vais te set up les choses et tout mais typiquement c'est comme ça que ça marche quand t'as un projet, quand t'as un projet t'as une branche main tu crées une feature et t'as une phase d'ouvrir une PR,'as une phase de relecture par un agent aujourd'hui parce que normalement c un humain qui est censé le faire t'as une validation humaine pour dire que c'est ok mais t'as aussi des tests qui se lancent au même moment, ok, t'as des GitHub Action ok, mais moi ce que je fais en ce moment c'est que après chaque heure on dit vérifie qu'il n aucun bug oui mais ça c'est de la merde non, ça c'est de la merde c'est vraiment en tout, en fait il y a une différence entre, il faut bien que tu comprennes qu'un agent, si tu lui dis vérifie qu'il n aucun bug doit aller lire tout le code essayer tous les cas d'usage dans sa tête et se dire est-ce que ça marche c'est impossible et j on et on C'est impossible et ça risque de ne l'être avant longtemps. On parle de cache track. Si je demande ça, je fais exploser Capture. Je fais exploser l'agent. Ça, c'est pas ce qu'on Mais par contre, tu peux dire à un agent, à chaque fois que tu implémentes des fonctionnalités, crée des tests. Moi, j'ai ça. Si on regarde, tac, tac. Donc ça, c'était 3, mais je vais te montrer plus tard. Si je mets cache track, je te montre. Donc ça, c'est les dossiers de cache track que je suis en train de te montrer. Ça, c'est mes dossiers. Donc c'est mon code. Si tu regardes, mon API, c'est mon back-end, on va dire. Tu vois, j'ai un dossier de texte, un dossier de test qui a, par exemple, un exemple super con. Ce serait, je ne sais rien. Tiens, typiquement, pour la connexion iClose sur cache track, j'ai des tests. Et donc j'ai du code qui se run pour être sûr que la connexion aujourd'hui marche. Mais demain, si je fais un petit changement à la compte sur iClose, que ça marche toujours. C'est à ça que ça sert, ok ? Donc ça, ça veut dire qu'il va falloir qu l'implémente, ok ? Est-ce que pour GitHub, tu as à peu près compris ? Est-ce que tu as des questions ou pas ? Parce que j'ai été rapide, il y a plus de choses à voir, mais est-ce que tu as compris ? Globalement, si je redis, GitHub, ça te sert à versionner ton code.
- 26:20Neil
permet de... Non, mais t'inquiète, j'ai compris en vrai.
- 26:23Will
C'est sûr ?
- 26:24Neil
Historiciser ton code, ouais, Après, l'objectif avec toi par rapport à ça, c'est qu'on mette plein de sous-agents qui vont vérifier et qu'il n pas de bug, tout est fonctionnel après coup, et point à la ligne.
- 26:34Will
Sur le GitHub, on va aller configurer ce qu'on appelle une pipeline, une CI, Continuous Integration. C'est ce que je t'ai montré là. Moi, j'ai plein de CI qui se run. Et ça, un, ça sert, tu vois, là, je sais que les tests ne pas passés, là, je sais que les tests sont passés. Un, ça sert à ne faire de régression. Deux, tu as quelqu'un qui audite ton code. Trois, tu... tu as une meilleure séquence juste pour que tu comprennes sur ton répertoire ton front-end c'est un peu de la bite ton front-end c'est le dossier SRC c'est là où il y a toute ta UI donc tout l'affichage et c'est super base ton back-end c'est super base ton back-end donc ça il faudra qu'on regarde ensemble ok pour GitHub tu es à peu près clair on va dire ok maintenant je voulais regarder ça tout à l'heure parce que du coup je ne pouvais pas le voir non c'est pas ça alors tu m'as invité il me semble sur super base si je ne pas de bêtises c'est n.c10 super base non je ne pense pas tu m'avais demandé je crois je peux aller vérifier Moi, ne pas allé dessus, mais du coup, je vais vérifier maintenant. Tu m'as ?
- 28:18Neil
Non, attends.
- 28:20Will
Ah ouais, putain, ça casse les couilles, ça. — Accept Supabase invite from Neil; then audit RLS and fix admin-access leak
- 28:27Neil
Non, je peux vérifier de mon côté. Non, mais attends, parce que je n pas de compte, en fait.
- 28:33Will
Je pense pas t'avoir ajouté, non. Si, tu m'as ajouté. Organisation, je vois un membre. Project Access.
- 28:43Neil
Ah non, tu ne m'as pas accepté, ça s expiré. Ok, ouais, c'est ça. Donc, je te remets le monde.
- 28:48Will
Oui, invite-moi. En tant que développeur.
- 28:55Neil
Ok, email adresse. Oui.
- 29:00Will
Il y écrit, ils me mettent une notice, tu as déjà été invité. T'inquiète, je pense que je peux récliquer.
- 29:07Neil
Il y marqué expiré, donc je vais l'annuler et resend. C sûr ?
- 29:12Will
Ah oui, invitation. Ah, resend invitation. Vas-y.
- 29:17Neil
Normalement, ça change. C'est envoyé.
- 29:31Will
Alors, c'était ça que je voulais vérifier. Donc là, tu ta base. Bon, ça, tu as compris la moitié des choses que tu vois là-dessus ou pas ? Quand même.
- 29:38Neil
Ça va, je pense pas que tu es...
- 29:42Will
Ça, tu comprends.
- 29:44Neil
Ta base de données, est là. Ça, tu es OK ?
- 29:46Will
Je comprends, non.'est-à-dire que là,'ai compris. Là, tu es sur Superbase. Là, suis sur... Tu vois mon écran. Oui, oui. Là, y a toutes tes données, etc. Tu sais.
- 30:03Neil
Là, je vois les trucs qui commencent à être sympas.
- 30:08Will
Un-restricted, ça, feuille route élève, c'est-à-dire tout le monde peut y accéder, mes pièges, tout le monde peut y accéder, quiz régression, tout le monde peut y accéder. Alors, attends, parce que ça, je n'y étais pas encore allé. Oui, mais c'est fait exprès. OK. Non, c'est-à-dire que les quiz, sont les mêmes pour tous mes élèves, c'est ça le truc.
- 30:27Neil
Oui, mais ça n'a aucun rapport avec le fait que ce soit public, mais OK.
- 30:30Will
Ah, OK, OK, pardon. Ah, ouais, le dédain.
- 30:36Neil
Non, je ne pas dans le dédain, attends.
- 30:37Will
Laisse-moi regarder un truc, je voudrais regarder où est-ce qu'ils sont les variables d'environnement. Attends, putain, où est-ce que c'était cette merde ? Putain, ils ont tout rechangé, ça me termine. Après, n'as pas besoin de le publier, je ne sais et dans le code... Il le fait là, en vrai,'as de la chance. C'est pas mal d'avoir utilisé les Superbis, parce qu'en vrai, fait qu'il ne fait pas trop de la merde sur certains points, je suis en train de voir. Là, tu dois avoir les hedges, c'est ça ? Ouais. Ok, du coup, je les utilise depuis ici. Ah, c'est ça que je voulais, des no-anv, getOpenAiki, et le secret, ils sont... Attends, d'accord. T'as pas les hedges levés sur la... Tu utilises de l'IA, ton... Je vais demander des questions, c'est rien du tout. Tu utilises de l'IA dans Superbis ? C'est pas tes hedges. Mais où est-ce qu'elles sont enlevées tes hedges, là ? comprends pas. C'est pas ça. Ok, alors, je vais le reposer autrement. C'est pas ce C'est que des edges déjà. Je le sais. Donc, en fait... Ah, tu sais que ça me saoule de ne pas pouvoir faire le dessin, là. Attends. On va le faire autrement. Ah, mais je sais comment je peux faire. Attends, mais gros, je sais exactement comment je peux faire. Regarde. Regarde le boss, attends. Dis-moi que ce n pas connecté, ça, les deux. C'est impossible que ce ne pas connecté. 100% que c'est connecté. Bah oui, tu vas sur Miro. Tu peux faire ça sur Miro, par exemple. T'inquiète, t'inquiète pas, regarde. Voilà. Mec, incroyable. Ok, je suis un bâtard ou quoi ? Comment je fais pour dézoomer, là ? Voilà. OK, du coup, ça, c'est important que tu comprennes au niveau de Superbase. OK, alors, tac, tac. Je vais juste regarder où est-ce qu'il se fait mon petit S. Non, n pas si pratique. Ça met trop de temps. OK, allez, n'y que sa mère, je le faire sur la figure. Oh, ça m'énerve, ce truc. Non, pas de chance. Je comprends pourquoi ça marche sur l'autre et pas sur ça. C'est de la merde. OK, du coup, il faut que tu comprennes ça parce que c'est hyper important, surtout là, typiquement, les variables d'environnement. Superbase. Déjà, je veux que tu comprennes ce que c'est que Superbase. du coup, je vais te montrer, je vais t'expliquer ce que c'est que front-end, back-end. OK, hop, hop, hop. Donc, globalement, déjà, va faire ça, ce bloc-là. Interrompt, on s'y comprendra. Globalement. Le premier truc à comprendre,'est que tu as un serveur. Un serveur, c'est juste un PC. Jusque là, tu me suis ?
- 34:06Neil
C'est juste un PC, comme ton PC ou mon PC, qui tourne.
- 34:09Will
Dans ce serveur-là, aujourd'hui, tu as mis deux choses. Tu as mis un front-end. Tu utilises aujourd'hui Next.js pour le faire. Next.js, c'est le langage, on va dire. Et ça, c'est ton front-end. Le front-end, ça permet quoi ? Ça permet à des élèves A. D'accéder. Donc, mon front-end, il est sur mon serveur. Et élève A, il accède à mon front-end. Là-dessus, es d'accord ? Et après, j'ai Superbase, qui me sert de back-end. Donc, tu imagines bien que je vais faire… Donc, quand élève A… Quand l'élève A, il essaie de se connecter au front-end, typiquement, ils ont des comptes, des utilisateurs. Ils ont des comptes, ils essaient de se connecter, le front-end envoie un message au back-end, le back-end,'est Superbase. Ça, c'est comment marche un serveur de manière générale. Superbase… Et GitHub, tu le mets où ? Dans front-end ou back-end ? Dans back-end, du coup ? Eh bien, GitHub, c'est ni l'un ni l'autre, parce que GitHub… Donc, ça, c'est sur le serveur. GitHub, c'est juste… Alors, je sais comment on peut faire. GitHub, ça contient tes dossiers. Donc, GitHub, c'est juste un environnement de versionning, d'accord ? Mais GitHub contient tes dossiers front-end, donc front-end, back-end.
- 35:59Neil
Ce n pas la même chose.
- 36:00Will
le serveur que fait github c'est qu'il envoie le code il envoie le code il envoie donc tout ce code là ok donc tous tes dossiers avec le front end et le back end il envoie sur le serveur et après le serveur à ce truc là le serveur héberge le code et le serveur héberge le code exactement et il le lance et du coup ça marche mais mais github lui il a juste les dossiers sans lancer le code il a juste les le code c'est tout c'est pour ça surtout tu peux lancer en version locale parce que tu as le même code que sur ton serveur et après quand on tab il envoie au serveur bat le même code mais en version sur le serveur distant ok ok maintenant qu'est ce qui est important à comprendre supabase ça te sert à plusieurs choses si maintenant je me focalise sur supabase on va faire juste donc ça tu as compris globalement ouais je veux juste qu'on regarde plus en profondeur ce que c'est que le front-end, ce que c'est que le back-end par rapport à SupAbase puisque du coup c'est ça qui est intéressant, notamment les hedges. Donc front-end, on imagine qu'on a un utilisateur A qui envoie, ça sera super simple, on va faire avec tes cas d'usage comme ça ce sera même encore plus simple. Je veux une correction. Le front-end, donc il a une interface qui te permet de faire la demande, le front-end il va demander au back-end, je veux la correction de l'élève A. C'est hyper important ce que je suis en train d'éclairer. Je n pas écrit la même chose parce que ce n pas la même chose. Je suis A et je veux une correction, mais le front-end pour dire au back-end je veux la correction, il ne dit pas je veux la correction, il veut la correction de l'élève A. Le back-end, et c'est là où le mot arrive, le back-end c'est SupAbase, donc je vais mettre SupAbase ici comme ça c'est clair. On ne va pas se faire chier à'expliquer vraiment la différence. Donc, Superbase, il a deux choses. Il a une base de données. Ça, tu l'as déjà vu. Il a, on appelle ça un bucket, on va y revenir plus tard. Mais globalement, un stockage de dossiers. Typiquement, aujourd'hui, peut-être que tu gères leur PDF dessus. Est-ce qu'il y des PDF qui sont stockés ? Oui. Oui, OK. Donc, PDF. Donc, le stockage de dossiers, typiquement, on va mettre PDF, entre guillemets, OK. Mais normalement, Superbase, c'est que ça. C'est-à-dire que c'est juste une base de données qui a de la donnée, auquel tu peux faire des éditions. Donc, si par exemple, je suis un LFB, je vais te montrer c'est quoi la différence. Comme ça, tu vas comprendre le mot Edge. Je suis un LFB, OK. Je veux me renommer sur la plateforme, OK. On va faire ça comme ça. Ça ne pas trop être compliqué. Nouveau nom. Je veux un nouveau nom. Je m'appelle B et je veux m'appeler C. Là, le frontend, va juste demander à Supabase B veut nom C. Tu me suis jusque-là ? Je n pas compris le truc avec B. Comment ça, nouveau nom égale C ?
- 39:28Neil
En gros, je vais t'expliquer pourquoi le edge, c'est différent de la base de données.
- 39:32Will
Si on refait juste B, c'est l'utilisateur, s'appelle B et on veut qu'il s'appelle C. On veut qu'il s'appelle C.
- 39:41Neil
Pourquoi on veut qu'il s'appelle C ? Il a envie. Cette personne-là, a envie. Elle va changer de nom.
- 39:48Will
Le frontend, en changeant de nom, il va juste demander à la base de données de Supabase je veux me renommer. Juste ce que ça fait, en réalité, fait que ça va dans le frontend.
- 39:57Neil
Le frontend demande à Supabase et il demande à
- 40:00Will
base de données. Ça, n pas un edge. Ça, c'est juste ce que permet Superbase de base. Oui, c'est informatif. Exactement, c'est informatif. Par contre, je veux une correction. va demander à… Imaginons, tu vas faire un appel à l'IA. Donc, ce n pas la base de données. Je vais faire quelque chose. Il y a un travail. Et c'est là qu'intervient le edge.
- 40:22Neil
Donc, en fait, A va demander aux frontaines, je veux une correction.
- 40:26Will
Superbase, tu vas dire, Superbase, je veux la correction, l'élève A. Mais Superbase, pour donner la correction, il va devoir demander un travail. Et ce travail, on l'appelle un edge sur Superbase. C'est un endroit qui te permet de faire créer correction. Ça, c'est un edge. Et si je te demande dans ton code à quoi ça ressemble tes edges. Donc là, dans Superbase, tu as un dossier qui s'appelle Superbase. Alors, ça, c la partie qui m'inquiète, mais je vais finir par comprendre comment c t'as un truc qui s'appelle quiz et j'imagine que tu dois avoir un travail pour faire des quiz j'en sais rien là actuellement il y un truc qui me choque un peu plus que ça mais je regarderai plus tard mais en gros tu vois là je vois tes propositions de quiz je sais pas quoi et donc ça c'est un worker c'est un edge donc c'est juste une sorte de travail de travailleur t'as compris c'est sûr et tu le retrouves ici dans ton Superbase ça s'appelle edge function ok très clair et donc typiquement donc c'est de ça qu'on parle ça alors tu passes beaucoup de temps sur Superbase et Github ou en vrai non ? je sais comment ça marche Github oui je l'utilise tous les jours mais Superbase oui'utilise un équivalent de Superbase mais c'est pas du tout le même fonctionnement moi c'est pas la même architecture mais juste en fait il faut que tu pas la 소리 puis que je
- 42:00Neil
prenne les points où il faut que tu fasses attention, où il faut que tu fasses des bonnes choses.
- 42:05Will
Là, typiquement, Supabase, qui gère super bien, si on espace un peu, c'est cette partie-là avec la base de données. Je vais y revenir après. Il y une façon de sécuriser la base de données, mais ça, je t'ai donné, j'ai créé un skill qui va te le faire bien, qui, en gros, si tu sécurises bien ta base de données par rapport à tes utilisateurs, en vrai, tu ne pas avoir de problème sur ta data. On parle de RLS, donc le secteur d'application de ça, c'est du RLS. Tu dois l'avoir déjà vu ici. Si je vais dans mes tables ici, tu as un truc ici, là, je pense. Add RLS policy. Là, en as déjà des RLS ici, mais on va les voir ensemble, justement. L'admin lit les avis, l'élève lit ses avis, le correcteur lit les avis de ses corrections. en gros c'est toutes les règles où je dis bah telle personne ne peut pas accéder à telle donnée donc ça je t'ai créé un skill qui va te permettre de vérifier que les tables que t'as créé elles sont bien sécurisées c'est hyper important parce que c'est ça le truc de superbe si tu le fais mal tout le monde peut accéder à ta donnée ok ouais mais une fois que t'as appliqué ça et c'est pas très compliqué cette partie là elle est bien corrigée c'est à dire qu'elle est quand même bien sécurisée et je pense que c'est difficile aujourd'hui avec l'IA d'écrire de la merde là t'as peut-être de la merde d'écrit mais une fois que tu lui mets un skill je vais t'expliquer comment ça marche plus tard certainement pour aujourd'hui mais dans les semaines à venir une fois que t'as fait ça en fait à chaque fois il va aller vérifier ton schéma de données donc les tables et va dire ok ça il faut le sécuriser parce que sinon telle personne peut y accéder typiquement aujourd'hui t'as une faille RLS pourquoi ? parce que je suis capable en étant un élève d'accéder à la partie admin c'est pas ce que tu veux suis étant un élève Un élève ne doit pas pouvoir demander l'anime. Mais ça, c'est parce que tu as mal branlé ça. Parce que j'ai mis le même portail à tout le monde, pense.
- 44:09Neil
Le même portail de connexion.
- 44:11Will
Non, ce n pas ça, justement. C'est dans la partie back-end. C'est cette partie-là que tu mal faite. Parce que tu ne savais pas qu'il fallait dire « Ok, fais attention à mes droits RLS pour la partie. Je ne veux qu'aucun élève n'ait d'accès aux admins. » Typiquement, les trucs que tu aurais dû dire, c'est « Regarde mes schémas RLS que tu as faits. » « Je veux qu'aucun élève ne puisse accéder à des infos admins. » Et là-dessus, il aurait été retravaillé. Maintenant, le RLS, une fois qu'on a sécurisé ça, c'est bien. La partie stockage, elle est déjà sécurisée par Superbase. Donc, en vrai, je ne pas pouvoir t'expliquer grand-chose dessus. Le RLS, c'est le seul truc qu'il faut faire attention. Maintenant, les hedges insécurisés, ça, c'est important. C'est important pourquoi ? Parce qu'en gros, ça, c'est du code que toi, écris, que Superbase ne sait pas ce que tu fais dessus. tout. Merci. il faut que tu fasses attention à ne pas te faire attaquer. Attaquer, par qui ? Eh bien, je vais t'expliquer quelque chose. Tout à l'heure, t'ai dit, si on reprend l'exemple… Donc, tu as compris pour B, là, je peux… Attends, je vais juste copier ça parce que… Oui, j'ai compris. Hop, hop, hop, hop, hop, hop, hop, Voilà, si je reprends mon exemple de la correction, en gros, ce qui se passe, c'est qu'à partir du moment où tu crées une edge qui s'appelle « Créer correction », ça veut dire que tu exposes un point d'API, donc si j'enlève le front-end, tu exposes un point d'API sur ta correction. Tu exposes un point d'API ? Quoi ? Un point d'API ?
- 45:49Neil
Oui, justement, je vais y revenir, ne bouge pas.
- 45:54Will
Tu exposes un endroit, tu exposes dans ton serveur un endroit qui dit « Créer correction ».
- 46:00Neil
Mais pourquoi on parle de ça ? Je vais te donner l'exemple.
- 46:03Will
Créer correction, on va dire que ce que ça fait, c'est que ça demande à GPT, et c là où ça devient intéressant, demande à GPT de créer correction. On ne s'emmerde pas. Ça, ça veut dire qu'à partir du moment où tu as créé cette edge, tout le monde, moi même, moi compris, je peux aller trouver ce endpoint. Qu'est que ça veut dire un endpoint ? Ça veut dire qu'il existe un lien. Il existe un lien, ok, xxx.lapreta.au carré, là, au carré, slash, créer correction. Ça veut dire que si moi, je suis un hacker, ça, je le trouve. Tout le monde peut le trouver. Ce n pas caché, j'en ai besoin, puisque c'est ça que tu appelles quand tu fais créer la correction. Mais par contre, à partir du moment où tu exposes un endpoint, veut aussi dire que tu exposes à tout le monde le fait que si je trouve, donc, hop, maintenant que tu sais ce que c'est qu'une edge, si je trouve une faille dans cette... edge-là, du coup, peut-être que je vais pouvoir exploiter ton chat GPT. Autrement dit, si ton endpoint, par exemple, quand tu vas créer une correction, tu vas me donner, je vais te donner, pour créer une correction, imagine l'élève A, elle veut créer une correction, elle va te donner le document que tu veux corriger. Elle va donner le document à corriger. Tu es d'accord avec ça ? Oui. Ça veut dire que cette URL-là, dis-moi si tu ne me suis pas, peut-être que je vais vite là, cette URL-là, que tout le monde peut accéder, puisque c'est comme ça qu'on va créer une correction. C'est comme quand tu me dis, je veux le MCP. Il a besoin de donner en même temps cette information-là, le document à corriger. Donc, ça veut dire que, en gros, l'URL, quand je fais la demande avec cette URL, j'envoie un document. Évidemment. Et peut-être que ce document est... corrompu. Mais si tu ne sécurises pas ce document, peut être un hack, par exemple, qui s'installe sur la machine. Si tu ne sécurises pas ici l'entrée, si tu ne vérifies pas avant de demander à la GPT... C'est capté. C'est comme un fichier. Oui, c'est corrompu. Je te donne vraiment le truc bateau. C'est corrompu. Il peut te faire injecter. C'est pour ça qu'à partir du moment où tu as des hedges, il faut commencer à vérifier que on ne puisse pas créer une faille depuis ça. Là, typiquement, la façon facile,'est que créer une correction, tu un document à corriger. Le document, il n'est pas bien. Imaginons... La façon dont ça pourrait se passer, c'est que le document, c'est un script qui se lance quand tu le charges et ça te baisse tout. Mais typiquement, ça pourrait très bien récupérer ton API de GPT et après consommer tes crédits. Donc, c'est ça qu'il va falloir aller corriger. Donc, si je récapitule, Supabase, ça a des edges qui exposent des endpoints, on appelle ça, des points d'entrée. Et comment les points d'entrée ? Ce serait créer correction, par exemple. Créer correction, créer devoir, je ne pas, créer DS en automatique. Ça, as déjà ça, non ? Bien sûr.
- 49:26Neil
Après, créer DS, typiquement, c'est à partir d'une base de données. Donc, il pas de risque, l'impression, au de ce que tu dis.
- 49:34Will
Oui, mais il y a bien, à un moment donné, un edge qui va le créer. En fait, ce que va faire ton truc, c'est que ça va faire créer DS, créer DS va aller demander à Supabase, base de données.
- 49:46Neil
La perte se finit dans 11 minutes, il va y créer.
- 49:51Will
Ah, putain, je connectais avec le mauvais truc, casse le coul. Merde. Ce n pas grave, je voulais te laisser, c'est pour ça. Sous-Canada-titrage Genre, créer des rêves, que ça va faire, c'est que ça va quand même aller demander à Supabase des infos. Et une fois que ça a fait la réponse, ça te renvoie le résultat. Est-ce que déjà au niveau de comment l'utilisation, là, ça va vite, ce n même pas une heure.-ce que tu es sûr d'avoir compris ou pas du tout ? J'ai compris, évidemment.
- 50:24Neil
Je dois en revoir, mais j'ai totalement compris. C'est logique dans tous les cas.
- 50:29Will
C'est logique.
- 50:31Neil
C'est comme quand on nous fait cliquer sur des liens de phishing. C'est un peu l'équivalent pour le dev.
- 50:38Will
Oui, parce que je t'ai pris un exemple simple. Mais là, je ne suis pas trop rentré dans les détails. Mais globalement, qu'il faut que tu comprennes, c'est que... Le seul truc qui m'inquiète, c'est où est-ce que c'est dans ton code ? que ça, c'est la partie qui me... Après, je peux demander à Claude où est-ce que c'est dans mon code. Je suis sûr parce que je ne vois aucune... Ah non, mais il y en a des hedges parce que leurs essais sont corrigés, par exemple.
- 51:06Neil
Oui, c'est pas ça, c'est que, regarde.
- 51:08Will
Quoi ? Attends, ça me termine ce qui est écrit. Non, attends. D'abord,-y, demande à Claude où est-ce que c'est. Demande à Claude où est-ce que c'est quoi, précisément ? Demande où est-ce que c'est... Demande où est-ce que c'est, par exemple. Est-ce qu'on utilise une hedge pour créer un devoir ? Demande ça.
- 51:34Neil
Est-ce qu'on utilise une clé hedge ou juste une hedge ? Non, une hedge, E-D-G-E.
- 51:39Will
Je lui dis sur quel logiciel ou pas ?
- 51:41Neil
Une hedge sur Supabase, par exemple, pour créer les devoirs ou corriger les essais. Moi, je passe par une API hier dans ma tête. Ouais, non.
- 51:57Will
Allez, je te dirai ce qu'il me dit, Wolf. C'est là, tout cas. Là, tout cas, je ne vois pas. Attends, vais dire, réponds-moi en priorité.
- 52:07Neil
Réponds à ça. Non, mais tu peux créer un autre chat.
- 52:11Will
Ah ouais, je ne le dis pas dans la description où je fais tout ça.
- 52:15Neil
Ok, alors, ça, c'est la partie qu'il va falloir qu commence à regarder ensemble, parce que ça m'inquiète.
- 52:21Will
Peut-être que semaine pro, on regarde comment tu travailles. Non, non, aucune aide.
- 52:25Neil
Mécanisme est PG-8-Cron plus PG-8-Net. Dans Postgres, flèche route vers le portail Vercel. Même schéma.
- 52:38Will
Ouais, c'est de la merde. Pourquoi ? D'où le fait que vois aucune aide. Donc, en fait, ce qu'il te dit, c'est que tu as un Chrome ici. Ouais, c'est ça. Attends, je t'envoie sur WhatsApp ce qu'il m'a écrit exactement si tu veux. Merci.
- 53:10Neil
Voilà, le death. Oh la vache. C'est hyper mauvais à dire à un élève. Quoi ? C'était ça que je lisais, que je ne comprenais pas la dernière fois.
- 53:29Will
C'est ça les nets que tu as sur les crônes. Ça marche très bien.
- 53:35Neil
Oui, mais c'est de la merde. Pourquoi ?
- 53:38Will
Je pèse mes mots. Ok, tiens, tu sais décrire comment tu... Ok, vas-y, explique-moi comment on fabrique un DS. Je vais te montrer pourquoi c de la merde. Un DS, concrètement, les élèves lisent des chapitres.
- 53:52Neil
À partir des chapitres, on a mis la data sur Supabase, il a les annales répertoriées et ça génère des sujets. Ok.
- 54:00Will
Ça leur envoie instantanément ? Non, il y une friction humaine. Tu n rien à dire.
- 54:09Neil
C'est-à-dire que le correcteur, il vérifie que le suivi est bien fait, sinon on corrige.
- 54:14Will
Ok, mais j'ai une question. Pourquoi quand je fais une demande de DS, je dois attendre trois minutes que ça me fabrique le DS ?
- 54:24Neil
Parce qu'il faut sélectionner les bons exercices en fonction de la demande de l'élève. Non, n pas ça que je te dis.
- 54:29Will
Ce que je te dis, c'est que si j'ai choisi… En gros, la façon dont ça fonctionne, c'est que… tous les cas, les DS, ils sont réservés en avance. Deux secondes, deux secondes, deux secondes.
- 54:57Neil
C'est peut-être mieux de parler des essais parce que la fonctionnalité DS…
- 55:00Will
on l'a pas trop aujourd'hui pour l'instant on passe par whatsapp mais les essais ils utilisent les élèves wolf ok le nanny du code gros chaud ah oui maintenant je veux comprendre ce qu'il fait du coup tu fais la demande wait admin from essai ah c'était ça le truc ok bon alors ça va c'est brillant non ok disons disons ok super base c'est comme si tu avais un marteau ok ok et un clou à planter et au lieu d'utiliser le marteau tu utilises un tournevis c'est exactement ce que tu fais en gros il ne t'a pas créé il ne t'a pas créé d'edge ok ce qui se passe en quoi c'est grave est ce que ça me coûte de l'argent est que j'en cours des risques — Audit Supabase edge functions and Next.js server routes for security; then harden and migrate heavy logic to Supabase edges Oui, alors oui, typiquement, là je suis en train de capter un truc, c'est que si tu n'as pas mis la faille de sécurité, là actuellement, tu es baisé. Je vais regarder tout de suite.
- 56:15Neil
Bien sûr, Fabien.
- 56:19Will
Non. Allez, super, bonne chance. Ok, donc je vais t'expliquer ça dans d'autres mots. En gros, là actuellement, bon, ouais. Mec,'est tellement, je me rends compte qu'il y a tellement de trucs à voir. Ok, on recommence. Tout à l'heure, te disais, le front-end, c'est ce qui permet de voir que les utilisateurs voient. Tu te rappelles de ça ? Oui. Ah, ils demandent là-dessus. Mais en fait, le front-end que tu utilises s'appelle Next.js. Et Next.js, il est un peu salaud parce qu'il te permet de faire deux choses. te permet de faire du front-end pour de vrai. Ça veut dire que'est quand même la fichette. Mais il fait aussi un peu back-end, ce petit salopio. Moi, je l'utilise comme ça, du coup. Et toi, tu l'utilises comme ça. Sauf que Supabase, ça sert aussi à faire du back-end. C'est super Supabase pour faire du back-end. Mais du coup, quand tu utilises le back-end de Nest au lieu d'utiliser le back-end de Supabase, c'est pour ça que tu n'as pas de edge de base. Sauf que là, le Supabase, où tu as un gros avantage par rapport à la sécu,'est que Supabase, il est maintenu pas par toi, mais par Supabase. maintenu sur Supabase. typiquement, là, la faille qui est sortie il y a genre 10 jours, elle permet d'exploiter le serveur. Donc là, ce que ça veut dire, c'est que... Je ne peux pas le passer backside ? Il est capté, il est capté. Là, que ça veut Pourquoi il y des failles à partir de ça ? Ah, la faille de ce truc-là me permet d'accéder à tout ton truc-là. Et sauf que tout ton truc-là contient toutes tes clés API. Alors que si c'était sur Supabase,'est Sous Si ce backend était sur Supabase, Supabase aussi, il peut être infecté. Mais la différence, c'est que pas que toi qui le host. Donc, ça veut dire que tout ton backend, si jamais tu as un problème et de toute façon, ils sont hyper réactifs, eux, ils réparentent. Sauf que là, actuellement, tu ne l pas réparé. Donc là, tout le monde peut récupérer. C'est pire que ce que je pensais. Ce n même pas l'audit de sécurité. Là, tout le monde peut récupérer instantanément. Fais voir la gueule de tes merdes. DS fabriquait. Il doit y avoir du Open AI quelque part. Non, pas ça. Il y en a un qui utilise de l'IA ou pas ? Oui, les essais. Lequel les corriger, du coup ? Oui, je crois. Ça corrige les élèves. Oui, typiquement, Anthropik, APK, là, typiquement, ça veut dire que je pourrais avoir ça. Là, si je suis mal intentionné que je tape ton serveur, je peux, dans deux minutes, vraiment te reverse et récupérer ça. Donc, Ça, ça ne va pas. Ça, ça ne va pas. Donc oui, moi, je le changerai à ta place. Donc, ça veut dire que ça existe, mais vu que tu ne comprends pas tous les enjeux de sécurité, tu vois, quand tu as une faille reverse shell, comme il s'est passé le 23 octobre, là, typiquement, tu es baisé. Alors qu'au moins, tu as l'avantage avec un truc de superbeil, c'est que quand ce ne pas des failles qui viennent de ton code, elles sont automatiquement réglées. Ça veut dire que là… D'ailleurs, est-ce que ça va changer quelque chose en termes de qualité de rendu ou pas ? Parce qu'ils sont très contents de la qualité du rendu.
- 59:28Neil
Non, ça ne pas changer.
- 59:29Will
Mais de toute façon, la façon dont tu l'as fait, ça pue. Parce que la façon dont tu l'as fait aujourd'hui, c'est même pire. Enfin, c'est vraiment pas ouf. Parce qu'en fait… OK. Là, il faut te dire que pour créer un DS, tu passes par plein de trucs qui servent à rien. OK. Créer un DS, c'est censé faire ça. Frontend, Superbase. Ah, fils de pute. Edge, OK. Into.