/** * Namespace Api * * All backend api type */ declare namespace Api { namespace Common { /** common params of paginating */ interface PaginatingCommonParams { /** page size */ size: number; /** total count */ total: number; /** current page number */ page: number; } /** common params of paginating query list data */ interface PaginatingQueryRecord extends PaginatingCommonParams { data: T[]; status: number; } /** common page record */ type CommonPageRecord = { data: T[]; page: number; size: number; status: number; total: number; }; /** * enable status * * - "1": enabled * - "2": disabled */ type EnableStatus = '1' | '2'; /** * enable status * * - 0: enabled * - 1: disabled */ type EnableStatusNumber = 0 | 1; /** * yes/no status * * - "0": no * - "1": yes */ type YesOrNo = '0' | '1'; /** common record */ type CommonRecord = { /** record id */ id?: string; /** record creator */ createBy?: string; /** record create time */ createDt?: string; /** record updater */ updateBy?: string; /** record update time */ updateDt?: string; /** record status */ status?: EnableStatus | null; } & T; } /** * namespace Auth * * backend api module: "auth" */ namespace Auth { interface LoginToken { id: string; mode: string; role: String; token: string; refreshToken: string; createDt: string; updateDt: string; namespaceIds: NamespaceId[]; } interface UserInfo { userId: string; username: string; userName: string; mode: string; role: string; roles: string[]; buttons: string[]; namespaceIds: NamespaceId[]; } interface NamespaceId { id: string; name: string; uniqueId: string; } } /** * namespace Route * * backend api module: "route" */ namespace Route { type ElegantConstRoute = import('@elegant-router/types').ElegantConstRoute; interface MenuRoute extends ElegantConstRoute { id: string; } interface UserRoute { routes: MenuRoute[]; home: import('@elegant-router/types').LastLevelRouteKey; } } /** * namespace Dashboard * * backend api module: "dashboard" */ namespace Dashboard { type CommonSearchParams = Pick; /** Task Retry Job */ type CardCount = { jobTask: JobTask; workFlowTask: JobTask; retryTask: RetryTask; retryTaskBarList: RetryTaskBarList[]; onLineService: OnlineService; }; type OnlineService = { total: number; clientTotal: number; serverTotal: number; }; type RetryTaskBarList = { x?: string; taskTotal?: number; }; type RetryTask = { totalNum: number; runningNum: number; finishNum: number; maxCountNum: number; suspendNum: number; }; type JobTask = { successNum: number; failNum: number; cancelNum: number; stopNum: number; totalNum: number; successRate: number; }; /** Dashboard Line */ type DashboardLine = { taskList: TaskList; rankList: RankList[]; dashboardLineResponseDOList: DashboardLineResponseDOList[]; }; type DashboardLineResponseDOList = { createDt: string; total: number; } & DashboardLineJob & DashboardLineRetry; type DashboardLineJob = { createDt: string; total: number; fail: number; stop: number; cancel: number; success: number; }; type DashboardLineRetry = { createDt: string; total: number; successNum: number; runningNum: number; maxCountNum: number; suspendNum: number; }; type RankList = { name: string; total: string; }; type TaskList = { status: number; data: Task[]; page: number; size: number; total: number; }; type Task = { groupName: string; run: number; total: number; }; /** * dashboard line type * * - "DAY": "今日" * - "WEEK": "最近一周" * - "MONTH": "最近一月" * - "YEAR": "全年" * - "OTHERS": "自选日期" */ type DashboardLineType = 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'OTHERS'; /** * dashboard line mode * * - "JOB": "job" * - "WORKFLOW": "workflow" */ type DashboardLineMode = 'JOB' | 'WORKFLOW'; type DashboardLineParams = { groupName?: string; type: DashboardLineType; mode?: DashboardLineMode; startTime?: string; endTime?: string; } & CommonSearchParams; /** * dashboard line mode * * - "1": "client" * - "2": "server" */ type DashboardPodsType = 1 | 2; /** dashboard list */ type DashboardPodList = Common.PaginatingQueryRecord; /** dashboard pod */ type DashboardPod = { /** 路径/组 */ consumerBuckets: number[]; /** context path */ contextPath: string; /** 创建时间 */ createDt: string; /** ext attrs */ extAttrs: string; /** 组名称 */ groupName: string; /** host id */ hostId: string; /** host IP */ hostIp: string; /** host port */ hostPort: string; /** 类型 */ nodeType: DashboardPodsType; /** 更新时间 */ updateDt: string; }; /** dashboard search params */ type DashboardPodsParams = CommonType.RecordNullable< Pick & CommonSearchParams >; } /** * namespace Namespace * * backend api module: "Namespace" */ namespace Namespace { type CommonSearchParams = Pick; /** namespace */ type Namespace = Common.CommonRecord<{ /** 主键 */ id?: string; /** 名称 */ name?: string; /** UniqueId */ uniqueId: string; }>; /** namespace search params */ type NamespaceSearchParams = CommonType.RecordNullable<{ keyword: string } & CommonSearchParams>; /** namespace list */ type NamespaceList = Common.PaginatingQueryRecord; } namespace GroupConfig { type CommonSearchParams = Pick; type IdGeneratorModeType = 1 | 2; type GroupStatusType = 0 | 1; type YesOrNoType = 0 | 1; /** groupConfig */ type GroupConfig = Common.CommonRecord<{ /** 命名空间id */ namespaceId?: string; /** 组名 */ groupName: string; /** 组描述 */ description: string; /** token */ token: string; /** 组状态 0、未启用 1、启用 */ groupStatus: GroupStatusType; /** 版本号 */ version?: number; /** 分区 */ groupPartition: number; /** 唯一id生成模式 默认号段模式 */ idGeneratorMode: IdGeneratorModeType; /** 是否初始化场景 0:否 1:是 */ initScene: YesOrNoType; /** bucket */ bucketIndex?: number; }>; /** groupConfig search params */ type GroupConfigSearchParams = CommonType.RecordNullable< Pick & CommonSearchParams >; /** groupConfig list */ type GroupConfigList = Common.PaginatingQueryRecord; } /** * namespace SystemManage * * backend api module: "systemManage" */ namespace SystemManage { type CommonSearchParams = Pick; /** role */ type Role = Common.CommonRecord<{ id: string; /** role name */ roleName: string; /** role code */ roleCode: string; /** role description */ roleDesc: string; }>; /** role search params */ type RoleSearchParams = CommonType.RecordNullable< Pick & CommonSearchParams >; /** role list */ type RoleList = Common.PaginatingQueryRecord; /** all role */ type AllRole = Pick; /** * user gender * * - "1": "male" * - "2": "female" */ type UserGender = '1' | '2'; /** user */ type User = Common.CommonRecord<{ /** user name */ userName: string; /** user gender */ userGender: UserGender | null; /** user nick name */ nickName: string; /** user phone */ userPhone: string; /** user email */ userEmail: string; /** user role code collection */ userRoles: string[]; }>; /** user search params */ type UserSearchParams = CommonType.RecordNullable< Pick & CommonSearchParams >; /** user list */ type UserList = Common.PaginatingQueryRecord; /** * menu type * * - "1": directory * - "2": menu */ type MenuType = '1' | '2'; type MenuButton = { /** * button code * * it can be used to control the button permission */ code: string; /** button description */ desc: string; }; /** * icon type * * - "1": iconify icon * - "2": local icon */ type IconType = '1' | '2'; type Menu = Common.CommonRecord<{ id: string; /** parent menu id */ parentId: number; /** menu type */ menuType: MenuType; /** menu name */ menuName: string; /** route name */ routeName: string; /** route path */ routePath: string; /** component */ component?: string; /** * i18n key * * it is for internationalization */ i18nKey?: App.I18n.I18nKey; /** iconify icon name or local icon name */ icon: string; /** icon type */ iconType: IconType; /** menu order */ order: number; /** whether to cache the route */ keepAlive?: boolean; /** outer link */ href?: string; /** whether to hide the route in the menu */ hideInMenu?: boolean; /** * The menu key will be activated when entering the route * * The route is not in the menu * * @example * the route is "user_detail", if it is set to "user_list", the menu "user_list" will be activated */ activeMenu?: import('@elegant-router/types').LastLevelRouteKey; /** By default, the same route path will use one tab, if set to true, it will use multiple tabs */ multiTab?: boolean; /** If set, the route will be fixed in tabs, and the value is the order of fixed tabs */ fixedIndexInTab?: number; /** menu buttons */ buttons?: MenuButton[]; /** children menu */ children?: Menu[]; }>; /** menu list */ type MenuList = Common.PaginatingQueryRecord; type MenuTree = { id: string; label: string; pId: number; children?: MenuTree[]; }; } /** * namespace NotifyConfig * * backend api module: "notifyConfig" */ namespace NotifyConfig { type CommonSearchParams = Pick; /** notify-config */ type NotifyConfig = Common.CommonRecord<{ /** 组名称 */ groupName: string; /** 业务ID */ businessId: string; /** 通知人id */ notifyRecipientIds: number; /** 任务类型 1、重试任务 2、回调任务、3、JOB任务 4、WORKFLOW任务 */ systemTaskType: SystemTaskType; /** 业务名称 */ businessName?: string; /** 状态 */ notifyStatus: Api.Common.EnableStatusNumber; /** 通知场景 */ notifyScene: string; /** 通知阈值 */ notifyThreshold: number; /** 限流开关 */ rateLimiterStatus: Api.Common.EnableStatusNumber; /** 每秒限流阈值 */ rateLimiterThreshold: number; /** 描述 */ description: string; }>; /** notify-config search params */ type NotifySearchParams = CommonType.RecordNullable< Pick< Api.NotifyConfig.NotifyConfig, 'groupName' | 'businessId' | 'systemTaskType' | 'notifyStatus' | 'notifyScene' > & CommonSearchParams >; /** notify-config list */ type NotifyConfigList = Common.PaginatingQueryRecord; /** 任务类型 1、重试任务 2、回调任务、 3、JOB任务 4、WORKFLOW任务 */ type SystemTaskType = 1 | 3 | 4; /** 1、场景重试数量超过阈值 2、场景重试失败数量超过阈值 3、客户端上报失败 4、客户端组件异常 5、任务重试失败数量超过阈值 6、任务重试失败进入死信队列 */ type RetryNotifyScene = 1 | 2 | 3 | 4 | 5 | 6; /** 1、任务执行失败 */ type JobNotifyScene = 1; } /** * namespace Notify-recipient * * backend api module: "notify-recipient" */ namespace NotifyRecipient { type CommonSearchParams = Pick; /** notifyRecipient */ type NotifyRecipient = Common.CommonRecord<{ /** 接收人名称 */ recipientName: string; /** 通知类型 */ notifyType: AlarmType; /** 属性信息 */ notifyAttribute?: string; /** 描述 */ description: string; }>; /** dingDing Notify */ type DingDingNotify = Common.CommonRecord<{ /** 接收人名称 */ webhookUrl: string; /** @的用户 */ ats: string[]; }> & NotifyRecipient; /** email Notify */ type EmailNotify = Common.CommonRecord<{ /** 通知人 */ tos: string[]; }> & NotifyRecipient; /** notifyRecipient search params */ type NotifyRecipientParams = CommonType.RecordNullable< Pick & CommonSearchParams >; /** notifyRecipient list */ type NotifyRecipientList = Common.PaginatingQueryRecord; /** 1: 钉钉通知 2: 邮件通知 3: 企业通知 4: 飞书 */ type AlarmType = 1 | 2 | 3 | 4; } /** * namespace RetryTask * * backend api module: "retryTask" */ namespace RetryTask { type CommonSearchParams = Pick; type RetryStatusType = 0 | 1 | 2 | 3; type TaskType = 1 | 2; /** RetryTask */ type RetryTask = Common.CommonRecord<{ /** UniqueId */ uniqueId?: string; /** 组名称 */ groupName: string; /** 场景名称 */ sceneName: string; /** 幂等id */ idempotentId: string; /** 业务编号 */ bizNo: string; /** 执行器名称 */ executorName: string; /** 执行方法参数 */ argsStr: string; /** 扩展字段 */ extAttrs?: string; /** 下次触发时间 */ nextTriggerAt?: string; /** 重试次数 */ retryCount?: number; /** 重试状态 0、重试中 1、重试完成 2、最大次数 3、暂停 */ retryStatus: RetryStatusType; /** 任务类型 1、重试数据 2、回调数据 */ taskType?: TaskType; }>; /** RetryTask search params */ type RetryTaskSearchParams = CommonType.RecordNullable< Pick & CommonSearchParams >; /** RetryTask list */ type RetryTaskList = Common.PaginatingQueryRecord; } /** * namespace Scene * * backend api module: "scene" */ namespace RetryScene { import EnableStatusNumber = Api.Common.EnableStatusNumber; type CommonSearchParams = Pick; /** scene */ type Scene = Common.CommonRecord<{ /** 组名 */ groupName: string; /** 场景名 */ sceneName: string; /** 状态 */ sceneStatus: EnableStatusNumber; /** 退避策略 */ backOff: BackOff; /** 路由策略 */ routeKey: RouteKey; /** 最大重试次数 */ maxRetryCount: number; /** 间隔时间 */ triggerInterval: string; /** 调用链超时时间 */ deadlineRequest: number; /** 超时时间 */ executorTimeout: number; /** 描述 */ description: string; }>; /** scene search params */ type SceneSearchParams = CommonType.RecordNullable< Pick< Api.RetryScene.Scene, | 'groupName' | 'sceneName' | 'sceneStatus' | 'backOff' | 'maxRetryCount' | 'triggerInterval' | 'deadlineRequest' | 'executorTimeout' | 'description' | 'routeKey' > & CommonSearchParams >; /** scene list */ type SceneList = Common.PaginatingQueryRecord; /** 1: 延迟等级 2: 固定时间 3: CRON表达式 4: 随机等待 */ type BackOff = 1 | 2 | 3 | 4; /** 1: 一致性Hash 2: 随机 3: LRU 4: 轮询 */ type RouteKey = 1 | 2 | 3 | 4; } }