boos 36a69c265f feat(jimeng-ui): record Jimeng connections via sites/accounts (方案甲)
Onboard Jimeng (火山视觉) as a `platform = "jimeng"` entry in the existing
sites/accounts console, reusing the CRUD/list/status UI while branching every
OpenAI-specific path so no other platform is affected. Jimeng is not
OpenAI-compatible (Volcengine V4 HMAC signing, async two-step generation, no
`/models` endpoint), so each branch keys off the single source of truth
`routes::admin::accounts::is_jimeng_platform` (case-insensitive).

Backend (src/routes/admin, src/services/jimeng):
- create_account → create_jimeng_account: AK lands in accounts.access_token; SK
  + region/host/sessionToken nest under extra_config.jimeng.*; credentialMode
  forced to "apikey". No spawn_route_rebuild — Jimeng never enters the route
  table.
- Secret protection: SK/sessionToken masked with •••• on list/get/update
  responses (mask_account_extra_config); update_account rejects a masked
  extra_config write-back so an edit round-trip can't clobber the real secret.
- verify_token → verify_jimeng_token: signs a sentinel GetResult probe via
  JimengProvider::from_credentials(...).verify(). The Volcengine gateway checks
  the V4 signature before the business layer, so a valid AK/SK is Authenticated
  (business layer reports "not found") and a bad one yields an auth-class Code
  (classify_verify_response / is_auth_error_code). Never calls /models, never
  triggers generation.
- build_probe_plan short-circuits Jimeng (probe-now/-stream) with a BadRequest
  pointing operators at the connection "验证" flow.
- runtimeHealth: Jimeng has no proxy_logs, so derive_jimeng_runtime_health reads
  the latest jimeng background_tasks row; account_response_value_with_jimeng
  applies it only when the site is Jimeng and ignores the override otherwise.

Frontend (src/web):
- Sites.tsx: add jimeng platform option; prefill visual.volcengineapi.com;
  hide URL pool + auto-probe sections.
- Accounts.tsx: AK + SK(required) + region/host/session fields under the API Key
  segment; "验证 AK/SK 签名" gates add; skip model sync / route rebuild.
- api.ts: verify-token payload carries secretKey/region/host/sessionToken.

Tests: unit coverage for credential nesting, secret masking, verify-response
classification, and regression guards proving non-Jimeng accounts ignore the
Jimeng health override and keep their proxy-log-derived health.

Also: stop tracking the stray root package-lock.json (repo installs via pnpm)
and gitignore it.
2026-06-23 16:09:49 +08:00
2026-06-06 04:40:25 +08:00

BoosAPI

AI Aggregation Gateway + Workflow Studio — one endpoint for many AI relay stations

Aggregate New API / One API / OneHub / DoneHub / Veloera / AnyRouter / Sub2API stations
into one API key and one compatible endpoint, with model discovery, smart routing, logs, billing, and failover.
Workflow Studio embeds the ComfyUI frontend and can run against Comfy Cloud, RunningHub, your own ComfyUI, or BoosAPI's API-native executor.

Rust Axum SQLx React License

中文 | English | Deployment


Introduction

BoosAPI is a self-hosted Rust gateway for AI relay stations. It centralizes upstream sites, accounts, downstream API keys, model routes, usage logs, image/video generation, user dashboards, and Workflow Studio in one service.

Supported upstreams:

  • Relay panels: New API, One API, OneHub, DoneHub, Veloera, AnyRouter, Sub2API
  • Compatible APIs: OpenAI / Claude / Gemini compatible, cliproxyapi / CPA
  • Preset providers: Aliyun, Zhipu, Doubao Coding Plan, DeepSeek, Moonshot, MiniMax, ModelScope
  • OAuth connections: Codex, Claude, Gemini CLI, Antigravity

Key Features

Unified API Gateway

  • OpenAI-compatible /v1/chat/completions, /v1/responses, /v1/images/generations, /v1/models, and files endpoints
  • Claude-compatible /v1/messages, including request/response and streaming event conversion
  • Smart token routing, channel cooldown, failover, model discovery, and usage accounting
  • Admin and user dashboards with API key management and model visibility controls

Workflow Studio

