Bambu Bar
Monitor Bambu Lab printers from your Mac menu bar: print progress, the live camera, AMS filament, alerts and desktop widgets. Bambu Bar for macOS 26+.
Gère et suit des tâches selon leur urgence et leur échéance
Translation pending
AI summary · revised during review
ProductivityJavaScript · CSSGitHub @zaqqxOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Site statique + fonctions serverless Vercel (/api) + Supabase. Node.js 22+ est nécessaire.
| Fichier | Rôle |
|---|---|
index.html | Pages (connexion, liste, formulaire) |
style.css | Styles |
app.js | Logique client, appelle les endpoints /api/* |
api/bootstrap.js | Démarrage : devs, tâches non terminées et terminées des 30 derniers jours, en un appel |
api/login.js, api/logout.js | Connexion (limitée à 5 échecs par IP sur 15 min) et déconnexion |
api/tasks.js, api/tasks/[id].js | Création, modification (avec détection des modifications concurrentes), suppression ; pages de terminées anciennes |
api/devs.js, api/devs/[id].js | Devs : liste, ajout, renommage, suppression |
api/comments.js | Commentaires d'une tâche |
api/keepalive.js | Requête quotidienne (Vercel Cron) pour éviter la mise en pause du projet Supabase |
api/_lib/*.js | Client Supabase admin, session signée, retry, validation des tâches, erreurs |
build-config.mjs | Valide au build que les variables d'environnement requises sont présentes |
schema.sql | Tables, migrations, index et sécurité (RLS sans policy) — idempotent |
vercel.json | Build, région des fonctions, en-têtes de sécurité |
L'accès n'utilise plus Supabase Auth. La connexion se fait avec APP_LOGIN / APP_PASSWORD, vérifiés côté serveur uniquement par api/login.js. Une fois validés, un cookie de session signé (HttpOnly, Secure, SameSite=Strict, 8 h) autorise l'accès aux endpoints /api/tasks, /api/devs, etc. Toutes les requêtes vers Supabase passent par ces fonctions serverless, qui utilisent la clé secrète (SUPABASE_SECRET_KEY) — jamais exposée au navigateur.
/api/login répond 429 (« Trop de tentatives ») ; une connexion réussie remet le compteur à zéro (table LoginAttempt).schema.sql (voir « Migrations »).service_role / sb_secret_...).SUPABASE_URLSUPABASE_SECRET_KEYAPP_LOGINAPP_PASSWORDSESSION_SECRET (chaîne aléatoire longue, ex. générée avec openssl rand -base64 32)CRON_SECRET (autre chaîne aléatoire longue) : protège /api/keepalive, voir « Mise en pause de Supabase »node build-config.mjs) et le répertoire de sortie (.) sont déjà définis dans vercel.json.schema.sql contient tout le schéma et toutes les migrations, et il est idempotent : on le ré-exécute en entier (Supabase → SQL Editor) à chaque évolution, sans risque pour les données.
Toujours exécuter schema.sql AVANT de déployer une version qui en dépend : le code lit des colonnes et des tables (notes, TaskComment, LoginAttempt, updatedAt mis à jour par trigger…) qui doivent exister. Dans le cas contraire, /api/bootstrap ou /api/login échouent et l'application ne se charge plus.
Ce que le fichier met en place :
Task, Dev, TaskComment, LoginAttempt ;Dev(name) : Task.assignedTo (renommage répercuté, suppression → non assigné) et TaskComment.author (renommage répercuté, suppression → « Ancien dev ») ;Task.updatedAt à chaque modification (utilisé pour détecter les modifications concurrentes et charger les terminées récentes) ;notify pgrst).Chaque action passe par une fonction /api qui interroge Supabase : les fonctions doivent tourner dans la même région que la base, sinon chaque requête traverse l'Europe (ou l'Atlantique) en plus.
vercel.json ("regions") :| Région Supabase | Région Vercel |
|---|---|
West EU (Ireland) — eu-west-1 | dub1 |
West EU (London) — eu-west-2 | lhr1 |
West EU (Paris) — eu-west-3 | cdg1 |
Central EU (Frankfurt) — eu-central-1 | fra1 |
East US (North Virginia) — us-east-1 | iad1 |
Le projet actuel est en eu-west-1 (Irlande) : vercel.json utilise donc dub1. Après déploiement, la région est visible dans Vercel → Deployments → (déploiement) → Functions.
npm install
node build-config.mjs
npx vercel dev
Copier .env.example vers .env et renseigner les variables avant de lancer. npx vercel dev est nécessaire (au lieu de npx serve .) pour exécuter les fonctions /api localement.
This is the beginning of the README. Read the rest at the original. Read the full README ↗