Ethora Platform 25.12 Release Notes
backend (ethora-backend repo)
Highlights
Improved API documentation (Swagger/OpenAPI): curated public docs, internal/advanced grouping, machine-readable OpenAPI JSON/YAML endpoints, stable operation IDs, schemas, examples, and improved auth clarity.
Reliability improvements for self-hosted/enterprise deployments: hardened initialization, better “best-effort” behavior around optional services (blockchain/email/XMPP), improved compatibility for ARM64, and safer defaults.
Expanded chat API capabilities: added new chat/user-related endpoints and fixed several chat consistency issues.
API & Swagger / OpenAPI
Swagger JSON endpoints fixed (no longer returning HTML), plus dynamic server URL for correct “Try it out”.
Public vs internal docs UX:
/api-docs focuses on Auth/Users/Chats/Files/Sharelinks/Apps.
Optional /api-docs-internal for advanced/internal endpoints.
Documentation quality:
Added/standardized operationIds, error responses, and pagination params.
Added success examples and then real response schemas for top endpoints.
Added auth model clarity (App JWT vs User JWT vs Refresh JWT) and then split into separate security schemes to prevent token confusion.
Added conservative v1 deprecation hints where a v2 equivalent exists.
OpenAPI tooling compatibility:
Normalized swagger-jsdoc output to be valid OpenAPI 3 for strict tools (swagger-cli, Postman import, client generation).
Error handling consistency (API runtime)
Introduced a canonical error pattern including requestId, error code, and details.
Updated key controllers (Auth/Users/Chats/Files/Sharelinks) to use consistent error responses.
Chats
Added and fixed new chat user endpoints (get users, patch single user profile, batch patch).
Fixed chat edge cases (e.g. GET /v1/chats/my/:chatName lookup correctness, chat name / member normalization).
Added timeout protection and best‑effort behavior around XMPP room creation to prevent hangs/500s.
Self-hosted / ops improvements
Hardened “base app” initialization (idempotency; prevents duplicate key crashes).
Made blockchain optional and reduced noise when disabled.
Improved resilience when optional services are missing (email token missing, Turnstile optional, etc.).
ARM64 compatibility improvements (MinIO, sharp, general Docker-related fixes).
Repo structure & maintainability
Restructured backend repo towards services/ + infra/ + web3/ + legacy/ with compatibility shims.
SDK repo: ethora-sdk-backend-integration
Highlights
Introduced this SDK repository with universal backend integration documentation and code samples
OpenAPI automation + CI to keep developer artifacts in sync with the live API.
OpenAPI automation (SDK tooling)
Introduced the ethora-sdk-backend-integration repo with general backend/frontend and backend-to-backend integration details
Added healthcare and insurance use case specific code samples (simple backend and frontend apps focused around case-specific chats logic and integration of the chats into existing legacy web portal)
Added scripts:
npm run openapi:update → fetch + validate + generate TS types + Postman collection
npm run openapi:check → CI mode (ensures generated artifacts match committed files)
Outputs committed to the repo:
openapi/swagger.json (spec snapshot)
generated/ethora-openapi.d.ts (TS types)
postman/ethora-api.postman_collection.json (Postman collection)
generated/client.ts (typed client helper)
Added GitHub Actions workflow to run validation/generation on PRs.
Documentation improvements
Updated docs with Swagger URLs and the new OpenAPI automation section.
frontend app: ethora-app-reactjs
Auth / login / initial-load stability
Fixed login/registration issues and improved initial app startup behavior.
Fixed navigation conflicts and a 400 error on initial load.
Fixed cookie domain behavior for localhost to reduce auth issues in local development.
Realtime & Chat connectivity
Fixed Centrifuge WebSocket endpoint configuration and improved chat room display/behavior.
Developer experience (noise reduction)
Added/expanded suppression of noisy console errors/warnings:
Redux non-serializable warnings
Router navigation noise
More robust console suppression (case-insensitive, multiple message formats)
Onboarding
Fixed issues with opening the tutorial (recent tutorial flow fixes).
Tooling
Fixed Node.js version requirements and addressed EBADENGINE warnings.