来源: POA 中已经存在的 service、version、spec、scope 等数据,需要在开放平台中插入对应的数据。
将POA 中现有的 服务,导入开放平台的服务
USE platform_openapi; SELECT * FROM SERVICE; 根据上面查询结果,来进行下面的插入操作,对应的字段做修改: Use develop_center; INSERT INTO `TB_DEV_SERVICE` (`ID`, `NAME`, `DESCRIPTION`, `ORIGIN`, `SYSTEM_ID`) VALUES (-ID-, -NAME-, -DESCRIPTION-, -ORIGIN-, -'1'-); 创建服务也可以参考使用以下语句: SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE\` (ID,DELETED, NAME, DESCRIPTION, ORIGIN, SYSTEM_ID) VALUES','(\'', ID, '\',\'0\',\'', NAME, '\',\'', DESCRIPTION, '\',\'', ORIGIN, '\',\'','1','\');') INFO FROM SERVICE; 这个语句对查询结果做了拼接,可以拿来直接使用 设置此服务的管理员和开发者,也可以不在这里设置开发者和管理员,在2.4.1来统一设置: INSERT INTO `TB_DEV_SERVICE_DEVELOPER` (`ID`, `DELETED`, `SERVICE_ID`, `DEVELOPER_ID`) VALUES (-ID-, -DELETED- ,-SERVICE_ID-, '150'); INSERT INTO `TB_DEV_SERVICE_OPERATOR` (`ID`, `DELETED`, `SERVICE_ID`, `OPERATOR_ID`) VALUES (-ID-, -DELETED- ,-SERVICE_ID-, '151');
将POA 中现有的 spec,导入开放平台的spec
查询服务的spec信息 USE platform_openapi; SELECT SERVICE_ID,API_VERSION,EDIT_VERSION FROM API_SPEC WHERE SERVICE_ID = -SERVICE_ID-; 根据查询结果插入以下数据: USER develop_center; INSERT INTO `TB_DEV_SERVICE_SPEC` (`ID`, `SERVICE_ID`, `API_VERSION`, `EDIT_VERSION`) VALUES (-ID-, -SERVICE_ID-, -API_VERSION-, -EDIT_VERSION-); TB_DEV_SERVICE_SPEC表中SCOPE_COUNT 列内容的设置: services/{serviceId}/apiVersions/{apiVersion}/apiSpecs/scopes 根据返回值设置SCOPE_COUNT;
将POA 中现有的 scope,导入开放平台的scope
USE platform_openapi; SELECT * FROM API_VERSION WHERE SERVICE_ID = 'admincenter'; 取结果中的SERVICE_ID,PUBLISHED,API_VERSION 根据查询结果访问 services/{serviceId}/apiVersions/{apiVersion}/apiSpecs/scopes 获取scope的name 和description。 INSERT INTO `TB_DEV_SERVICE_SCOPE` (`ID`, `COMPANY_ID`, `DELETED`, `SERVICE_ID`, `NAME`, `PUBLISHED`, `DESCRIPTION`, `API_VERSION`) VALUES (-ID-, '1', '0', -SERVICE_ID-, -NAME-, -PUBLISHED-, -DESCRIPTION-, -API_VERSION-);
来源: 应用数据的来源主要有三部分:
认证服务中的 service 消息服务的 应用(accessApp) POA 的 client
说明: 需要将上述三类数据,整理为一份应用数据,对于有重复的应用数据,保留一份即可。建议先从认证服务的数据开始,认证服务中的应用数据比较全面。
数据从 TB_SERVICE 表中获取。
#### 创建应用 USE cas_server; SELECT S.NAME, S.DESCRIPTION, S.INFORMATION_URL,S.APPLICATION_ID APPLICATION_IDENTIFICATION FROM TB_SERVICE S WHERE S.DELETED = 0; 根据上面的查询结果,在开放平台数据库中创建应用: USE develop_center; INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `URL`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, -URL-, '1', -APPLICATION_IDENTIFICATION-); 建应用也可以参考使用以下语句: SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION\` (ID, DELETED, NAME, DESCRIPTION, URL, SYSTEM_ID, APPLICATION_IDENTIFICATION) VALUES','(\'', ID, '\',\'1\',\'',NAME, '\',\'',DESCRIPTION,'\',\'', INFORMATION_URL,'\',\'','1', '\',\'',APPLICATION_ID , '\');') FROM TB_SERVICE WHERE DELETED = 0; 这个语句对查询结果做了拼接,可以拿来直接使用,使用这个也需要考虑应用是否已经存在。 除了ID以外,其他字段一一对应。
数据从 ACCESS_APP 表中获取。
首先查询需要创建的应用: USE message; SELECT APP.NAME, APP.DESCRIPTION,APP.ENABLED,APP.APP_ID APPLICATION_IDENTIFICATION FROM ACCESS_APP APP WHERE DELETED = 0 在查询结果中,根据字段APPLICATION_IDENTIFICATION,在开放平台中对比,如果不存在此应用,那么需要创建应用,数据从上面查询中获取。 根据上面的查询结果,在开放平台数据库中创建应用: USE develop_center; INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-); 除了ID以外,其他字段一一对应。 创建应用也可以参考使用以下语句: SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION\` (ID,DELETED, NAME, DESCRIPTION, SYSTEM_ID, `APPLICATION_IDENTIFICATION`, URL) VALUES ','(\'',ID,'-message\',\'1\',\'',NAME,'\',\'', IFNULL(DESCRIPTION,''),'\',\'','1','\',\'',APP_ID,'\',\'',IFNULL(URL,''),'\');') INFO FROM ACCESS_APP WHERE DELETED = 0 AND APP_ID IS NOT NULL 这个语句对查询结果做了拼接,可以拿来直接使用,使用这个语句也需要考虑应用是否已经存在。 如果已经存在,那么不需要再添加。
根据 /clients 接口获取所有client 信息
根据 /clients 接口获取所有client 信息 根据返回数据中的clientName 来和应用表TB_DEV_APPLICATION 中的数据进行关联,对应表中的NAME; 如果应用表中没有的应用,需要进行创建: USE develop_center; INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-);
SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION_DEVELOPER\` (ID, DELETED, APPLICATION_ID, DEVELOPER_ID) VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','150','\');') FROM TB_DEV_APPLICATION; SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION_OPERATOR\` (ID, DELETED, APPLICATION_ID, OPERATOR_ID) VALUES','(\'',ID,'\',\'0' ,'\',\'',ID, '\',\'','151','\');') FROM TB_DEV_APPLICATION; SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE_DEVELOPER\` (ID, DELETED, SERVICE_ID, DEVELOPER_ID) VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','150','\');') FROM TB_DEV_SERVICE; SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE_OPERATOR\` (ID, DELETED, SERVICE_ID, OPERATOR_ID) VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','151','\');') FROM TB_DEV_SERVICE; 这个语句对查询结果做了拼接,结果是对应用的开发者和管理员,服务的开发者和管理员进行插入数据的语句。 如果有ID重复时,需要手动去修改ID,防止重复。
数据来源:
1.认证服务的 service 2.消息服务的应用 3.POA 中 client 的scope
说明: 1.认证服务的 service ,已经在之前创建了对应的应用,也需要给此应用对应开通 CAS认证基础能力。 2.消息服务的应用,已经在之前创建了对应的应用,也需要给此应用对应开通消息基础能力。 3.POA 中 client 申请了 scope ,之前已经创建了对应的应用,也需要给次应用对应开通平台OpenAPI基础能力。同时在开放平台中添加应用和scope的关系。
先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在cas数据库中查询基础能力信息: USE cas_server; SELECT S.LOGOUT_TYPE, S.APPLICATION_DOMAIN, S.ADD_TIME, S.DESCRIPTION, S.EXTERNAL_ID, S.INFORMATION_URL, S.ENABLED, S.REGISTERED_SERVICE_ID, S.COMPANY_ID, S.RESPONSE_TYPE, S.DELETED, S.SSO_ENABLED, S.LOGOUT_URL, S.NAME, S.ADD_ACCOUNT, S.APPLICATION_ID, S.SERVICE_ID FROM TB_SERVICE S WHERE S.DELETED = 0 AND S.APPLICATION_ID = -APPLICATION_IDENTIFICATION-; 查询结果放入下面的ABILITY_SETTINGS 字段中。 下面插入数据中,APPLICATION_ID 对应所选应用的ID USE develop_center; INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`,ABILITY_SETTINGS) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'cas', '2020-12-22 15:32:43',-ABILITY_SETTINGS-); -ABILITY_SETTINGS- 内容: { "logoutType": "", "applicationDomain": "", "addTime": 1608538919314, "description": "", "externalId": "", "informationUrl": "", "enabled": true, "registeredServiceId": 10060, "companyId": "", "responseType": "", "deleted": false, "ssoEnabled": true, "logoutUrl": "", "name": "", "id": "", "addAccount": "", "applicationId": "", "serviceId": "", "requireAllAttributes": true } 利用上面的查询将对应内容置换。 可以使用下面的查询语句生成 sql拼接语句来进行插入: SELECT CONCAT( 'INSERT INTO \`TB_DEV_APPLICATION_ABILITY_USAGE\` (ID, COMPANY_ID, DELETED, APPLICATION_ID, ABILITY_ID, APPLY_TIME,ABILITY_SETTINGS) VALUES (','\'',ID,'cas','\',\'',' 1\', \'0','\',\'', ID,'\',\'', 'cas\', \'2020-12-22 15:32:43\',\'', '{"logoutType":"',IFNULL(LOGOUT_TYPE,''),'","applicationDomain":"',IFNULL(APPLICATION_DOMAIN,''),'","addTime":1608538919314,"description":"',IFNULL(DESCRIPTION,''), '","externalId":"',IFNULL(EXTERNAL_ID,''),'","informationUrl":"',IFNULL(INFORMATION_URL,''),'","enabled":true,"registeredServiceId":',IFNULL(REGISTERED_SERVICE_ID,''), ',"companyId":"1","responseType":"',RESPONSE_TYPE,'","deleted":false,"ssoEnabled":',IF(SSO_ENABLED = 1,'true','false'),',"idTokenEnabled":',IF(ID_TOKEN_ENABLED = 1,'true','false'), ',"jwtAsServiceTicket":',IF(JWT_AS_SERVICE_TICKET = 1,'true','false'),',"logoutUrl":"',IFNULL(LOGOUT_URL,''),'","name":"',NAME, '","id":"',ID,'","addAccount":"admin","applicationId":"',IFNULL(APPLICATION_ID,''),'","serviceId":"',IFNULL(SERVICE_ID,''),'","requireAllAttributes":',IFNULL(REQUIRE_ALL_ATTRIBUTES,'1'),'}' '\');' ) FROM TB_SERVICE WHERE DELETED = '0';
先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在message数据库中查询基础能力信息: USE develop_center; INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'message', '2020-12-31 15:32:43');
根据 /clients 接口获取所有client 信息,主要是clientId,来添加应用的基础能力信息。需要替换对应的clientId信息。 USE develop_center; INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`,`ABILITY_SETTINGS`) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'platformApi', '2020-12-31 15:32:43','{\"clientId\":\"id123\"}');
根据 /clients 接口获取所有client 信息,可以看到此应用关联的scopes 列表。 根据scope名称来查询开放平台中的scope: SELECT S.ID FROM TB_DEV_SERVICE_SCOPE S WHERE S.NAME = -name-; 根据上面的应用id和scope的Id使用下面插入语句插入数据: INSERT INTO `TB_DEV_APPLICATION_SCOPE_USAGE` (`ID`, `APPLICATION_ID`, `ABILITY_ID`, `SCOPE_ID`, `APPLY_TIME`) VALUES (-ID-, -APPLICATION_ID-, 'platformApi', -SCOPE_ID-, '2020-12-31 11:33:19');