@steedos/service-package-registry 2.5.14-beta.5 → 2.5.14-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,6 +35,8 @@ const appendToPackagesConfig = (packageName, options)=>{
35
35
  loadPackage(packageName, packagePath);
36
36
  }
37
37
  }else{
38
+ // 对于已经存在的软件包, 不支持使用传入的enable控制软件包状态.
39
+ delete options.enable
38
40
  packages[packageName] = Object.assign(packages[packageName], options)
39
41
  }
40
42
  }else{
@@ -3,7 +3,6 @@ columns:
3
3
  - field: label
4
4
  wrap: false
5
5
  - field: description
6
- width: '150'
7
6
  wrap: false
8
7
  - field: version
9
8
  wrap: false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-package-registry",
3
- "version": "2.5.14-beta.5",
3
+ "version": "2.5.14-beta.7",
4
4
  "description": "",
5
5
  "main": "package.service.js",
6
6
  "scripts": {
@@ -9,11 +9,11 @@
9
9
  "author": "",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@steedos/auth": "2.5.14-beta.5",
13
- "@steedos/core": "2.5.14-beta.5",
14
- "@steedos/metadata-core": "2.5.14-beta.5",
15
- "@steedos/objectql": "2.5.14-beta.5",
16
- "@steedos/service-package-loader": "2.5.14-beta.5",
12
+ "@steedos/auth": "2.5.14-beta.7",
13
+ "@steedos/core": "2.5.14-beta.7",
14
+ "@steedos/metadata-core": "2.5.14-beta.7",
15
+ "@steedos/objectql": "2.5.14-beta.7",
16
+ "@steedos/service-package-loader": "2.5.14-beta.7",
17
17
  "fs-extra": "8.1.0",
18
18
  "i18next": "20.3.2",
19
19
  "json-stringify-safe": "5.0.1",
@@ -31,5 +31,5 @@
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
- "gitHead": "c05ab1650ef076c0111c1ba85c5af6ba939a3011"
34
+ "gitHead": "49d045d62677fd45d4f20fde49ecc23f01ef0d33"
35
35
  }
@@ -36,11 +36,6 @@ module.exports = {
36
36
  name: this.name,
37
37
  isPackage: false
38
38
  },
39
- STEEDOS_CLOUD_URL: process.env.STEEDOS_CLOUD_URL ? process.env.STEEDOS_CLOUD_URL : 'https://console.steedos.cn',
40
- STEEDOS_CLOUD_SPACE_ID: process.env.STEEDOS_CLOUD_SPACE_ID,
41
- STEEDOS_CLOUD_API_KEY: process.env.STEEDOS_CLOUD_API_KEY,
42
- STEEDOS_REGISTRY_URL: process.env.STEEDOS_REGISTRY_URL ? process.env.STEEDOS_REGISTRY_URL : 'https://registry.steedos.cn/',
43
- STEEDOS_CLOUD_SYNC_PACKAGES: validator.toBoolean(process.env.STEEDOS_CLOUD_SYNC_PACKAGES || 'false', true),
44
39
  STEEDOS_INITIAL_PACKAGES: process.env.STEEDOS_INITIAL_PACKAGES
45
40
  },
46
41
 
@@ -164,68 +159,6 @@ module.exports = {
164
159
  return {}
165
160
  }
166
161
  },
