Revue de code de MemBox : une API mémoire soignée aux portes de tableau de bord ouvertes
MemBox réunit mémoire REST, fichiers, recherche, TTL, snapshots, webhooks, partages, analytics et GitHub. Le build passe, mais des routes sans auth exposent jetons et suppressions.

DEEP PROJECT REVIEW · SOURCE + LIVE PREVIEW
L’aperçu Vercel semble prêt pour les clients : on saisit un nom, on obtient un endpoint, on téléverse des fichiers, on remet un jeton bearer à un agent. Derrière cette page nette se cache un dépôt bien plus grand : 11 079 lignes de TypeScript/TSX, 22 fichiers de routes d’API, cinq langues d’interface, deux modes de stockage, liens de partage, instantanés, webhooks, analytique, appels par lot, TTL, recherche plein texte et un « cerveau » GitHub. Puis la revue arrive aux routes du tableau de bord. Plusieurs renvoient des fiches privées ou suppriment des boxes sans vérifier qui demande. Cette seule trouvaille change le verdict.
Points forts
- REST simple pour tout client HTTP
- Persistance GitHub et PAT chiffré par AES-GCM
- Cinq langues avec RTL correct
Risques critiques
- Routes sans auth exposent tokens, fichiers et suppression
- Tokens stockés en clair
- Limites 1 MB et 500 MB non appliquées
Comment c’est assemblé
Next.js 16 sert UI et routes. Prisma garde les métadonnées dans SQLite ; les fichiers vivent localement ou via GitHub Contents API. Un dépôt central transporte checkpoints, miroirs de partage et pairing.
Ce qu’il sait faire
L’API gère upsert, append, lecture, liste, suppression, upload, download, recherche, batch, TTL, snapshots, partages, webhooks et analytics, avec file browser et pairing GitHub.
| Layer | Reviewed implementation | Finding |
|---|---|---|
| Agent API | Bearer + share tokens | Read/write split exists |
| Dashboard API | Box and file routes | Authentication gaps |
| Storage | Local FS + GitHub | Flexible, operationally complex |
| Quality | Build, lint, audit | Build passes; lint and audit need work |
Où le contrôle d’accès tient, et où il lâche
Les routes agent exigent généralement un token et séparent lecture/écriture. Les gardes de chemin sont utiles. Mais `/api/boxes` renvoie les master tokens avec un username ; GET, DELETE et preview n’exigent pas d’auth. C’est un broken access control critique.
Une frontière par jeton bearer vaut ce que vaut sa route la moins protégée, et ici les endpoints du tableau de bord la contournent.
Risques pour les données et la plateforme
Les tokens sont aléatoires mais en clair en base. Un query token peut fuiter. Les webhooks acceptent toute URL sans blocage du réseau privé, créant un risque SSRF. Le rate limit reste par processus.
Ce que promettent les docs et ce que fait le code
L’UI promet 1 MB et 500 MB/fichier, mais la route lit tout dans un Buffer sans vérifier. Le site principal est expired ; la preview marche mais ses données sont éphémères.
Compile-t-il, passe-t-il le lint et les tests ?
Le build passe avec warnings de tracing. Le lint échoue sur six erreurs React. Aucun test. L’audit remonte neuf advisories : cinq high et quatre moderate.
Son allure et son texte
Le thème sombre, l’accent émeraude et le hero direct sont convaincants. “No limits” contredit 1 MB, et 500 MB n’est pas appliqué.
Par quoi commencer
Authentifier chaque route dashboard, ne pas sérialiser les master tokens, hasher les secrets, appliquer les caps avant Buffer, bloquer les webhooks privés, signer les payloads, partager le rate limit et tester l’auth en CI.
Verdict
La forme produit est forte et la preview soignée, mais les données importantes doivent attendre la correction de l’autorisation.
FAQ
Qu’est-ce que MemBox ?
Une API REST open source de mémoire et fichiers pour agents IA, avec recherche, snapshots, TTL, partages, webhooks et GitHub.
La démo fonctionne-t-elle ?
La preview Vercel fonctionne ; le site principal est actuellement expiré.
Est-il prêt pour des données sensibles ?
Non. Des routes sans auth peuvent exposer les tokens et supprimer des boxes.
Liens et auteur
Working Vercel preview · Primary demo (expired when checked) · Source
Reviewed source at commit e8e53b5 · Build and audit reproduced 2026-09-21