refactor: rename 'kenapi' to 'app' across the project
ZhenYi committed
Modified app/src/cli.rs app/src/cli.rs +1 −1 View app/src/cli.rs
@@ -1,7 +1,7 @@
11use clap::{Parser, Subcommand};
22
33#[derive(Parser)]
4#[command(name = "kenapi", version)]
4#[command(name = "app", version)]
55pub struct Cli {
66 #[command(subcommand)]
77 pub command: Option<Command>,
Modified app/src/main.rs app/src/main.rs +2 −2 View app/src/main.rs
@@ -260,7 +260,7 @@
260260 use sea_orm::Database;
261261 use tracing::info;
262262
263 const DEFAULT_LOG_FILTER: &str = "info,kenapi=debug";
263 const DEFAULT_LOG_FILTER: &str = "info,app=debug";
264264
265265 tracing_subscriber::fmt()
266266 .with_env_filter(
@@ -311,7 +311,7 @@
311311 std::fs::read_to_string(path).with_context(|| format!("reading {}", path.display()))?;
312312 if existing.trim_end() != json.trim_end() {
313313 eprintln!(
314 "{} is out of date; run `cargo run -p kenapi -- openapi` to regenerate",
314 "{} is out of date; run `cargo run -p app -- openapi` to regenerate",
315315 path.display()
316316 );
317317 std::process::exit(1);
Modified app/Cargo.toml app/Cargo.toml +1 −1 View app/Cargo.toml
@@ -1,5 +1,5 @@
11[package]
2name = "kenapi"
2name = "app"
33version.workspace = true
44edition.workspace = true
55publish = false
Modified charts/core/templates/apihost.yaml charts/core/templates/apihost.yaml +1 −1 View charts/core/templates/apihost.yaml
@@ -62,7 +62,7 @@
6262 - name: apihost
6363 image: {{ include "gitdata.image" . }}
6464 imagePullPolicy: {{ .Values.image.pullPolicy }}
65 args: ["kenapi", "serve"]
65 args: ["app", "serve"]
6666 {{- include "gitdata.envFrom" . | nindent 10 }}
6767 env:
6868 {{- include "gitdata.env" . | nindent 12 }}
Modified charts/core/templates/migrate-job.yaml charts/core/templates/migrate-job.yaml +1 −1 View charts/core/templates/migrate-job.yaml
@@ -27,7 +27,7 @@
2727 - name: migrate
2828 image: {{ include "gitdata.image" . }}
2929 imagePullPolicy: {{ .Values.image.pullPolicy }}
30 command: ["kenapi", "migrate"]
30 command: ["app", "migrate"]
3131 {{- include "gitdata.envFrom" . | nindent 10 }}
3232 env:
3333 {{- include "gitdata.env" . | nindent 12 }}
Modified charts/core/Chart.yaml charts/core/Chart.yaml +1 −1 View charts/core/Chart.yaml
@@ -1,6 +1,6 @@
11apiVersion: v2
22name: gitdata
3description: GitData — Rust workspace (kenapi: serve / migrate)
3description: GitData — Rust workspace (app: serve / migrate)
44type: application
55version: 0.1.0
66appVersion: "1.0.0"
Modified deploy/compose.yaml deploy/compose.yaml +1 −1 View deploy/compose.yaml
@@ -14,7 +14,7 @@
1414# 1. 建库 + 迁移
1515# docker exec postgres psql -U postgres -c 'CREATE DATABASE gitdata'
1616# docker run --rm --network host -v "$PWD/config:/app/config:ro" \
17# --entrypoint /usr/local/bin/kenapi kenapi:local migrate
17# --entrypoint /usr/local/bin/app kenapi:local migrate
1818# 2. S3 桶(RustFS):gitdata(与 config/local/s3.json 的 bucket 一致)
1919# 3. identity 已内嵌,无需独立服务。
2020#
Modified lib/webapi/src/assets.rs lib/webapi/src/assets.rs +1 −1 View lib/webapi/src/assets.rs
@@ -60,7 +60,7 @@
6060 None => HttpResponse::ServiceUnavailable()
6161 .insert_header((CONTENT_TYPE, "text/plain; charset=utf-8"))
6262 .body(
63 "view/dist has no build output; run `just identity-web-build` and rebuild kenapi\n",
63 "view/dist has no build output; run `just identity-web-build` and rebuild app\n",
6464 ),
6565 }
6666}
Modified scripts/contract-check.sh scripts/contract-check.sh +1 −1 View scripts/contract-check.sh
@@ -9,7 +9,7 @@
99cd "$(dirname "$0")/.."
1010
1111check_spec() {
12 cargo run -q -p kenapi -- openapi --check
12 cargo run -q -p app -- openapi --check
1313}
1414
1515check_client() {
Modified scripts/dev.ps1 scripts/dev.ps1 +6 −6 View scripts/dev.ps1
@@ -1,4 +1,4 @@
1param(
1param(
22 [Parameter(Position = 0)][string]$Command = 'status',
33 [Parameter(Position = 1, ValueFromRemainingArguments = $true)][string[]]$Rest
44)
@@ -26,8 +26,8 @@
2626$DevHostKey = Join-Path $DevDir 'ssh_host_ed25519'
2727
2828$Services = [ordered]@{
29 migrate = @{ Exe = 'kenapi'; Args = 'migrate'; Port = 0; Health = $false }
30 apihost = @{ Exe = 'kenapi'; Args = 'serve'; Port = 7051; Health = $true }
29 migrate = @{ Exe = 'app'; Args = 'migrate'; Port = 0; Health = $false }
30 apihost = @{ Exe = 'app'; Args = 'serve'; Port = 7051; Health = $true }
3131}
3232$Order = @('migrate', 'apihost')
3333$Backends = @('migrate', 'apihost')
@@ -153,7 +153,7 @@
153153function Invoke-Migrate {
154154 Ensure-Dir
155155 Set-ServiceEnv
156 $exe = Join-Path $BinDir 'kenapi.exe'
156 $exe = Join-Path $BinDir 'app.exe'
157157 if (-not (Test-Path -LiteralPath $exe)) { throw "缺少 $exe,请先执行 just build" }
158158 Write-Info '[migrate] 同步数据库 schema ...'
159159 $proc = Start-Process -FilePath $exe -ArgumentList 'migrate' -WorkingDirectory $Root -PassThru -Wait `
@@ -296,8 +296,8 @@
296296 }
297297 }
298298 Write-Info "== 后端二进制 ($BinDir) =="
299 $exe = Join-Path $BinDir 'kenapi.exe'
300 if (Test-Path -LiteralPath $exe) { Write-Info (" {0,-12} OK" -f 'kenapi') } else { Write-Warn (" {0,-12} 未构建(just build)" -f 'kenapi'); $ok = $false }
299 $exe = Join-Path $BinDir 'app.exe'
300 if (Test-Path -LiteralPath $exe) { Write-Info (" {0,-12} OK" -f 'app') } else { Write-Warn (" {0,-12} 未构建(just build)" -f 'app'); $ok = $false }
301301 if (-not $ok) {
302302 Write-Info ''
303303 Write-Info 'just infra 启动 WSL 侧 PostgreSQL / Redis / RustFS'
Modified scripts/dev.sh scripts/dev.sh +8 −8 View scripts/dev.sh
@@ -259,10 +259,10 @@
259259 fi
260260
261261 info "== 后端二进制 ($BIN_DIR) =="
262 if [ -x "$BIN_DIR/kenapi" ]; then
263 printf ' %-12s OK\n' kenapi
262 if [ -x "$BIN_DIR/app" ]; then
263 printf ' %-12s OK\n' app
264264 else
265 warn " $(printf '%-12s 未构建' kenapi)"; ok=0
265 warn " $(printf '%-12s 未构建' app)"; ok=0
266266 fi
267267
268268 if [ "$ok" = "0" ]; then
@@ -356,12 +356,12 @@
356356cmd_migrate() {
357357 ensure_path
358358 service_env || return 1
359 if [ ! -x "$BIN_DIR/kenapi" ]; then
360 fail " 缺少 $BIN_DIR/kenapi,请先执行 just build"
359 if [ ! -x "$BIN_DIR/app" ]; then
360 fail " 缺少 $BIN_DIR/app,请先执行 just build"
361361 return 1
362362 fi
363363 info '[migrate] 同步数据库 schema ...'
364 if ! "$BIN_DIR/kenapi" migrate >"$LOG_DIR/migrate.log" 2>"$LOG_DIR/migrate.err.log"; then
364 if ! "$BIN_DIR/app" migrate >"$LOG_DIR/migrate.log" 2>"$LOG_DIR/migrate.err.log"; then
365365 fail ' [migrate] 失败,见 just logs migrate'
366366 tail -n 15 "$LOG_DIR/migrate.err.log" 2>/dev/null
367367 return 1
@@ -409,9 +409,9 @@
409409
410410 case "$name" in
411411 *)
412 [ -x "$BIN_DIR/kenapi" ] || { fail " 缺少 $BIN_DIR/kenapi,请先执行 just build"; return 1; }
412 [ -x "$BIN_DIR/app" ] || { fail " 缺少 $BIN_DIR/app,请先执行 just build"; return 1; }
413413 dir="$ROOT"
414 cmd="$BIN_DIR/kenapi serve"
414 cmd="$BIN_DIR/app serve"
415415 ;;
416416 esac
417417
Modified Cargo.lock Cargo.lock +29 −29 View Cargo.lock
@@ -434,6 +434,35 @@
434434checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
435435
436436[[package]]
437name = "app"
438version = "1.0.0"
439dependencies = [
440 "actix-web",
441 "anyhow",
442 "auth",
443 "chat",
444 "clap",
445 "config 1.0.0",
446 "deletion",
447 "events",
448 "export",
449 "models",
450 "oltp",
451 "push",
452 "queue",
453 "sea-orm",
454 "serde_json",
455 "session",
456 "tokio",
457 "tokio-util",
458 "tracing",
459 "tracing-subscriber",
460 "utoipa 5.5.0",
461 "utoipa-swagger-ui",
462 "webapi",
463]
464
465[[package]]
437466name = "arbitrary"
438467version = "1.5.0"
439468source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3806,35 +3835,6 @@
38063835dependencies = [
38073836 "cfg-if",
38083837 "cpufeatures 0.3.1",
3809]
3810
3811[[package]]
3812name = "kenapi"
3813version = "1.0.0"
3814dependencies = [
3815 "actix-web",
3816 "anyhow",
3817 "auth",
3818 "chat",
3819 "clap",
3820 "config 1.0.0",
3821 "deletion",
3822 "events",
3823 "export",
3824 "models",
3825 "oltp",
3826 "push",
3827 "queue",
3828 "sea-orm",
3829 "serde_json",
3830 "session",
3831 "tokio",
3832 "tokio-util",
3833 "tracing",
3834 "tracing-subscriber",
3835 "utoipa 5.5.0",
3836 "utoipa-swagger-ui",
3837 "webapi",
38383838]
38393839
38403840[[package]]
Modified Dockerfile Dockerfile +6 −6 View Dockerfile
@@ -1,7 +1,7 @@
11# syntax=docker/dockerfile:1
22
33# ---------------------------------------------------------------------------
4# KenApi — GitDataAI 主业务后端(cargo workspace,二进制 kenapi:serve / migrate / openapi)
4# KenApi — GitDataAI 主业务后端(cargo workspace,二进制 app:serve / migrate / openapi)
55#
66# docker build -t kenapi:local .
77# docker run --rm -p 7051:7051 \
@@ -74,9 +74,9 @@
7474 --mount=type=cache,id=kenapi-target,target=/build/target \
7575 cargo build --release --locked --workspace --bins \
7676 && mkdir -p /out \
77 && cp target/release/kenapi /out/ \
78 && /out/kenapi openapi --check \
79 && strip /out/kenapi
77 && cp target/release/app /out/ \
78 && /out/app openapi --check \
79 && strip /out/app
8080
8181# ---------------------------------------------------------------------------
8282# runtime
@@ -104,7 +104,7 @@
104104
105105# 只带默认配置;config/local/ 与各类密钥由部署方挂载或注入。
106106COPY --chown=gitdata:gitdata config/default config/default
107COPY --from=builder /out/kenapi /usr/local/bin/
107COPY --from=builder /out/app /usr/local/bin/
108108
109109LABEL org.opencontainers.image.title="KenApi" \
110110 org.opencontainers.image.description="GitDataAI monolith: business API and login web" \
@@ -121,4 +121,4 @@
121121 CMD curl -fsS "http://127.0.0.1:${KENAPI_HEALTH_PORT:-7051}/healthz" >/dev/null || exit 1
122122
123123ENTRYPOINT ["/usr/bin/tini", "--"]
124CMD ["kenapi", "serve"]
124CMD ["app", "serve"]
Modified justfile justfile +4 −4 View justfile
@@ -9,7 +9,7 @@
99# 常用:just up / just down / just status / just tail apihost
1010#
1111# 二进制目录跟随 cargo 的 CARGO_TARGET_DIR(just build 与 just up 一致读同一个变量):
12# CARGO_TARGET_DIR=/tmp/kenapi just up
12# CARGO_TARGET_DIR=/tmp/app just up
1313# 日志 / pid / 本地 git 仓库仍固定在 target/dev,不随 CARGO_TARGET_DIR 搬家。
1414#
1515# 依赖工具:cargo、ssh-keygen;Windows 额外需要 WSL 的 Ubuntu 发行版,
@@ -92,11 +92,11 @@
9292
9393# URL 速查
9494urls:
95 @echo " kenapi http://127.0.0.1:7051 (Swagger: /api/docs)"
95 @echo " app http://127.0.0.1:7051 (Swagger: /api/docs)"
9696
9797# 重新生成 openapi.json 与 packages/apiclient 客户端
9898openapi:
99 @cargo run -p kenapi -- openapi && pnpm exec orval
99 @cargo run -p app -- openapi && pnpm exec orval
100100
101101# 校验 openapi 与 packages/apiclient 是否都与源码一致
102102openapi-check:
@@ -113,7 +113,7 @@
113113# 清理构建产物
114114clean:
115115 @cargo clean
116# 登录前端随 kenapi 发布。
116# 登录前端随 app 发布。
117117identity-web-build:
118118 pnpm install --frozen-lockfile && pnpm build
119119
Modified orval.config.ts orval.config.ts +1 −1 View orval.config.ts
@@ -1,6 +1,6 @@
11import { defineConfig } from 'orval'
22
3// 唯一的 OpenAPI 文档由 `cargo run -p kenapi -- openapi` 生成到仓库根目录,
3// 唯一的 OpenAPI 文档由 `cargo run -p app -- openapi` 生成到仓库根目录,
44// 这里只把登录前端真正使用的 auth 标签生成为 packages/apiclient 下的 fetch 客户端;
55// 其余业务操作不进入客户端,调用方也就看不到。
66export default defineConfig({
Modified package.json package.json +1 −1 View package.json
@@ -3,7 +3,7 @@
33 "private": true,
44 "type": "module",
55 "scripts": {
6 "gen": "cargo run -p kenapi -- openapi && orval",
6 "gen": "cargo run -p app -- openapi && orval",
77 "dev": "vite",
88 "build": "tsc -b && vite build",
99 "typecheck": "tsc -b",