App端–后端常见问题

2.8.1操作手册下载地址:2.8.1操作手册

下面是根据app进行区分的,查找时请根据对应App进行查找:

1.Base和多租户APP

常见问题

1.1 线上环境菜单和产品线丢失

  1. 先查看ui_menu表,找到对应菜单的is_delete字段,判断是否为1,如果为1,改为0,再重启即可;
  2. 如果is_delete字段值是正确的,判断app_ids字段值是否正确,该值对应的是meta_app表的id,如果不正确,重置种子数据,再重启即可;
  3. 如果上述数据是正确的,登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限;
  4. 如果刷新权限,没有效果,查看tenant_permission表的数据是否正确,即app_name是否正确,code是否重复导致,父子级是否正确;
  5. 如果上述步骤仍然不能解决,可以重启全部容器,其他恢复操作,请参考:产品线与菜单丢失问题

1.2 测试环境数据库迁移到本地,菜单和产品线丢失

  1. 如果平台租户管理员没有菜单显示,参考别的环境的重置base的种子数据接口,使用postman调用,传参为meta_app中base的id;
  2. 调用接口重置种子数据成功后,重启服务;
  3. 如果上述步骤还不能解决问题,请参考1.1问题的排查步骤

1.3 新增或更新的视图不显示

  1. 查看loadview返回的内容是否正确,如果为null或错误,重置该视图的种子数据;
  2. 如果返回的内容和后端配置的视图是一致的,请查看isDisplay的字段值是否为true,如果为false代表未授权,需要重新授权;
  3. 如果授权不生效,查看tenant_permission表是否存在该视图的权限点,根据name进行查询;
  4. 如果不存在,请点击刷新权限(登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限);
  5. 如果还不能恢复,请联系项目支持人员进行恢复

1.4 作用域失效

  1. 首先排查在作用范围选择的模型及字段是否正确,可以查看tenant_action_rule表,根据选择的model_name字段进行查看数据是否正确;
  2. 目前作用域不支持,作用域字段选择ManyToOne,ManyToMany字段,例如主子表都需要作用域,那么两个表都需要配置相应的作用域;
  3. 如果上述内容正确,请检查该用户是否分配相应的作用域及是否关联维度;
  4. 配置信息都是对的,请登录平台租户管理员,在多租户-》多租户管理-》点击同步维度,进行内存数据的同步

1.5 作用域如何开发及使用

作用域如何开发和使用

1.6 后端视图扩展

JsonPath后端视图扩展

1.7 loadView返回结果为null,数据错误或报错

  1. 重置视图的种子数据;
  2. 如果重置后无效果,查看后端日志是否有报错,以及排查使用jsonpath扩展后端视图的内容是否正确;
  3. 如果后端无报错,请查看菜单管理里面对应的模型及视图是否正确

1.8 租户授权失效

  1. 先检查该App是否安装;
  2. 如果已安装,请重新取消授权,再次授权试一下;

1.9 普通用户授权失效

  1. 首先检查在用户角色的权限配置是否分配其权限;
  2. 如果已分配,可以尝试取消授权,再次授权保存

1.10 新增的视图在用户角色-》权限配置显示的权限名字为null

  1. 检查视图是否配置name,和最外层的type在同一层级别

1.11 更换模型名字,导致前端页面报错

  1. 修改菜单视图绑定的模型;
  2. 修改视图绑定的模型

1.12 更换APP名字,菜单丢失

  1. delete from tenant_permission where app_name = '旧app的名字'
  2. 登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限,或重新安装

1.13 平台管理员的账号被锁定,如何处理

  1. 登录数据库;
  2. 修改rbac_user表的status为0,login_count为0

1.14 租户管理员的账号被锁定,如何处理

  1. 登录平台租户管理员的账号;
  2. 在多租户-》租户管理进行解锁

1.15 普通用户的账号被锁定,如何处理

  1. 登录相应的租户管理员账号;
  2. 在用户权限-》用户管理,选择相应的用户账号进行解锁

