z3n 9151932eb6 back(uploads): DTO validé sur l'upload + contraintes de longueur
- CreateApiUploadDto : valide le multipart POST /uploads via ValidationPipe
  (types, @IsIn énums partagés, @IsUUID, @MaxLength(255)). Emails validés
  seulement si renseignés (@ValidateIf) -> n'casse pas les contacts vides.
  Remplace le body inline + les checks manuels du contrôleur.
- create-api-entry.dto: @MaxLength(255) sur name/provider/contacts (matche les
  colonnes entité) + @MaxLength sur emails.

Vérifié: email invalide -> 400 message clair, contacts vides -> 201 OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 13:08:02 +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%