167
- getCloudSaasPurchasedPackages:{
168
- async handler(ctx) {
169
- try {
170
-
171
- const user = ctx.meta.user;
172
- if(!user.is_space_admin){
173
- throw new Error('not permission!');
174
- }
175
- return await this.getCloudSaasPurchasedPackages();
176
- } catch (error) {
177
- throw new MoleculerError(error.message, 500, "ERR_SOMETHING");
178
- }
179
- }
180
- },
181
- installPurchasedPackages: {
182
- async handler(ctx){
183
- const installErrors = {};
184
- const installPackages = [];
185
- try {
186
- const user = ctx.meta.user;
187
- if(!user.is_space_admin){
188
- throw new Error('not permission!');
189
- }
190
- try {
191
- await this.loginSteedosRegistry();
192
- console.info(`login steedos registry success`);
193
- } catch (error) {
194
- // console.error(`login steedos registry fail: `, error.message);
195
- }
196
- const settings = this.settings;
197
- const syncCloudPackages = settings.STEEDOS_CLOUD_SYNC_PACKAGES;
198
- let result = null;
199
- if(syncCloudPackages){
200
- result = await this.getCloudSaasPurchasedPackages();
201
- }
202
- if(result){
203
- for (const _package of result.packages) {
204
- try {
205
- const { name, version, label, description } = _package
206
- let enable = true; //安装已购买的软件包时先默认启用
207
- //TODO 处理 registry_url
208
- // 安装最新版
209
- const packageInfo = await this.installPackage(name, null, label, description, enable, ctx.broker);
210
- installPackages.push(packageInfo)
211
- } catch (error) {
212
- if(error.stderr){
213
- installErrors[_package.name] = error.stderr
214
- }else{
215
- installErrors[_package.name] = error.message
216
- }
217
- }
218
- }
219
- }
220
- return {
221
- installPackages: installPackages,
222
- installErrors: installErrors
223
- }
224
- } catch (error) {
225
- throw new MoleculerError(error.message, 500, "ERR_SOMETHING");
226
- }
227
- }
228
- },
229
162
  getPackageVersions: {
230
163
  async handler(ctx) {
231
164
  const { module } = ctx.params
@@ -245,12 +178,6 @@ module.exports = {
245
178
  if(!user.is_space_admin){
246
179
  throw new Error('not permission!');
247
180
  }
248
- try {
249
- await this.loginSteedosRegistry();
250
- console.info(`login steedos registry success`);
251
- } catch (error) {
252
- // console.error(`login steedos registry fail: `, error.message);
253
- }
254
181
  let { module, version, url, auth, registry_url } = ctx.params
255
182
  const enable = true;
256
183
  return await this.installPackageFromUrl(module, version, url, auth, enable, registry_url, ctx.broker)
@@ -301,47 +228,6 @@ module.exports = {
301
228
  installPackage: {
302
229
  async handler(module, version, label, description, enable, broker) {
303
230
  return await loader.installPackage(broker, {module, version, label, description, enable})
304
- }
305
- },
306
- getCloudSaasPurchasedPackages:{
307
- async handler() {
308
- const settings = this.settings;
309
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY
310
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID
311
- const url = settings.STEEDOS_CLOUD_URL
312
-
313
- if(!apiKey || !spaceId || !url){
314
- throw new Error(`请配置STEEDOS_CLOUD参数`);
315
- }
316
- const headers = Object.assign({}, {'Content-Type': 'application/json'}, { [HEADER_AUTH]: `${AUTH_TYPE} apikey,${apiKey}`});
317
- const response = await fetch(`${url}/api/shop/product_subscriptions/steedos-packages`, {
318
- method: 'GET', headers: headers
319
- });
320
-
321
- const result = await response.json();
322
-
323
- if(result.status === 'error'){
324
- throw new Error(`${url}: ${result.message}`)
325
- }
326
-
327
- const packages = [];
328
-
329
- _.each(result.data, (item)=>{
330
- if(item.product){
331
- let isExist = _.find(packages, (_package)=>{
332
- return _package.name === item.product.sku
333
- })
334
- if(!isExist){
335
- packages.push({
336
- name: item.product.sku,
337
- version: null, //始终安装latest最新版
338
- label: item.product.name,
339
- description: item.product.description || ''
340
- })
341
- }
342
- }
343
- })
344
- return { packages : packages}
345
231
  }
346
232
  },
347
233
  getPackageVersions: {
@@ -400,28 +286,6 @@ module.exports = {
400
286
  }
401
287
  }
402
288
 
403
- const settings = this.settings;
404
- if (url && url.startsWith(settings.STEEDOS_CLOUD_URL + '/api/pkg/download')) {
405
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY
406
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID
407
- const cloudUrl = settings.STEEDOS_CLOUD_URL
408
-
409
- if (!apiKey || !spaceId || !cloudUrl) {
410
- throw new Error(`请配置STEEDOS_CLOUD参数`);
411
- }
412
- const headers = Object.assign({}, { 'Content-Type': 'application/json' }, { [HEADER_AUTH]: `${AUTH_TYPE} apikey,${apiKey}` });
413
- const response = await fetch(url, {
414
- method: 'POST', headers: headers, body: JSON.stringify({ _authToken: auth })
415
- });
416
-
417
- const result = await response.json();
418
-
419
- if (result.error) {
420
- throw new Error(`安装失败,软件包URL或认证信息错误`)
421
- }
422
- url = `${url}/${result.token}`
423
- console.log(`url`, url);
424
- }
425
289
  const packagePath = await registry.installModule(module, version, url, registry_url);
426
290
  const packageInfo = loader.getPackageInfo(null, packagePath);
427
291
  const packageName = packageInfo.name;
@@ -477,40 +341,6 @@ module.exports = {
477
341
  return result.data;
478
342
  }
479
343
  },
480
- loginSteedosRegistry: {
481
- async handler() {
482
- const settings = this.settings;
483
- // 配置主控地址
484
- const consoleUrl = settings.STEEDOS_CLOUD_URL;
485
- if (!consoleUrl) {
486
- throw new Error('请配置主控地址');
487
- }
488
-
489
- // 初始化工作区数据
490
- // 获取环境变量中工作区信息
491
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID;
492
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY;
493
-
494
- if (!spaceId || !apiKey) {
495
- throw new Error('请配置环境变量STEEDOS_CLOUD_SPACE_ID和STEEDOS_CLOUD_API_KEY。');
496
- }
497
-
498
- const registryUrl = settings.STEEDOS_REGISTRY_URL
499
-
500
- // 调用接口获取初始化信息
501
- const { info, scopes } = await this.getSafeScopes(spaceId, apiKey, consoleUrl);
502
- const { adminPhone } = info;
503
- if (!adminPhone) {
504
- throw new Error('缺少工作区信息 工作区名称、管理员姓名、管理员手机号,请检查');
505
- }
506
- // let scope = '';
507
- // if (scopes && scopes.length > 0) {
508
- // scope = scopes[0];
509
- // }
510
- await login.loginToRegistry(adminPhone, apiKey, `${adminPhone}@steedos.com`, registryUrl, undefined);
511
- login.setYarnrcScopes(scopes, registryUrl);
512
- }
513
- },
514
344
  initialPackages: {
515
345
  async handler(){
516
346
  const settings = this.settings;
@@ -649,12 +479,6 @@ module.exports = {
649
479
  * Service started lifecycle event handler
650
480
  */
651
481
  async started() {
652
- try {
653
- await this.loginSteedosRegistry();
654
- console.info(`login steedos registry success`);
655
- } catch (error) {
656
- // console.error(`login steedos registry fail: `, error.message);
657
- }
658
482
 
659
483
  const PACKAGE_INSTALL_NODE = process.env.PACKAGE_INSTALL_NODE
660
484
  if(PACKAGE_INSTALL_NODE){
@@ -672,19 +496,6 @@ module.exports = {
672
496
  console.log(`started error`, error)
673
497
  }
674
498
 
675
- // 新版单包项目加载
676
- // try {
677
- // if(fs.existsSync(path.join(process.cwd(), 'package.service.js'))){
678
- // const packagePath = process.cwd();
679
- // if(fs.existsSync(packagePath)){
680
- // const packageInfo = require(path.join(packagePath, 'package.json'));
681
- // loader.appendToPackagesConfig(`${packageInfo.name}`, {version: packageInfo.version, description: packageInfo.description, local: true, path: util.getPackageRelativePath(process.cwd(), packagePath)});
682
- // }
683
- // }
684
- // } catch (error) {
685
- // console.log(`started error`, error)
686
- // }
687
-
688
499
  await metadata.uncompressPackages(process.cwd());
689
500
  const mPackages = metadata.getAllPackages(process.cwd());
690
501
  _.each(mPackages, (packagePath)=>{