1.16 前端扩展包不生效,如何处理

  • 打开 开发者工具 (F12) 查看 prepareListApps 接口返回内容,根据前端 app 的名字找到其返回内容。
  • 一般分为3种情况
    • prepareListApps 没返回该 app 的内容,即前端扩展包未安装或安装失败
    • 与其他正常 app 返回的内容对比,如果内容格式不同,即为前端扩展包解压失败导致
    • 返回内容都正常,检查是否配置了按需加载,以及页面路径是否满足按需加载的条件("effectPaths"
  • 解压失败时的解决方法:
    • 方法一: 下载下来前端扩展包,在本地重新解压,压缩,上传,上架,更新;
    • 方法二: 如果方法一没有效果,cd /usr/share/nginx/html/umdComps, rm -rf tech-mbm-common tech-mbm-common.zip,然后在 meta_app 表将该 app 的 md5 置为 null,点击更新。

1.17 用户绑定多个角色,只显示个别角色的菜单

  1. select * from rbac_user_prefer where user_id = '' and sign_type = 'CURRULE';
  2. 查看sign_content的内容,保存的角色是否为当前已授权的角色id
  3. 如果已授权的角色id不对,请删除重新登录;
  4. 如果删除后重新登录无效,需要升级用户偏好app的版本

1.18 新增的视图在权限配置没有显示

  1. 登录平台租户管理员,多租户-》权限点明细-》左上角点击刷新权限

1.19 如何忽略作用域

忽略作用域

1.20 如何获取当前作用域

获取当前作用域及实例

1.21 如何修改token的过期时间

  1. 在安全策略修改token的过期时间;
  2. 重新登录;

1.22 新创建的用户,如何修改密码的过期时间

  1. 在安全策略,修改密码的到期时间

1.23 作用域右上角显示的是作用域实例id,不是具体名称

  1. 在业务模型上的某一个属性指定displayForModel为true,用于户右上角作用域实例的显示

1.24 自定义的按钮,如何进行权限控制

1.25 按钮配置了视图,但是在权限配置不显示或不受权限控制

  1. 排查配置的后端视图,是否配置auth关键字;
  2. 如果配置了,要保证在同一级auth对应的值是唯一的

2.用户偏好APP–高级表格和基础表格

2.1 如何删除高级表格的内容

  • delete from rbac_user_prefer where user_id = '' and sign_type = 'uiScheme' and sign_id = ''

2.2 设置了高级表格,没有生效

  • 如果用户偏好版本>=sie-snest-user-prefer-v2.8.1-HOTFIX.003,检查loadView的args参数是否有"techAdvancedTable": true的参数;如果前端没有配置,请在nginx的配置文件apps.json加入该配置,请参考:高级表格配置

  • 如果版本低于sie-snest-user-prefer-v2.8.1-HOTFIX.003,请设置一个方案为默认,然后排查loadView是否有返回

3.文件APP(sie-snest-file)

  • 文件上传: InputStream inputStream = (InputStream) i.get("inputStream");
    String originalFilename = (String)i.get("originalFilename");
    String bucketName = (String)i.get("bucketName");
    Map<String, Object> fileInfo = (Map<String, Object>)rs.getMeta().get("base_file")
    .call("putObject", rs, inputStream, originalFilename, bucketName);
  • 文件下载: String fileId = "meta_attacment 的 id";
    InputStream is = rs.get("base_file").call("getInputStream", fileId);

  • 引擎上传和下载:前端可调用的上传和下载

4.数据字典APP

4.1 数据字典如何使用

数据字典

4.2 数据字典失效或查询不到值,如何排查

  1. 排查Dict注解是否正确;
  2. 排查查询数据字典的值是否正确,即label-value是否已配置,如果是对的,执行第3步;
  3. 登录redis客户端;
  4. 模糊查询包含sie-snest-dict:dict_value的key的值,判断是否存在相应的值及值存在是否正确;
  5. 如果不存在或不正确,请联系项目支持人员;

5.日志APP

5.1 如何为接口配置操作日志记录

  • 在运维中心->日志分析->日志配置进行配置相应接口

5.2 操作日志需要记录真实的ip,如何配置(注意:该配置只适用于非单点登录的情况)

k8s获取真实的ip地址

6.配置中心APP(sie-snest-config)

6.1 如何读取application文件配置的值

  • ConfigUtils.getOrDefault("application文件中值的key",默认值)

6.2 如何根据app读取配置中心的值

  • ConfigUtils.get("appName", "master", "key的值").orElse("true")

6.3 如何在app中配置配置中心的值

  • 在app.json文件加入下面的值:
    "appConfig": { "自定义的key":{ "value":"自定义值", "desc": "描述" } }

6.4 配置中心如何使用

配置中心

7.接口集成平台APP(sie-snest-interface)

7.1 常见问题

接口app常见问题

7.2 日志存储配置

日志存储配置

8.国际化APP

8.1 国际化如何开发使用

国际化开发使用说明

8.2 操作手册

2.8.1-国际化操作手册

9.工作流APP

9.1 开发手册

2.8.1-开发手册

9.2 常见问题

工作流开发常见问题

10.邮件APP(sie-snest-mail)

10.1 如何配置使用

开发使用说明

11.多数据源APP(sie-snest-datasource)

11.1 如何配置使用

2.8.1-开发使用说明

12.打印组件APP

12.1 开发使用说明

2.8.1-开发使用说明

12.2 数据源无法显示某个模型

  • 排查模型是否加上isPrint标记

12.3 常见问题

打印组件常见问题

13.文件预览APP

13.1 开发使用说明

2.8.1-开发使用说明

14.Excel(导入导出)APP

14.1 开发使用说明

2.8.1-开发使用说明

14.2 业务自定义导出接口逻辑

自定义导出逻辑

15.消息推送APP

15.1 开发使用说明

2.8.1-开发使用说明

15.2 常见问题

消息推送常见问题

16.编码规则APP

16.1 开发使用说明

2.8.1-开发使用说明

17.API文档

17.1 操作手册

2.8.1-操作手册

18.流程向导

18.1 操作手册

2.8.1-操作手册使用说明

19.附件APP

19.1 开发使用说明

2.8.1-开发使用说明

20.任务调度APP

21.规则引擎APP

21.1 操作手册

2.8.1-操作手册

引擎端–后端常见问题

1.应用市场

1.1 常见问题

应用市场常见问题

2.白名单失效

2.1 检查appliaction文件中,白名单的配置是否正确,正确格式如下:

  • url.whiteList=appName.modelName.serviceName(其中*代表全部)

2.2 如果配置是正确的,登录redis客户端,查看key为iidp:whitelist:url的值是否正确

3.ManyToOne及ManyToMany相关问题

3.1 one2many related属性如何配置搜索

one2many related属性如何配置搜索

3.2 ManyToOne使用相关问题

manyToOne
manyToOne增强

4.其他常见问题

其他常见问题

5.如何获取容器安装了哪些app的信息

查询路由信息

6.property指定数据类型为text,但是在数据库的字段类型不对

  • @Property(columnName = "sign_content", dataType = DataType.TEXT, length = Integer.MAX_VALUE, displayName = "标记内容")

7.如何开启和关闭DDL(在application-dev文件添加)

  • 开启DDL:engine.model2ddl.mode=CREATE
  • 关闭DDL:engine.model2ddl.mode=NONE

运维管理

1.Minio上传或下载异常排查思路

  1. 先打开console控制台,看看报什么错,如果报403说明没有minio相应桶权限,去到相应的桶,把权限改为public;
  2. 如果改为public不能解决问题,就查看nginx中fileSysytem配置的代理服务器地址是否正确。
  3. 上传文件过大 413 错误解决方法
  4. minio对应的桶要设置成公有权限
  5. 授权操作:授权操作
  6. 检查对象存储策略,是否有无效策略导致所有用户都无法访问这个桶

2.图片回显失败或访问失败

  • 检查minio对应的桶的权限是否正确

3.如何查看分布式日志

Loki和Grafana

4.授权过期如何处理,如何部署

部署文档
操作文档
申请和审批

5. gw网关镜像地址

  • 镜像地址: harbor.devcenter.gushen.sieiot.com/iidp/iidp-gw:v1.3.1
  • 下载地址: http://idp.chinasie.com/download/repository/iidp-gw-v1.3.1.tar
    gw-v1.3.1 版本存在可能无法根据app进行寻址的问题,但概率很低。如果出现了,可人工恢复,首先查询app安装所在的容器,然后重启该容器即可。升级至v1.3.3可杜绝此问题。