Appearance
Front - Outil BDD
Application front en Vue 3 + Vite + Quasar.
Installation
bash
yarnVariables d'environnement
Creer un fichier .env a la racine de front :
ini
BASE_URL=http://localhost:3000
PORT=4000
AUTH_APP_URL=https://staging.auth.heriade.fr
APPLICATION=bdd
ENVIRONMENT=default
FORMS_APP_URL=
CONSOLE_ADMIN_APP_URL=
DOCS_APP_URL=/docs/
FILE_SIZE_LIMIT=50BASE_URL: URL du backend NestJSPORT: port local du serveur ViteAUTH_APP_URL: URL du portail AUTH (redirection SSO)APPLICATION: identifiant applicatif envoyé à AUTH (bdd)ENVIRONMENT: environnement cible vérifié dans leapp_access_tokenFORMS_APP_URL/CONSOLE_ADMIN_APP_URL/DOCS_APP_URL: liens du selecteur d'applications dans la sidebarFILE_SIZE_LIMIT: taille max d'upload en Mo (défaut 50)E2E_BASE_URL: URL cible pour Playwright (optionnel)
Mode reel Playwright (optionnel) :
ini
E2E_REAL_AUTH=true
E2E_TEST_USER_EMAIL=...
E2E_TEST_USER_PASSWORD=...Lancement
bash
yarn devScripts utiles
yarn dev: lancement en localyarn build: build productionyarn preview: previsualisation du buildyarn lint: lint globalyarn test: tests unitairesyarn test:e2e: tests end-to-end Playwrightyarn test:e2e:ui: mode UI Playwrightyarn test:e2e:install: installer les navigateurs Playwright
Playwright lit directement les variables du .env (via Vite) et utilise E2E_BASE_URL si defini. Le scénario reel de login est ignore si E2E_REAL_AUTH et les credentials ne sont pas definis.
Le suivi des scenarios Playwright critiques est documente ici :
Notes
- Le client HTTP est configure dans
src/boot/axios.js - Les appels API utilisent
BASE_URL
Upload et fichiers deposes
La page src/pages/admin/folders/AdminFoldersDetailPage.vue couvre deux usages :
- depot de nouveaux fichiers via drag & drop ou selecteur
- consultation de la liste des fichiers deja transmis par l'utilisateur connecte et des dossiers enfants existants
Le dossier de destination peut être choisi dans l'interface de dépôt. Le user doit se placer dans le dossier voulu OU une fonctionnalité permet de déplacer un fichier soumis.
Depuis la vue d'un dossier, le front envoie le fichier au backend via src/stores/files-store.js. La liste des documents est egalement chargee depuis cette vue.
La liste Mes fichiers deposes est chargee via le store src/stores/files-store.js :
js
await api.get('/documents')Chaque ligne est rendue par src/components/documents/DocumentListItem.vue et affiche le nom, l'extension, la date de depot et la taille du fichier. Apres un upload reussi depuis AdminFolderDetailPage.vue, la liste est rechargee pour afficher le nouveau document.
Le composant expose aussi l'action Telecharger. La page appelle alors :
js
await api.get('/documents/:uuid/download')La reponse contient une URL pre-signee temporaire et le nom de fichier original. Le front cree un lien <a> temporaire pour declencher le telechargement sans exposer les informations internes S3.
Le menu expose egalement Copier le lien. Cette action copie une URL applicative securisee :
text
/files/:documentUuidLa route src/pages/documents/DocumentAccessPage.vue verifie la session via le guard front existant, puis appelle GET /documents/:uuid/access-url. Le backend revalide les droits avant de fournir une URL S3 temporaire. Le front manipule le uuid public du document, jamais l'ID numerique interne.
