docs(acadedoc): update ACADENICE_PATCHES.md with R5.3 Swagger entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Corentin JOGUET 2026-05-08 15:37:13 +02:00
parent 21ce2a94c7
commit d120619245

View file

@ -1409,3 +1409,44 @@ Aucune. Toutes les dependances sont deja presentes dans le monorepo Docmost :
- Migration idempotente : la contrainte UNIQUE est appliquee via `ALTER TABLE ... ADD CONSTRAINT ... IF NOT EXISTS` avec un catch sur l'erreur si deja existante (certaines versions de Kysely ne supportent pas `ifNotExists` sur les contraintes)
- Audit log creation/modification/suppression de commandes
- data-testid sur les elements cles pour les tests e2e Playwright
---
## Patch R5.3 — OpenAPI Swagger documentation auto-generee
**Date** : 2026-05-08
**Commit** : `21ce2a9`
**Scope** : `apps/server/src/main.ts`, tous les controllers `apps/server/src/core/acadenice/*/controllers/*.controller.ts`, `docs/api-docs.md`
### Packages installes
- `@nestjs/swagger@^11.4.2` — SwaggerModule + DocumentBuilder + decorators
- `nestjs-zod@^5.3.0``cleanupOpenApiDoc()` pour post-processing du doc OpenAPI generee (compatible Zod v4)
### Architecture
- `main.ts` : SwaggerModule bootstrappe apres app.enableCors(). Active uniquement si `NODE_ENV !== 'production'` OU `SWAGGER_ENABLED=true`. Expose `/api/docs` (UI) et `/api/docs-json` (OpenAPI JSON).
- 16 controllers decores : `@ApiTags`, `@ApiBearerAuth`, `@ApiOperation`, `@ApiResponse` (tous status codes), `@ApiParam`, `@ApiQuery`, `@ApiBody` sur chaque methode.
- Tags : templates, sync-blocks, audit-log, api-keys, clipper, graph, rbac, comments, notifications, security, backlinks, slash-commands.
- `cleanupOpenApiDoc()` de nestjs-zod applique le post-processing standard avant `SwaggerModule.setup()`.
### Tests
`src/core/acadenice/swagger.spec.ts` — 8 tests :
1. DocumentBuilder produit un objet OpenAPI 3 valide
2. Les 12 tags attendus sont tous declares
3. BearerAuth + CookieAuth security schemes configures
4. @ApiTags present sur RowCommentsController
5. @ApiTags present sur SyncBlocksController
6. @ApiTags present sur AcadenicePermissionsController
7. @ApiTags present sur BacklinksController
8. @ApiTags present sur AcadeniceOidcStatusController
### Acces
```
GET /api/docs # Swagger UI (dev/staging)
GET /api/docs-json # OpenAPI 3 JSON spec
```
Voir `docs/api-docs.md` pour generation de SDK client.