{"service":"columba-api","health":"/health","docs":{"swaggerUi":"/api-docs","openApiJson":"/openapi.json"},"auth":{"login":"POST /auth/login"},"authors":{"list":"GET /authors","create":"POST /authors (Bearer)","byId":"GET|PATCH|DELETE /authors/:id (write: Bearer)"},"magazines":{"list":"GET /magazines?limit=&offset= (COLUMBA parent issues only; COLUMBINA via GET /magazines/:id)","periodMatrix":"GET /magazines/period-matrix?year= (COLUMBA vs COLUMBINA per month; null = no issue)","createColumba":"POST /magazines (Bearer) — main line only","createColumbina":"POST /magazines/:parentId/columbina (Bearer) — kids line linked to parent COLUMBA id","byId":"GET /magazines/:id (id or slug) | PATCH|DELETE /magazines/:id (Bearer — id)"},"articles":{"list":"GET /articles (?line=… for COLUMBA vs COLUMBINA issues)","bySlug":"GET /articles/:slug","create":"POST /articles (Bearer)","update":"PATCH /articles/:id (Bearer)","delete":"DELETE /articles/:id (Bearer)"},"upload":"POST /upload (Bearer, multipart file field: file)","bunnyStorageProxy":"GET /media/storage/… (when BUNNY_STORAGE_* set, no CDN host required)"}