From 7d1b9e6dc3f790ccbe43c6420141abb74e92b9ac Mon Sep 17 00:00:00 2001 From: ashim-hq Date: Thu, 16 Apr 2026 16:29:04 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20update=20architecture=20=E2=80=94=2047?= =?UTF-8?q?=20tools,=20user=20file=20library,=20teams,=20branding,=20runti?= =?UTF-8?q?me=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/docs/guide/architecture.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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