z3n e1a3dbc85b feat(api-detail): navigation entre versions + bouton nouvelle version
- GET /api/apis/:id/versions — retourne toutes les versions du même API
  (même name + convention), triées par version DESC
- Sélecteur DSFR sur la page détail quand plusieurs versions existent ;
  changement de version navigue vers /catalog/:newId en rechargeant
  le composant via abonnement à paramMap (fix réutilisation instance Angular)
- Bouton "Nouvelle version" → /upload?from=:id avec pré-remplissage du
  formulaire (convention, name, provider, contacts, version patch+1)
- Seeder : 2 versions démo supplémentaires de "Référentiel Produits"
  (v3.0.3, v3.0.2) pour tester le sélecteur
- Fix import ApiStatus manquant dans apis.service.ts

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-06-16 15:07:31 +00:00

Datacat

Catalogue de données d'API. Importez des fichiers YAML (AsyncAPI ou OpenAPI) et générez automatiquement de la documentation HTML interactive.

Architecture

Monorepo pnpm avec quatre sous-projets :

datacat/
├── back/          # API REST — NestJS + TypeORM + PostgreSQL
├── front-public/  # Interface web — Angular 19 + DSFR
├── shared/        # Types TypeScript partagés (@datacat/shared)
└── infra/         # Docker Compose, Dockerfiles, Kubernetes

Prérequis

Démarrage rapide

# Démarrer tous les services (PostgreSQL + backend + frontend)
docker compose -f infra/docker-compose.yml up -d

# Suivre les logs
docker compose -f infra/docker-compose.yml logs -f

URLs de développement

Service URL
Frontend http://localhost:4200
API http://localhost:3010/api
Health check http://localhost:3010/health

Utilisation

  1. Ouvrir http://localhost:4200
  2. Naviguer par catégories via Parcourir ou voir toutes les APIs via Catalogue
  3. Cliquer sur Importer pour ajouter un fichier YAML AsyncAPI ou OpenAPI
  4. Une fois la génération terminée (statut GENERATED), cliquer sur Voir la documentation

Stack technique

Couche Technologie
Backend NestJS 11, TypeORM 0.3, PostgreSQL 17
Frontend Angular 19, DSFR
Types partagés TypeScript 5.8 strict
Génération docs AsyncAPI @asyncapi/cli@6.0.0
Génération docs OpenAPI @redocly/cli

Développement sans Docker

# Backend (port 3000)
cd back && pnpm install && pnpm run start:dev

# Frontend (port 4200, avec proxy vers l'API)
cd front-public && pnpm install && pnpm run start

Créer front-public/proxy.conf.json si absent :

{ "/api": { "target": "http://localhost:3010", "secure": false } }

Rebuild complet

docker compose -f infra/docker-compose.yml down
docker volume rm datacat_front_node_modules datacat_back_node_modules
docker compose -f infra/docker-compose.yml build --no-cache
docker compose -f infra/docker-compose.yml up -d

Documentation

Description
No description provided
Readme 1.4 MiB
Languages
TypeScript 97%
Shell 2.6%
HTML 0.3%