Appearance
MAS 模块化应用支撑平台
MAS是一个模块化的应用支撑平台,采用微服务和微应用架构,支持多租户、多站点、模块化开发和积木式搭建。基于该平台,可以快速开发各类业务微应用,通过组合微应用来搭建支持多租户和多站点的业务系统。它能够实现租户独立的、可个性化的各类业务系统(站点),并且支持全代码和低代码的开发方式。
功能范围
序号 | 子平台 | 说明 |
---|---|---|
1 | 平台管理中心 | 管理租户、站点、应用等 |
2 | 站点管理中心 | 实现一个站点的基本管理功能,包括菜单、主题及基本信息管理 |
3 | 帐户中心 | 实现站点账号管理、认证和角色授权 |
4 | MAUI开发框架 | 前端微应用开发框架,支持对前端内核扩展及业务的模块化开发 |
5 | 微服务开发框架 | 后端微服务开发框架,基于Spring Cloud Alibaba架构实现微服务的模块化开发 |
版本
v5.10.8,发布时间2023年09月08日
更新内容
此版本主要更新内容如下:
新增
- 应用下架时如果该应用有站点在使用时,列出使用该应用的站点信息,可强制下架
- 应用下架时清理关联的数据(应用、版本、授权、应用菜单)
- 系统安全加固:多因子认证(账号+密码+验证码[图形码];验证码[图形码] + 扫码登录)、弱口令检测、账号密码国密支持、隐私数据保护(手机号)
- 安全加固新增配置项 平台mas-admin、mas-auth服务模块参数配置
- 平台账号密码国密加密示例数据:【原文:Sz@202209 加密算法:sm3 加密盐:kraM09MvTL7yK6jx3LN0EDLvn3yhg8Vxc1X2JJ9w 密文:03d955c484e2a4ea8c5aadc480c25276926d45879198ed2b8abc6ea99e126d12】
- 第三方接入管理应用
- mas-nginx支持自定义服务配置。使用说明点击进入
- 支持三员管理,实现三权分立:站点管理新建角色:cos_aqy_role(安全员)、cos_shy_role(审核员),在角色管理中将安全员、审核员授权给对应的账户,并在初始化菜单中将“授权管理”菜单加入页面,用安全员登录确保能对角色授权后再将站点管理员授权“安全员”角色,站点管理员重新登录后将不会再有角色关联账号(授权)功能
修改或修复
- 系统管理-账号管理调整成以租户视角来管理。提供按站点、登录名、账号名、手机号检索,展示账号授权站点信息
- 修复站点管理重置首页报错
- 应用角色去掉版本逻辑
- 修复重新登录登录界面不正确(本次登录以上次登录的主题显示,未按当前登录站点主题展示)
- 修复退出登录后刷新界面,出现无效获取用户信息请求(上架cz-uom-store这类应用的站点)
优化
- 开发的应用菜单里声明的权限表达式在初始化菜单时带出,可以调整应用内置的权限表达式
更新资料获取
如何获取微服务镜像?
所有镜像可到容器仓库通过 docker pull
拉取
- 武汉公司内网:
192.168.1.10:5000/tangram/[微服务名]:[版本号]
- 阿里云:
registry.cn-hangzhou.aliyuncs.com/tangram/[微服务名]:[版本号]
如何获取微服务jar包?
所有正式发布版本可到私服仓库下载
- 下载地址:
http://nps.zktx-soft.com:19098/repository/maven-public/com/gsoft/[平台:mas|locas]/[应用名]/[版本号]/[应用名]-[版本号].jar
例:http://nps.zktx-soft.com:19098/repository/maven-public/com/gsoft/mas/mas-admin/5.10.8/mas-admin-5.10.8.jar
如何获取微应用tgz包?
所有安装包可到阿里云OSS仓库下载
- 路径:
oss://foa5-oss/deploy/release/[平台:mas/locas]/[应用名称]/[版本号]/[应用名称]-[版本号].tgz
如:oss://foa5-oss/deploy/release/mas/mas-panel/5.10.5/mas-panel-5.10.5.tgz
微服务版本明细
序号 | 模块 | 微服务 | 版本号 | 说明 |
---|---|---|---|---|
基础设施 | ||||
1 | Nacos服务 | nacos/nacos-server | 2.0.3 | |
2 | Redis | redis | 6.2.6-alpine3.15 | |
3 | RabbitMQ | byteflair/rabbitmq-stomp | latest | 可选 |
平台基础 | ||||
4 | 前端基座 | mas-nginx | 5.10.5 | 原foa5-nginx |
5 | 网关服务 | mas-gateway | 5.10.8 | 原foa-cloud-gateway |
6 | 站点系统管理 | mas-admin | 5.10.8 | 原foa-cloud-admin |
7 | 鉴权服务 | mas-auth | 5.10.8 | 原foa-cloud-auth |
8 | 文件服务 | mas-file | 5.10.8 | 原foa-cloud-file |
扩展服务 | ||||
9 | 单点登录 | mas-sso | 5.10.8 | 可选,原foa-cloud-sso-cos |
10 | MQ服务 | mas-mq | 5.10.8 | 可选,原foa-cloud-mq |
11 | 定时任务 | mas-task | 5.10.8 | 可选,原foa-cloud-task |
12 | 在线WPS | mas-wps | 5.10.8 | 可选,原foa-cloud-wps |
13 | 浙政钉网关 | mas-dingtalk | 5.10.8 | 可选,原cos-api-gateway |
14 | 第三方接入api网关 | mas-open-gateway | 5.10.8 | 可选,nginx里需加配置参考文档 |
微应用版本明细
序号 | 模块 | 微应用 | 版本号 | 说明 |
---|---|---|---|---|
管理平台 | ||||
1 | 应用市场 | mas-ops-app | 5.10.2 | |
2 | 租户管理 | mas-ops-tenant | 5.10.2 | |
3 | 站点管理 | mas-ops-site | 5.10.2 | |
站点系统管理 | ||||
1 | 账号管理 | mas-admin-account | 5.10.3 | 可替换 |
2 | 角色管理 | mas-admin-role | 5.10.3 | 可替换 |
3 | 单点登录 | mas-admin-sso | 5.10.3 | 可选,对应mas-sso |
4 | 菜单初始化 | mas-admin-menu | 5.10.3 | |
5 | 参数管理 | mas-admin-param | 5.10.3 | 可选 |
6 | 数据字典 | mas-admin-dictionary | 5.10.3 | 可选 |
7 | 数据分类 | mas-admin-catalog | 5.10.3 | 可选 |
8 | 操作日志 | mas-admin-log | 5.10.3 | 可选 |
9 | 在线用户 | mas-admin-online | 5.10.3 | 可选 |
10 | 站点设置 | mas-admin-site | 5.10.3 | |
主题 | ||||
1 | 清新绿(横向) | theme-horizontal-green | 5.10.5 | 可选 |
2 | 中国红(横向) | theme-horizontal-red | 5.10.5 | 可选 |
3 | 政务蓝(纵向) | theme-vertical-blue | 5.10.5 | 可选 |
4 | 清新绿(纵向) | theme-vertical-green | 5.10.5 | 可选 |
5 | 中国红(纵向) | theme-vertical-red | 5.10.5 | 可选 |
6 | 蓝色综合 | theme-multiple-blue | 5.10.5 | 可选 |
7 | 蓝色分栏 | theme-subfield-blue | 5.10.5 | 可选 |
8 | 大屏主题 | theme-fullscreen | 5.10.5 | 可选 |
9 | 移动账号密码主题 | theme-mobile-default | 5.10.5 | 可选 |
扩展功能 | ||||
1 | 工作门户 | mas-panel | 5.10.5 | 可选 |
2 | 打印模块 | mas-printer | 5.10.5 | 可选 |
3 | 接入管理 | lc-thirdapimng | v1.0.0.1 获取地址:oss://foa5-oss/deploy/mas/lc-thirdapimng/ | 可选 |
4 | 站点管理 | mas-ops-vconsole | 5.10.2 |
可选的微应用,没有特殊说明的,对应的微服务均为必选微服务或无需对应服务
浙政钉代理(IRS托管需要)
序号 | 模块 | 微应用 | 版本号 | 说明 |
---|---|---|---|---|
1 | 代理 | mas-ui-dingtalk | 5.8.2 | 可选 |
5.9升级至5.10.8
1、如果调整密码加密算法、敏感要素(手机号)加密需要处理存量数据
2、调整账号表手机号字段长度:
sql
alter table cos_admin_account_info alter COLUMN c_login_phone type varchar(100);
- 3、mas平台库里执行:
sql
ALTER TABLE "cos_portal_import_record"
ADD COLUMN "c_app_code" varchar(100);
COMMENT ON COLUMN "cos_portal_import_record"."c_app_code" IS '应用code';
- 4、mas平台库里执行:
sql
delete from cos_admin_role_info where c_id in
(select a.c_id from cos_admin_role_info a inner join
(select c_site_id, c_portal_component_code, max(c_id) as c_id from cos_admin_role_info where c_role_type = 0 group by c_site_id, c_portal_component_code ) b
on a.c_site_id = b.c_site_id and a.c_portal_component_code = b.c_portal_component_code and a.c_id !=b.c_id);
update cos_admin_role_info set c_version = '';
- 5、 自己开发的主题代码需要处理下:
json
pageMode() {
return this.$app.ctx.mode != 'page'
}
替换为如下:
pageMode() {
return !this.$store.getters.setting.editMode
}
初始化安装
- mas平台polardb数据库环境全新安装脚本获取地址:oss://foa5-oss/deploy/mas-polardb-sqls/5.10.8/
注意:
- 如果需要调整管理平台名称、平台管理员账号请调整sql脚本里对应的insert语句再执行
sql
-- 如需要调整管理平台站点页面名称请修改c_title字段对应的值(初始化默认值为:中科天翔系统管理平台)
-- 如需要调整平台管理员账号请修改c_contact字段对应的值(初始化默认值为:whzk),需对应修改cos_admin_account_info表里的c_login_name字段和密码值,见下一说明
INSERT INTO "cos_admin_site_info"("c_id", "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_site_type", "c_title", "c_theme", "c_logo", "c_code", "c_name", "c_contact", "c_mobile", "c_email", "c_activate_time", "c_invalid_time", "c_site_domain", "c_inited", "c_tenant_id", "c_site_setting", "c_tenant_code", "c_app_key", "c_app_secret", "c_manage_sites") VALUES (1, 1, NULL, 1, NULL, 1, 0, '中科天翔系统管理平台', '', '', 'sys', '系统站点', 'whzk', '', '', NULL, NULL, '[]', NULL, 1, '{"systemName":"中科天翔系统管理平台","logo":"","theme":"maui-explorer.default","shortName":"管理平台","loginImage":""}', 'sys', NULL, NULL, NULL);
- 如果将平台部署成国密加密,需调整账号初始化语句密码字段值
sql
-- 如需要调整平台管理员账号请修改c_login_name字段对应的值(初始化默认值为:whzk),如调整还需对应调整c_password字段值
-- 平台管理员账号初始化脚本密码加密方式为:bcrypt,如将平台部署成国密加密方式(sm3),需调整c_password字段值为sm3的密文
INSERT INTO "cos_admin_account_info"("c_id", "c_granted_apis", "c_account_expired", "c_account_locked", "c_credentials_expired", "c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_login_name", "c_login_dingding", "c_login_phone", "c_login_email", "c_status", "c_password_policy", "c_password", "c_mobile_device", "c_allow_mobile_access", "c_last_login_time", "c_last_login_client_ip", "c_last_login_failed", "c_default_tenant", "c_account_source", "c_account_type", "c_full_name", "c_tag", "c_theme", "c_avatar", "c_account_uuid") VALUES (1, '/**', '0', '0', '0', 1, now(), NULL, NULL, 1, 1, 'whzk', NULL, NULL, NULL, '1', NULL, '$2a$10$7B1jfrju3iOGFd8F5dfZzuCgReqJBqasvSPyO0oYtNCP3n2h69Q8C', NULL, NULL, NULL, NULL, NULL, 'sys', NULL, 0, '系统管理员', NULL, 'maui-explorer.default', '48f5333954584687b9fe5020404e90f6', '03cdec6f43014eba880b797bf8653e17');
- 如果需要调整应用分类请参照如下语句调整,主要调整c_code,c_value字段值或增加insert into语句
sql
INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '1','系统管理',1);
INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '2','低代码',2);
INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '3','主题应用',3);
INSERT INTO cos_basicdata_dictionary_item(c_site_id,c_tenant_id,c_dic_key,c_code,c_value,c_sort_number) VALUES (1,1, 'appCategory', '4','其他',4);
- 因特性版本发布后会存在小版本发布,在全新安装前根据实际调整好3个运维应用的版本信息后再执行
sql
--调整c_app_version字段对应的值为实际的运维应用版本
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-app','5.9.5');
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-tenant','5.9.5');
insert into cos_portal_app_version(c_app_code,c_app_version) values('mas-ops-site','5.9.5');
--调整c_file_name字段对应的值为实际的运维应用版本应用文件名
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-app-5.9.5.tgz');
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-tenant-5.9.5.tgz');
insert into cos_portal_import_record(c_tenant_id,c_result,c_file_name) values(1,0,'mas-ops-site-5.9.5.tgz');
--调整c_app_version字段对应的值为实际的运维应用版本
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-app','5.9.5');
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-tenant','5.9.5');
insert into cos_app_publish_log(c_app_code,c_app_version) values('mas-ops-site','5.9.5');
--调整c_version字段对应的值为实际的运维应用版本
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-app','5.9.5','应用管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-tenant','5.9.5','租户管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');
insert into cos_portal_component(c_code,c_version,c_text,c_is_auth,c_app_type,c_modes,c_create_time) values('mas-ops-site','5.9.5','站点管理',0,0,'["app","page","print"]','2023-08-15 14:00:00');