feat: 重构CNB管理模块,添加清理记录功能,更新中间件为统一认证方式,优化工作空间相关路由

This commit is contained in:
xiongxiao
2026-03-09 18:54:33 +08:00
committed by cnb
parent 21ba07e55b
commit 382c4809ea
25 changed files with 296 additions and 73 deletions

View File

@@ -1,17 +1,35 @@
import { QueryRouterServer as App } from '@kevisual/router'
import { useContextKey } from '@kevisual/context'
import { useConfig, useKey } from '@kevisual/use-config'
import { useKey } from '@kevisual/use-config'
import { CNB } from '../src/index.ts';
import { CNBManager } from './modules/cnb-manager.ts'
export const cnbManager = new CNBManager()
export const config = useConfig()
export const cnb = useContextKey<CNB>('cnb', () => {
// CNB_TOKEN是降级兼容变量推荐使用CNB_API_KEY
// CNB_TOKEN 是流水线自己就有的变量,但是权限比较小
const token = useKey('CNB_API_KEY') as string || useKey('CNB_TOKEN') as string
// cookie 变量是可选的
const cookie = useKey('CNB_COOKIE') as string
return new CNB({ token: token, cookie: cookie });
})
export const app = useContextKey<App>('app', () => {
// CNB_TOKEN是降级兼容变量推荐使用CNB_API_KEY
// CNB_TOKEN 是流水线自己就有的变量,但是权限比较小
const token = useKey('CNB_API_KEY') as string || useKey('CNB_TOKEN') as string
// cookie 变量是可选的
const cookie = useKey('CNB_COOKIE') as string
try {
cnbManager.addCNB({
username: 'default',
token: token,
cookie: cookie,
cnb: new CNB({ token: token, cookie: cookie })
})
} catch (error) {
}
export const cnb = (await cnbManager.getCNB({ username: 'default' })).cnb
export const app = await useContextKey<App>('app', () => {
return new App({})
})
})
export const notCNBCheck = (ctx: any) => {
const isCNB = useKey('CNB');
if (!isCNB) {
ctx.throw(400, '当前环境非 cnb-board 环境,无法获取 live 内容');
return true;
}
return false;
}