Retirer l'exclusion des node_modules permet a Syft de scanner
les paquets reellement installes (transitifs inclus).
Seuls les artefacts de build sont exclus (build/, .next/, out/).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Les vars CI (CI_REPO_OWNER etc.) ne sont pas injectees dans les steps
avec volumes: sans environment: (bug Woodpecker next). Supprimer le
docker socket et scanner dir:. evite le probleme et donne un SBOM
complet des dependances npm declarees.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remplace la lecture de .env.deploy par un recalcul direct
depuis CI_REPO_OWNER/CI_REPO_NAME/CI_COMMIT_BRANCH (meme
logique que write-env), evitant la dependance sur le fichier.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- scripts/build-radar.js: bash → sh (Alpine n'a pas bash)
- radar-app/package.json: ajouter postcss comme dépendance directe
- radar-app/package-lock.json: régénéré avec postcss ^8.5.3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Les commandes d'un step partagent le même shell dans Woodpecker.
cd radar-app persiste aux commandes suivantes — cd .. est nécessaire.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
docs/ est entièrement ignoré par .gitignore, mais docs/data/team/*.md
est nécessaire au build (generate-team-visualization-data.js).
Déplacement vers data/ à la racine pour que ces fichiers soient
versionnés et disponibles lors du déploiement depuis le dépôt.
- Nouveau dossier data/ versionné (profils équipe, technologies)
- docs/ entièrement ignoré (documentation humaine uniquement)
- Mise à jour des 4 références dans les scripts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Suppression des headers Drone CI (kind/type/name)
- Déplacement du trigger when: au niveau global
- Volumes inline (host:container) au lieu des named volumes
- Suppression de la section volumes: Drone en bas de fichier
- Correction $$ → $ pour les variables dans les commandes
- Chaînage des cd avec && pour les commandes radar-app
- Image docker:27-cli cohérente avec le modèle de référence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Réécriture complète du README pour le projet stand-alone Techradar Laplank
- Ajout de .woodpecker.yml pour la pipeline CI/CD
- Mise à jour du .gitignore pour exclure les dossiers docs/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Mise à jour du nom dans package.json
- Mise à jour du nom dans package-lock.json
- Le nom reflète mieux l'identité du projet Laplank
Co-authored-by: Cursor <cursoragent@cursor.com>
- Merge de main dans stand-alone
- Résolution du conflit dans radar-app/package.json (conservation de Next.js 16.1.6)
- Intégration de la refactorisation stand-alone complète
- Migration Next.js 15.2.4 -> 16.1.6
Co-authored-by: Cursor <cursoragent@cursor.com>
- Mise à jour de Next.js vers 16.1.6 (dernière version stable)
- Mise à jour de eslint-config-next vers 16.1.6
- Ajout documentation migration-nextjs-16.md
Co-authored-by: Cursor <cursoragent@cursor.com>
- Intégration du code source du framework dans radar-app/ (vendoring)
- Suppression de la dépendance npm aoe_technology_radar
- Création de scripts build-radar.js et serve-radar.js pour remplacer le CLI techradar
- Adaptation de tous les scripts et Docker pour utiliser radar-app/ au lieu de .techradar
- Refactorisation complète de Dockerfile.business
- Mise à jour de la documentation (architecture, déploiement, développement)
- Mise à jour de .gitignore pour ignorer les artefacts de build de radar-app/
- Ajout de postcss dans les dépendances Docker pour le build Next.js
Le projet est maintenant complètement indépendant du package externe.
Co-authored-by: Cursor <cursoragent@cursor.com>
- README.md: Structure fichiers mise a jour
- configuration.md: Ajout section script page equipe
- troubleshooting.md: Mise a jour diagnostic page equipe
- guide-page-equipe.md: Architecture basee sur team-block-script.js
- architecture.md: Mise a jour structure et fonctionnement
- deploiement.md: Scripts Python pour Navigation et _document
- team-block-script.js: Utilise layout cose integre (pas cose-bilkent)
- Nouvelle approche: remplace le DOM apres chargement (defer-compatible)
- Charge Cytoscape, ECharts dynamiquement
- Initialise les 3 visualisations: graphe reseau, matrice congestion, equipe genese
- Ajout de patch_document.py pour inclure le script dans _document.tsx
- Le flag --single redirigeait toutes les routes vers index.html
- Maintenant /team/ est correctement servi via /team/index.html
- Le script team-block-script.js sera chargé côté client
- Plus de dépendance aux fichiers externes HTML
- Utilise sessionStorage pour éviter les boucles
- document.write() pour remplacer complètement la page
La page team.tsx avait un meta refresh vers /team.html
Le reverse proxy redirige /team.html vers /team = boucle infinie
Solution: team.tsx retourne null, le contenu est géré par
team-block-script.js via iframe avec data URL
document.write() après chargement cause un rechargement de page.
Solution: créer un iframe plein écran avec data:text/html;base64
L'iframe est un contexte isolé, pas de boucle possible.
Le reverse proxy intercepte toutes les requêtes.
Solution: encoder le HTML en base64 et le décoder avec atob()
Plus aucune requête HTTP pour le contenu de la page équipe.
Le reverse proxy redirige /team.html vers /team, créant une boucle.
Solution: fetch le contenu de team.html et l'injecter dans le DOM
avec document.write() pour remplacer complètement la page.
Les anciens fichiers dans .techradar/ local étaient copiés
dans le conteneur Docker, écrasant les nouveaux fichiers.
Cela causait le bug où team-block-script.js restait ancien.
- Ne plus vérifier si le fichier existe (les rings pourraient être obsolètes)
- Régénérer systématiquement avec les bons rings adopt/trial/assess/hold
- Mise à jour des données de visualisation avec les nouveaux rings
- Utilise meta http-equiv=refresh pour rediriger même sans JS
- Ajoute script inline dans Head pour redirection JS immédiate
- Fonctionne avec l'export statique Next.js
- Garder le config.default.json original du package
- Ne copier que vers config.json (pas config.default.json)
- Évite erreur TypeScript 'Property icon does not exist on type never'
Le type de social est inféré depuis config.default.json
- Page team.tsx redirige maintenant vers team.html
- Évite les imports cytoscape/echarts qui causent MODULE_NOT_FOUND
- team.html contient les vraies visualisations avec chargement CDN
Corrige l'erreur npm run build dans Docker