【已评审】新增资源协作接口和web-rest接口用于记录操作日志

关联issue

web界面进行一键收集时,不会记录下载成功/失败的操作日志

背景

当浏览器存在异常时(例如本地缓存不足)可能导致web一键收集失败,此时前端会提示收集失败(下载日志时失败),但是后台操作日志显示收集成功,客户质疑操作日志审计的完整性。

当前web界面进行一键收集有两个步骤,第一步收集日志到tmp目录,第二步是前端将tmp目录下的日志文件下载到本地。其中第二步后端无法感知是否成功,导致操作日志无法被记录,因此需要提供web rest接口供前端记录操作日志,保证用户感知一键收集流程整体成功或者失败。

决策点

决策点1:新增资源协作接口

归属组件:web_backend
资源path: bmc/kepler/LogRecorder/OperationLog【新增】
资源interface:bmc.kepler.LogRecorder.OperationLog【新增】
变化类型:新增方法
应用场景:用于前端进行/UI/Rest/GeneralDownload的操作后,记录对应成功或者失败的操作日志
持久化类型:NA
操作权限:ConfigureSelf
详细描述:

方法名称 变化类型 签名 读写权限 持久化 变化通知 接口说明 接口约束
Add 新增方法 请求:s ConfigureSelf NA NA 请求:
OperationMsg:要记录到操作日志中的信息
OperationMsg:传入空字符串时不记录,限制长度为[1-1024]

决策点2:新增web-rest接口

uri:/UI/Rest/RecordOperationLog
变化类型:新增uri,系统锁定时支持调用
操作类型:POST
应用场景:用于前端进行/UI/Rest/GeneralDownload的操作后,记录对应成功或者失败的操作日志,前端进行下载操作后,记录的日志格式如下,其中xxx为文件名称:

Download xxx successful/failed

请求体

属性名称 取值类型 取值范围 默认值 操作权限 约束
Message string 1-1024 NA ConfigureSelf 必传,且不为空字符串

评审结论

1、同意新增如下资源协作接口、方法,用于添加操作日志
新增path: bmc/kepler/LogRecorder/OperationLog
新增interface:bmc.kepler.LogRecorder.OperationLog
新增方法:

  • Add,用于添加操作日志,请求签名为s,请求参数为操作日志内容,无响应签名,权限为ConfigureSelf

2、同意新增webrest接口/UI/Rest/RecordOperationLog,用于前端添加操作日志。例如,下载文件的操作日志为Download xxx successful/failed,xxx为文件名称
变化类型:新增uri,系统锁定时支持调用
操作类型:POST
权限:ConfigureSelf
参数说明:

  • Message,表示操作日志内容,类型为string,长度1~1024,必选参数

遗留问题

Add方法的参数OperationMsg需要添加长度限制,限制长度为[1-1024]