Workflow Studio uses an embedded ComfyUI frontend. The execution backend is selected by comfyui.backend:

backend Purpose
cloud Proxy Comfy Cloud API for cloud execution and subscription models
runninghub Proxy RunningHub's ComfyUI-compatible API for its plugins, models, and workflows
external Proxy a full ComfyUI instance you deploy yourself
boosapi Use BoosAPI's Rust API-native workflow executor and configured model routes
docker Local full ComfyUI mode for GPU machines and local model directories

Cloud, RunningHub, external API, and BoosAPI executor modes do not require a GPU on the BoosAPI server. A GPU is only needed when you run local ComfyUI inference on the same machine.

Assistants

  • Video / workflow assistant with Markdown chat, reasoning sections, attachments, and model route selection
  • Picture assistant using /v1/images/generations, background tasks, progress display, cancellation, and Workspace archive
  • Volcengine video task templates for create-task and query-task flows

Hardware Guide

Mode CPU Memory Disk GPU
Gateway, admin UI, /v1/* proxy only 2 cores minimum, 4 recommended 2GB minimum, 4GB recommended 10GB+ Not required
BoosAPI + Workflow UI + remote APIs / Comfy Cloud / RunningHub 4 cores recommended 4GB minimum, 8GB recommended 20-50GB Not required
External ComfyUI proxy 4 cores recommended 8GB recommended 50GB+ Not on BoosAPI; required by the ComfyUI machine as needed
Local Docker / local ComfyUI image generation 4-8 cores 16GB+ 100GB+ NVIDIA 8GB VRAM minimum, 12GB+ recommended
Local video / digital human / large workflows 8 cores+ 32GB minimum, 64GB recommended 200GB-1TB NVIDIA 24GB VRAM minimum, 48GB+ recommended

Recommended SaaS gateway server:

4 CPU cores
8GB RAM
50GB SSD
No GPU required

Quick Start

cp config.toml.example config.toml
./build-and-run.sh

For a production bundle with embedded web assets:

./build-and-run.sh --production

The production output is intended to run with only:

boosapi
config.toml

Web assets and Workflow UI assets are embedded in the Rust binary when built for production.

Workflow Backend Configuration

Comfy Cloud:

[comfyui]
backend = "cloud"
base_url = "https://cloud.comfy.org"
api_key = "your-comfy-cloud-api-key"

RunningHub:

[comfyui]
backend = "runninghub"
base_url = "https://www.runninghub.cn/your-comfy-compatible-endpoint"
api_key = "your-runninghub-api-key"

External ComfyUI:

[comfyui]
backend = "external"
base_url = "http://127.0.0.1:8188"

BoosAPI API-native executor:

[comfyui]
backend = "boosapi"

Environment Variables

Configuration can be overridden with BOOSAPI_<SECTION>__<KEY>:

BOOSAPI_SERVER__HOST=0.0.0.0
BOOSAPI_SERVER__PORT=4000
BOOSAPI_AUTH__AUTH_TOKEN=your-admin-token
BOOSAPI_AUTH__PROXY_TOKEN=sk-your-proxy-token
BOOSAPI_AUTH__JWT_SECRET=your-jwt-secret
BOOSAPI_DB__URL=sqlite:data/boosapi.db?mode=rwc

Tech Stack

Layer Tech
Backend Rust, Axum 0.8, Tokio
Database SQLx, SQLite runtime path, PostgreSQL schema/migration preparation
Proxy engine Token Router + Proxy Conductor
Protocols OpenAI / Claude / Gemini compatible transformers
Frontend React 19 + Vite
Workflow UI Embedded ComfyUI frontend variants for cloud/external-compatible backends
Static serving Rust binary serves dist/web and Workflow UI assets
Container Docker / Docker Compose

Node.js is only a build-time tool for the frontend. Production does not require a Node.js process.

Local Development

cargo check
cargo run
pnpm install
pnpm run dev:web

Build checks:

cargo check
pnpm run typecheck:web
npx vite build

License

MIT

S
Description
Meta-layer management and unified proxy for AI API aggregation
Readme MIT 419 MiB
Languages
TypeScript 47.3%
Rust 36.2%
Vue 8.3%
CSS 4.4%
JavaScript 3.1%
Other 0.6%