diff --git a/apps/docs/guide/architecture.md b/apps/docs/guide/architecture.md index c757c676..2ce5f047 100644 --- a/apps/docs/guide/architecture.md +++ b/apps/docs/guide/architecture.md @@ -46,13 +46,16 @@ Shared TypeScript types, constants (like `APP_VERSION` and tool definitions), an ### API (`apps/api`) -A Fastify v5 server that handles: +A Fastify v5 server exposing 47 tool routes (34 standard image operations + 13 AI-powered) that handles: - File uploads, temporary workspace management, and persistent file storage +- User file library with version chains (`user_files` table) -- each processed result links back to its source file and records which tool was applied, with auto-generated thumbnails for the Files page - Tool execution (routes each tool request to the image engine or AI bridge) - Pipeline orchestration (chaining multiple tools sequentially) - Batch processing with concurrency control via p-queue -- User authentication, teams, API key management, and rate limiting -- Admin settings (tool visibility, feature flags, cleanup config, branding) +- User authentication, RBAC (admin/user roles with a full permission set), API key management, and rate limiting +- Teams management -- admin-only CRUD; users are assigned to a team via the `team` field on their profile +- Runtime settings -- a key-value store in the `settings` table that controls `disabledTools`, `enableExperimentalTools`, `loginAttemptLimit`, and other operational knobs without redeploying +- Custom branding -- logo upload endpoint; the uploaded image is stored at `data/branding/logo.png` and served to the frontend - Swagger/OpenAPI documentation at `/api/docs` - Serving the built frontend as a SPA in production