diff --git a/packages/devops-server/src/router/dbm/index.ts b/packages/devops-server/src/router/dbm/index.ts index 672fd983b0..fa62003287 100644 --- a/packages/devops-server/src/router/dbm/index.ts +++ b/packages/devops-server/src/router/dbm/index.ts @@ -1,4 +1,5 @@ import * as express from 'express' +import { Entry, Ruler } from 'less-api' import { checkPermission } from '../../api/permission' import { Globals } from '../../lib/globals' @@ -8,6 +9,42 @@ const logger = Globals.logger export const DbmRouter = express.Router() +/** + * 数据管理入口请求:管理 app db + */ + DbmRouter.post('/entry', async (req, res) => { + const requestId = req['requestId'] + + // 权限验证 + const code = await checkPermission(req['auth']?.uid, 'database.manage') + if (code) { + return res.status(code).send() + } + + const accessor = Globals.app_accessor + + // 此处无需进行访问策略验证 + const entry = new Entry(accessor, new Ruler(accessor)) + + // parse params + const params = entry.parseParams({ ...req.body, requestId }) + + // execute query + try { + const data = await entry.execute(params) + + return res.send({ + code: 0, + data + }) + } catch (error) { + return res.send({ + code: 2, + error: error + }) + } +}) + /** * 获取集合列表 */ diff --git a/packages/devops-server/src/router/index.ts b/packages/devops-server/src/router/index.ts index d62f05a485..e0fa020aa4 100644 --- a/packages/devops-server/src/router/index.ts +++ b/packages/devops-server/src/router/index.ts @@ -1,12 +1,12 @@ import { Router } from 'express' import { AdminRouter } from './admin/index' -import { DevOpsEntryRouter } from './entry/admin' -import { DbmEntryRouter } from './entry/dbm' +import { DevOpsEntryRouter } from './entry' import { DbmRouter } from './dbm' +import { DeployRouter } from './deploy' + export const router = Router() router.use('/admin', DevOpsEntryRouter) router.use('/admin', AdminRouter) -router.use('/admin', DbmRouter) - -router.use('/dbm', DbmEntryRouter) +router.use('/dbm', DbmRouter) +router.use('/deploy', DeployRouter) \ No newline at end of file