Files
minio-explorer/CLAUDE.md
2025-09-05 09:25:01 +02:00

4.3 KiB

MinIO Explorer

Vue d'ensemble du projet

Nom : minio-explorer

Description : Application web simple qui permet d'explorer les fichiers d'un bucket MinIO comme un "Index of" Apache classique. Navigation en lecture seule dans l'arborescence avec possibilité de copier les liens directs vers les ressources.

Architecture : Single Page Application (SPA) entièrement côté client, hébergée directement dans le bucket MinIO qu'elle explore.

Stack technique

  • Frontend : HTML/CSS/JavaScript vanilla uniquement
  • Backend : Aucun - communication directe avec l'API REST MinIO
  • Hébergement : Fichiers statiques à la racine du bucket MinIO
  • Déploiement : Via pipeline CD qui dépose les fichiers dans le bucket

Structure du projet

/
├── index.html          # Page principale
├── style.css          # Styles (type Index of classique)
└── script.js          # Logique de navigation et parsing XML

Fonctionnalités

Core Features

  • Détection automatique de l'endpoint MinIO et du bucket depuis l'URL
  • Parsing du XML retourné par l'API MinIO ListBucket
  • Affichage type "Index of" avec tableau (nom, taille, date)
  • Navigation dans les dossiers (clic sur dossier)
  • Liens directs vers les fichiers avec un bouton "copier le lien"
  • Lien ".." pour remonter dans l'arborescence
  • Navigation directe dans tout le bucket sans notion de sous-répertoire de contenu

Limitations volontaires

  • Pas d'upload de fichiers
  • Pas de modification/suppression
  • Interface minimaliste (pas de fancy UI)

Configuration technique

Auto-configuration

L'application se configure automatiquement via l'URL :

  • URL type : https://mon-minio.example.com/mon-bucket/index.html
  • Endpoint MinIO détecté : https://mon-minio.example.com
  • Bucket détecté : mon-bucket

Prérequis MinIO

  • Bucket avec politique de lecture publique
  • Configuration CORS appropriée pour les appels depuis le navigateur
  • API REST MinIO accessible

Gestion d'erreurs

Approche : Logging simple dans la console uniquement

  • Erreurs CORS → console.error()
  • Bucket inaccessible → console.error()
  • Erreurs réseau → console.error()
  • Dossiers vides → comportement normal (affichage vide)

Bonnes pratiques à respecter

Code

  • JavaScript ES6+ moderne
  • Fonctions pures quand possible
  • Nommage explicite des variables et fonctions
  • Commentaires pour la logique métier complexe
  • Séparation claire HTML/CSS/JS

Structure

  • HTML sémantique
  • CSS organisé et commenté
  • JavaScript modulaire (fonctions distinctes pour parsing, affichage, navigation)

Performance

  • Le moins de frameworks/librairies externes possible
  • Chargement minimal des ressources
  • Appels API optimisés

Instructions pour Claude

Approche de développement

  1. Commencer par l'architecture : proposer la structure des fichiers et les fonctions principales
  2. Développement incrémental : HTML de base → CSS simple → JavaScript par étapes
  3. Testing : tester chaque fonctionnalité avant de passer à la suivante

Style de collaboration

  • Simplicité first : toujours privilégier la solution la plus simple
  • Pas de over-engineering : éviter les abstractions complexes
  • Code lisible : préférer la clarté à la concision
  • Bonnes pratiques : respecter les standards web sans compromis

Cas d'usage typiques

  • Aide à la structuration du code JavaScript pour le parsing XML
  • Conseils sur les appels à l'API MinIO depuis le navigateur
  • Debug des problèmes CORS potentiels
  • Amélioration progressive de l'interface
  • Optimisation des performances

Contexte d'utilisation

  • Utilisé via Claude Code pour le développement complet
  • Projet from scratch (aucun code existant)
  • Développeur préfère une approche directe et pragmatique
  • Focus sur la fonctionnalité avant l'esthétique

Notes importantes

  • Les erreurs ne remontent QUE dans la console (pas d'UI pour les erreurs)
  • L'application ne doit pas afficher ses propres fichiers (index.html, style.css, script.js)
  • Navigation uniquement en lecture, pas d'interactions de modification
  • Style volontairement basique type "Index of Apache"
  • Navigation directe dans tout le bucket, sans préfixe de contenu
  • Évolutivité prévue mais pas prioritaire dans la V1