@optimizely/ocp-cli 1.0.0-beta.8 → 1.0.1-beta.0

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.
@@ -0,0 +1,7 @@
1
+ export declare class GetLogLevelCommand {
2
+ appVersion: string;
3
+ trackerId?: string;
4
+ private availability;
5
+ getLogLevel(): Promise<void>;
6
+ private render;
7
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.GetLogLevelCommand = void 0;
10
+ const chalk = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const AppContext_1 = require("../../lib/AppContext");
13
+ const die_1 = require("../../lib/die");
14
+ const Rivendell_1 = require("../../lib/Rivendell");
15
+ const formatError_1 = require("../../lib/formatError");
16
+ let GetLogLevelCommand = class GetLogLevelCommand {
17
+ constructor() {
18
+ this.availability = '';
19
+ }
20
+ async getLogLevel() {
21
+ try {
22
+ const context = (0, AppContext_1.appContext)(this.appVersion);
23
+ if (!context.appId || !context.version) {
24
+ return (0, die_1.die)('App ID and version are required');
25
+ }
26
+ const logLevelRecord = await Rivendell_1.Rivendell.getLogLevel(this.availability, context.appId, context.version, this.trackerId);
27
+ this.render(logLevelRecord);
28
+ }
29
+ catch (e) {
30
+ (0, die_1.die)((0, formatError_1.formatError)(e));
31
+ }
32
+ }
33
+ render(record) {
34
+ if (record.trackerId) {
35
+ console.log(chalk.green(`install log level is currently set to ${record.logLevel}`));
36
+ }
37
+ else {
38
+ console.log(chalk.green(`${this.appVersion} log level is currently set to ${record.logLevel}`));
39
+ }
40
+ }
41
+ };
42
+ __decorate([
43
+ oo_cli_1.param,
44
+ oo_cli_1.required,
45
+ (0, oo_cli_1.help)('The App ID and version')
46
+ ], GetLogLevelCommand.prototype, "appVersion", void 0);
47
+ __decorate([
48
+ (0, oo_cli_1.option)('trackerId'),
49
+ (0, oo_cli_1.help)('The Tracker ID of the installed account. If not provided, returns default log level for the app version')
50
+ ], GetLogLevelCommand.prototype, "trackerId", void 0);
51
+ __decorate([
52
+ (0, oo_cli_1.option)('a'),
53
+ (0, oo_cli_1.help)('The availability zone that will be targeted (default: us)')
54
+ ], GetLogLevelCommand.prototype, "availability", void 0);
55
+ __decorate([
56
+ (0, oo_cli_1.command)('get-log-level'),
57
+ (0, oo_cli_1.help)('Get the logLevel of a particular app version or an installation')
58
+ ], GetLogLevelCommand.prototype, "getLogLevel", null);
59
+ GetLogLevelCommand = __decorate([
60
+ (0, oo_cli_1.namespace)('app')
61
+ ], GetLogLevelCommand);
62
+ exports.GetLogLevelCommand = GetLogLevelCommand;
63
+ //# sourceMappingURL=GetLogLevel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetLogLevel.js","sourceRoot":"","sources":["../../../src/commands/app/GetLogLevel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAyE;AACzE,qDAAgD;AAChD,uCAAkC;AAClC,mDAA8C;AAC9C,uDAAkD;AAI3C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAYG,iBAAY,GAAW,EAAE,CAAC;IA0BpC,CAAC;IAtBc,AAAN,KAAK,CAAC,WAAW;QACtB,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtC,OAAO,IAAA,SAAG,EAAC,iCAAiC,CAAC,CAAC;aAC/C;YAED,MAAM,cAAc,GAAG,MAAM,qBAAS,CAAC,WAAW,CAChD,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,MAAsB;QACnC,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACtF;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,kCAAkC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACjG;IACH,CAAC;CACF,CAAA;AAlCC;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,wBAAwB,CAAC;sDACJ;AAI3B;IAFC,IAAA,eAAM,EAAC,WAAW,CAAC;IACnB,IAAA,aAAI,EAAC,yGAAyG,CAAC;qDACtF;AAI1B;IAFC,IAAA,eAAM,EAAC,GAAG,CAAC;IACX,IAAA,aAAI,EAAC,2DAA2D,CAAC;wDAChC;AAIrB;IAFZ,IAAA,gBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,aAAI,EAAC,iEAAiE,CAAC;qDAcvE;AA7BU,kBAAkB;IAD9B,IAAA,kBAAS,EAAC,KAAK,CAAC;GACJ,kBAAkB,CAsC9B;AAtCY,gDAAkB"}
@@ -0,0 +1,9 @@
1
+ export declare class SetLogLevelCommand {
2
+ appVersion: string;
3
+ logLevel: string;
4
+ trackerId?: string;
5
+ timeToLive: string;
6
+ private availability;
7
+ setLogLevel(): Promise<void>;
8
+ private getLogLevel;
9
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SetLogLevelCommand = void 0;
10
+ const chalk = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const parse_duration_1 = require("parse-duration");
13
+ const AppContext_1 = require("../../lib/AppContext");
14
+ const die_1 = require("../../lib/die");
15
+ const Rivendell_1 = require("../../lib/Rivendell");
16
+ const formatError_1 = require("../../lib/formatError");
17
+ var LogLevel = Rivendell_1.Rivendell.LogLevel;
18
+ let SetLogLevelCommand = class SetLogLevelCommand {
19
+ constructor() {
20
+ this.availability = '';
21
+ }
22
+ async setLogLevel() {
23
+ try {
24
+ const context = (0, AppContext_1.appContext)(this.appVersion);
25
+ if (!context.appId || !context.version) {
26
+ return (0, die_1.die)('App ID and version are required');
27
+ }
28
+ const level = this.getLogLevel(this.logLevel);
29
+ const ttlSeconds = (0, parse_duration_1.default)(this.timeToLive, 'second');
30
+ if (!ttlSeconds) {
31
+ (0, die_1.die)(chalk.red('Invalid "--ttl" input, should be relative string (i.e. "5m" for 5 minutes.'));
32
+ }
33
+ await Rivendell_1.Rivendell.setLogLevel(this.availability, context.appId, context.version, level.toString(), ttlSeconds, this.trackerId);
34
+ if (this.trackerId) {
35
+ console.log(chalk.green(`Successfully set log level for tracker ${this.trackerId} of the app version ${this.appVersion}`));
36
+ }
37
+ else {
38
+ console.log(chalk.green(`Successfully set log level for the app version ${this.appVersion}`));
39
+ }
40
+ }
41
+ catch (e) {
42
+ (0, die_1.die)((0, formatError_1.formatError)(e));
43
+ }
44
+ }
45
+ getLogLevel(logLevel) {
46
+ const key = logLevel.toUpperCase();
47
+ if (!LogLevel[key]) {
48
+ (0, die_1.die)(`${logLevel} is not a valid LogLevel`);
49
+ }
50
+ return LogLevel[key];
51
+ }
52
+ };
53
+ __decorate([
54
+ oo_cli_1.param,
55
+ oo_cli_1.required,
56
+ (0, oo_cli_1.help)('The App ID and version')
57
+ ], SetLogLevelCommand.prototype, "appVersion", void 0);
58
+ __decorate([
59
+ oo_cli_1.param,
60
+ oo_cli_1.required,
61
+ (0, oo_cli_1.help)(`The desired logLevel to set. Possible values: ${Object.values(LogLevel).join(', ')}`)
62
+ ], SetLogLevelCommand.prototype, "logLevel", void 0);
63
+ __decorate([
64
+ (0, oo_cli_1.option)('trackerId'),
65
+ (0, oo_cli_1.help)('The Tracker ID of the installed account. If not provided, log level is set for the app version')
66
+ ], SetLogLevelCommand.prototype, "trackerId", void 0);
67
+ __decorate([
68
+ (0, oo_cli_1.option)('ttl'),
69
+ (0, oo_cli_1.help)('LogLevel expiration period (TTL) as relative string (i.e. "5m" for 5 minutes). Default: 2h'),
70
+ (0, oo_cli_1.defaultValue)('2h')
71
+ ], SetLogLevelCommand.prototype, "timeToLive", void 0);
72
+ __decorate([
73
+ (0, oo_cli_1.option)('a'),
74
+ (0, oo_cli_1.help)('The availability zone that will be targeted (default: us)')
75
+ ], SetLogLevelCommand.prototype, "availability", void 0);
76
+ __decorate([
77
+ (0, oo_cli_1.command)('set-log-level'),
78
+ (0, oo_cli_1.help)('Set the logLevel of a particular app version or an installation')
79
+ ], SetLogLevelCommand.prototype, "setLogLevel", null);
80
+ SetLogLevelCommand = __decorate([
81
+ (0, oo_cli_1.namespace)('app')
82
+ ], SetLogLevelCommand);
83
+ exports.SetLogLevelCommand = SetLogLevelCommand;
84
+ //# sourceMappingURL=SetLogLevel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetLogLevel.js","sourceRoot":"","sources":["../../../src/commands/app/SetLogLevel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAuF;AACvF,mDAAwD;AACxD,qDAAgD;AAChD,uCAAkC;AAClC,mDAA8C;AAC9C,uDAAkD;AAClD,IAAO,QAAQ,GAAG,qBAAS,CAAC,QAAQ,CAAC;AAG9B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAsBG,iBAAY,GAAW,EAAE,CAAC;IAsCpC,CAAC;IAlCc,AAAN,KAAK,CAAC,WAAW;QACtB,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtC,OAAO,IAAA,SAAG,EAAC,iCAAiC,CAAC,CAAC;aAC/C;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE;gBACf,IAAA,SAAG,EAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;aAC9F;YAED,MAAM,qBAAS,CAAC,WAAW,CACzB,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACpG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC5H;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kDAAkD,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC/F;SAEF;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,WAAW,CAAC,QAAgB;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,EAAE;YAC/B,IAAA,SAAG,EAAC,GAAG,QAAQ,0BAA0B,CAAC,CAAC;SAC5C;QACD,OAAO,QAAQ,CAAC,GAAgB,CAAC,CAAC;IACtC,CAAC;CAEF,CAAA;AAxDC;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,wBAAwB,CAAC;sDACJ;AAK3B;IAHC,cAAK;IACL,iBAAQ;IACR,IAAA,aAAI,EAAC,iDAAiD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oDACnE;AAIzB;IAFC,IAAA,eAAM,EAAC,WAAW,CAAC;IACnB,IAAA,aAAI,EAAC,gGAAgG,CAAC;qDAC7E;AAK1B;IAHC,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,aAAI,EAAC,4FAA4F,CAAC;IAClG,IAAA,qBAAY,EAAC,IAAI,CAAC;sDACQ;AAI3B;IAFC,IAAA,eAAM,EAAC,GAAG,CAAC;IACX,IAAA,aAAI,EAAC,2DAA2D,CAAC;wDAChC;AAIrB;IAFZ,IAAA,gBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,aAAI,EAAC,iEAAiE,CAAC;qDAyBvE;AAlDU,kBAAkB;IAD9B,IAAA,kBAAS,EAAC,KAAK,CAAC;GACJ,kBAAkB,CA4D9B;AA5DY,gDAAkB"}
package/dist/index.js CHANGED
@@ -4,12 +4,24 @@ const oo_cli_1 = require("oo-cli");
4
4
  const path = require("path");
5
5
  const EnvironmentalOutput_1 = require("./lib/EnvironmentalOutput");
6
6
  const checkForUpdate_1 = require("./lib/checkForUpdate");
7
- function run() {
7
+ const os = require("os");
8
+ const fs = require("fs");
9
+ const formatError_1 = require("./lib/formatError");
10
+ const migrateOptiCli_1 = require("./lib/migrateOptiCli");
11
+ const die_1 = require("./lib/die");
12
+ async function run() {
13
+ await (0, migrateOptiCli_1.migrateOptiCli)();
14
+ const configFolder = path.join(os.homedir(), '.ocp');
15
+ if (!fs.existsSync(configFolder)) {
16
+ (0, die_1.die)('No ~/.ocp config folder found. ' +
17
+ 'Follow the instruction in ' +
18
+ 'https://docs.developers.optimizely.com/optimizely-connect-platform/docs/ocp-cli-commands ' +
19
+ 'to set up your development environment.');
20
+ }
8
21
  (0, EnvironmentalOutput_1.showEnvironment)();
9
22
  const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
10
- (0, checkForUpdate_1.checkForUpdate)(manifest)
11
- .then(() => new oo_cli_1.Runner(__dirname, manifest).run())
12
- .catch((e) => console.log(e.message));
23
+ await (0, checkForUpdate_1.checkForUpdate)(manifest);
24
+ new oo_cli_1.Runner(__dirname, manifest).run();
13
25
  }
14
- run();
26
+ run().catch((e) => (0, die_1.die)((0, formatError_1.formatError)(e)));
15
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,6BAA6B;AAC7B,mEAA4D;AAC5D,yDAAsD;AAEtD,SAAS,GAAG;IACR,IAAA,qCAAe,GAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACzE,IAAA,+BAAc,EAAC,QAAQ,CAAC;SACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;SACjD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,6BAA6B;AAC7B,mEAA4D;AAC5D,yDAAsD;AACtD,yBAAyB;AACzB,yBAAyB;AACzB,mDAA8C;AAC9C,yDAAoD;AACpD,mCAA8B;AAE9B,KAAK,UAAU,GAAG;IAChB,MAAM,IAAA,+BAAc,GAAE,CAAC;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAC9B,IAAA,SAAG,EACD,iCAAiC;YACjC,4BAA4B;YAC5B,2FAA2F;YAC3F,yCAAyC,CAC1C,CAAC;KACL;IAED,IAAA,qCAAe,GAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACzE,MAAM,IAAA,+BAAc,EAAC,QAAQ,CAAC,CAAC;IAE/B,IAAI,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;AACxC,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -50,6 +50,13 @@ export declare namespace Rivendell {
50
50
  IMMEDIATE = "IMMEDIATE",
51
51
  RECURRING = "RECURRING"
52
52
  }
53
+ enum LogLevel {
54
+ DEBUG = "DEBUG",
55
+ INFO = "INFO",
56
+ WARN = "WARN",
57
+ ERROR = "ERROR",
58
+ NEVER = "NEVER"
59
+ }
53
60
  interface AppVersionId {
54
61
  appId: string;
55
62
  version: string;
@@ -212,6 +219,12 @@ export declare namespace Rivendell {
212
219
  url: string;
213
220
  live: boolean;
214
221
  }
222
+ interface LogLevelRecord {
223
+ appId: string;
224
+ version: string;
225
+ trackerId?: string;
226
+ logLevel: string;
227
+ }
215
228
  interface JwtResponse {
216
229
  jwt: string;
217
230
  }
@@ -307,6 +320,14 @@ export declare namespace Rivendell {
307
320
  * Trigger a unpublish.
308
321
  */
309
322
  function unpublish(appId: string, version: string, shard: string): Promise<void>;
323
+ /**
324
+ * Set logLevel of an app version or an installation
325
+ */
326
+ function setLogLevel(shard: string, appId: string, version: string, logLevel: string, timeToLive: number, trackerId?: string): Promise<void>;
327
+ /**
328
+ * Get logLevel of an app version or an installation
329
+ */
330
+ function getLogLevel(shard: string, appId: string, version: string, trackerId?: string): Promise<LogLevelRecord>;
310
331
  /**
311
332
  * Fetch a build by id.
312
333
  */
@@ -61,6 +61,14 @@ var Rivendell;
61
61
  JobTriggerType["IMMEDIATE"] = "IMMEDIATE";
62
62
  JobTriggerType["RECURRING"] = "RECURRING";
63
63
  })(JobTriggerType = Rivendell.JobTriggerType || (Rivendell.JobTriggerType = {}));
64
+ let LogLevel;
65
+ (function (LogLevel) {
66
+ LogLevel["DEBUG"] = "DEBUG";
67
+ LogLevel["INFO"] = "INFO";
68
+ LogLevel["WARN"] = "WARN";
69
+ LogLevel["ERROR"] = "ERROR";
70
+ LogLevel["NEVER"] = "NEVER";
71
+ })(LogLevel = Rivendell.LogLevel || (Rivendell.LogLevel = {}));
64
72
  let SortDirection;
65
73
  (function (SortDirection) {
66
74
  SortDirection["ASC"] = "ASC";
@@ -222,6 +230,21 @@ var Rivendell;
222
230
  await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.STOPPED });
223
231
  }
224
232
  Rivendell.unpublish = unpublish;
233
+ /**
234
+ * Set logLevel of an app version or an installation
235
+ */
236
+ async function setLogLevel(shard, appId, version, logLevel, timeToLive, trackerId) {
237
+ await RivendellApi_1.RivendellApi.put(path(shard, `runtime-config/log-levels`), { appId, version, trackerId, logLevel, timeToLive });
238
+ }
239
+ Rivendell.setLogLevel = setLogLevel;
240
+ /**
241
+ * Get logLevel of an app version or an installation
242
+ */
243
+ async function getLogLevel(shard, appId, version, trackerId) {
244
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, `runtime-config/log-levels/search`), { appId, version, trackerId });
245
+ return response.body;
246
+ }
247
+ Rivendell.getLogLevel = getLogLevel;
225
248
  /**
226
249
  * Fetch a build by id.
227
250
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,14 @@ const LAST_VERSION_CHECK_FILE = '.lastcheck';
13
13
  const _24hours = 24 * 60 * 60 * 1000;
14
14
  async function checkForUpdate(manifest) {
15
15
  var _a;
16
+ const installed = (_a = manifest.package) === null || _a === void 0 ? void 0 : _a.version;
17
+ const prerelease = semver.prerelease(installed);
18
+ const isBeta = prerelease && prerelease[0] === 'beta';
19
+ if (isBeta) {
20
+ console.log(chalk.yellow(`You are running beta version (${installed})'. ` +
21
+ `${chalk.italic.grey('yarn global upgrade @optimizely/ocp-cli --latest')} to upgrade to the latest release version`));
22
+ return;
23
+ }
16
24
  const lastCheck = getLastCheck();
17
25
  if (lastCheck) {
18
26
  const now = new Date();
@@ -24,7 +32,6 @@ async function checkForUpdate(manifest) {
24
32
  let upToDate = true;
25
33
  const latest = await fetchLatest();
26
34
  if (latest) {
27
- const installed = (_a = manifest.package) === null || _a === void 0 ? void 0 : _a.version;
28
35
  if (semver.gt(latest, installed)) {
29
36
  upToDate = false;
30
37
  if (await TerminalConfirm_1.TerminalConfirm.ask(chalk.yellow('A new version of OCP CLI is available. Update now?'))) {
@@ -1 +1 @@
1
- {"version":3,"file":"checkForUpdate.js","sourceRoot":"","sources":["../../src/lib/checkForUpdate.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AAEjC,qDAAkD;AAClD,uDAAoD;AACpD,uDAAqD;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,KAAK,UAAU,cAAc,CAAC,QAA4B;;IAC/D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;YAC7E,OAAO;SACR;KACF;IAED,IAAI;QACF,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAQ,CAAC;YAC7C,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAChC,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,MAAM,iCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,EAAE;oBACjG,kCAAgB,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;iBAC3E;aACF;SACF;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;AACH,CAAC;AAzBD,wCAyBC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,+BAAc,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,KAAK,MAAM,CAAC;QACvE,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;KACrC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"checkForUpdate.js","sourceRoot":"","sources":["../../src/lib/checkForUpdate.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AAEjC,qDAAkD;AAClD,uDAAoD;AACpD,uDAAqD;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,KAAK,UAAU,cAAc,CAAC,QAA4B;;IAC/D,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAQ,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAEtD,IAAI,MAAM,EAAE;QACV,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,iCAAiC,SAAS,MAAM;YAChD,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,2CAA2C,CACtH,CACJ,CAAC;QACF,OAAO;KACR;IAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;YAC7E,OAAO;SACR;KACF;IAED,IAAI;QACF,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAChC,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,MAAM,iCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,EAAE;oBACjG,kCAAgB,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;iBAC3E;aACF;SACF;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO;KACR;AACH,CAAC;AAtCD,wCAsCC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,+BAAc,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,KAAK,MAAM,CAAC;QACvE,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;KACrC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,uBAAuB,EAAE,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function migrateOptiCli(): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateOptiCli = void 0;
4
+ const path = require("path");
5
+ const os = require("os");
6
+ const fs = require("fs");
7
+ const chalk = require("chalk");
8
+ const TerminalConfirm_1 = require("./TerminalConfirm");
9
+ const dotenv = require("dotenv");
10
+ async function migrateOptiCli() {
11
+ const configFolder = path.join(os.homedir(), '.ocp');
12
+ if (fs.existsSync(configFolder) || !fs.existsSync(path.join(os.homedir(), '.opti'))) {
13
+ return;
14
+ }
15
+ const question = chalk.yellow('No ~/.ocp config folder found, but the config folder for legacy opti CLI exists. ' +
16
+ 'Do you want to copy opti CLI configuration? (y/n)');
17
+ const copyConfig = await TerminalConfirm_1.TerminalConfirm.ask(question);
18
+ if (copyConfig) {
19
+ fs.cpSync(path.join(os.homedir(), '.opti'), path.join(os.homedir(), '.ocp'), { recursive: true });
20
+ ['.env', '.env.staging'].forEach((envFile) => {
21
+ const envFilePath = path.join(os.homedir(), '.ocp', envFile);
22
+ if (fs.existsSync(envFilePath)) {
23
+ fs.writeFileSync(envFilePath, fs.readFileSync(envFilePath, 'utf8').replace('OPTI_ENV', 'OCP_ENV'));
24
+ }
25
+ });
26
+ dotenv.config({ path: path.join(os.homedir(), '.ocp/.env') });
27
+ }
28
+ }
29
+ exports.migrateOptiCli = migrateOptiCli;
30
+ //# sourceMappingURL=migrateOptiCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateOptiCli.js","sourceRoot":"","sources":["../../src/lib/migrateOptiCli.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,+BAA+B;AAC/B,uDAAkD;AAClD,iCAAiC;AAE1B,KAAK,UAAU,cAAc;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;QACnF,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,mFAAmF;QACnF,mDAAmD,CACpD,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,iCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,UAAU,EAAE;QACd,EAAE,CAAC,MAAM,CACP,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,EAC/B,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;QACF,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAC9B,EAAE,CAAC,aAAa,CACd,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CACpE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAC,CAAC,CAAC;KAC7D;AACH,CAAC;AA9BD,wCA8BC"}
@@ -51,6 +51,49 @@
51
51
  "app": {
52
52
  "namespaces": {},
53
53
  "commands": [
54
+ {
55
+ "path": "commands/app/GetLogLevel.js",
56
+ "className": "GetLogLevelCommand",
57
+ "key": "getLogLevel",
58
+ "command": "getLogLevel",
59
+ "aliases": [
60
+ "get-log-level"
61
+ ],
62
+ "help": "Get the logLevel of a particular app version or an installation",
63
+ "documentation": "TBD",
64
+ "flags": [],
65
+ "options": [
66
+ {
67
+ "name": "trackerId",
68
+ "key": "trackerId",
69
+ "aliases": [
70
+ "trackerId"
71
+ ],
72
+ "help": "The Tracker ID of the installed account. If not provided, returns default log level for the app version",
73
+ "optional": true,
74
+ "multiple": false
75
+ },
76
+ {
77
+ "name": "availability",
78
+ "key": "availability",
79
+ "aliases": [
80
+ "a"
81
+ ],
82
+ "help": "The availability zone that will be targeted (default: us)",
83
+ "optional": true,
84
+ "multiple": false
85
+ }
86
+ ],
87
+ "params": [
88
+ {
89
+ "name": "appVersion",
90
+ "key": "appVersion",
91
+ "help": "The App ID and version",
92
+ "optional": false,
93
+ "multiple": false
94
+ }
95
+ ]
96
+ },
54
97
  {
55
98
  "path": "commands/app/Init.js",
56
99
  "className": "CreateCommand",
@@ -323,6 +366,67 @@
323
366
  }
324
367
  ]
325
368
  },
369
+ {
370
+ "path": "commands/app/SetLogLevel.js",
371
+ "className": "SetLogLevelCommand",
372
+ "key": "setLogLevel",
373
+ "command": "setLogLevel",
374
+ "aliases": [
375
+ "set-log-level"
376
+ ],
377
+ "help": "Set the logLevel of a particular app version or an installation",
378
+ "documentation": "TBD",
379
+ "flags": [],
380
+ "options": [
381
+ {
382
+ "name": "trackerId",
383
+ "key": "trackerId",
384
+ "aliases": [
385
+ "trackerId"
386
+ ],
387
+ "help": "The Tracker ID of the installed account. If not provided, log level is set for the app version",
388
+ "optional": true,
389
+ "multiple": false
390
+ },
391
+ {
392
+ "name": "timeToLive",
393
+ "key": "timeToLive",
394
+ "aliases": [
395
+ "ttl"
396
+ ],
397
+ "help": "LogLevel expiration period (TTL) as relative string (i.e. \"5m\" for 5 minutes). Default: 2h",
398
+ "defaultValue": "2h",
399
+ "optional": true,
400
+ "multiple": false
401
+ },
402
+ {
403
+ "name": "availability",
404
+ "key": "availability",
405
+ "aliases": [
406
+ "a"
407
+ ],
408
+ "help": "The availability zone that will be targeted (default: us)",
409
+ "optional": true,
410
+ "multiple": false
411
+ }
412
+ ],
413
+ "params": [
414
+ {
415
+ "name": "appVersion",
416
+ "key": "appVersion",
417
+ "help": "The App ID and version",
418
+ "optional": false,
419
+ "multiple": false
420
+ },
421
+ {
422
+ "name": "logLevel",
423
+ "key": "logLevel",
424
+ "help": "The desired logLevel to set. Possible values: DEBUG, INFO, WARN, ERROR, NEVER",
425
+ "optional": false,
426
+ "multiple": false
427
+ }
428
+ ]
429
+ },
326
430
  {
327
431
  "path": "commands/app/Validate.js",
328
432
  "className": "ValidateCommand",
@@ -1134,7 +1238,7 @@
1134
1238
  },
1135
1239
  "commands": [],
1136
1240
  "package": {
1137
- "version": "1.0.0-beta.8",
1241
+ "version": "1.0.1-beta.0",
1138
1242
  "name": "@optimizely/ocp-cli",
1139
1243
  "license": "Apache-2.0",
1140
1244
  "executable": "ocp"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely/ocp-cli",
3
- "version": "1.0.0-beta.8",
3
+ "version": "1.0.1-beta.0",
4
4
  "description": "Optimizely Connect Platform command line interface",
5
5
  "repository": "https://github.com/ZaiusInc/ocp-cli",
6
6
  "license": "Apache-2.0",
@@ -0,0 +1,48 @@
1
+ import * as chalk from 'chalk';
2
+ import {command, help, namespace, param, required, option} from 'oo-cli';
3
+ import {appContext} from '../../lib/AppContext';
4
+ import {die} from '../../lib/die';
5
+ import {Rivendell} from '../../lib/Rivendell';
6
+ import {formatError} from '../../lib/formatError';
7
+ import LogLevelRecord = Rivendell.LogLevelRecord;
8
+
9
+ @namespace('app')
10
+ export class GetLogLevelCommand {
11
+ @param
12
+ @required
13
+ @help('The App ID and version')
14
+ public appVersion!: string;
15
+
16
+ @option('trackerId')
17
+ @help('The Tracker ID of the installed account. If not provided, returns default log level for the app version')
18
+ public trackerId?: string;
19
+
20
+ @option('a')
21
+ @help('The availability zone that will be targeted (default: us)')
22
+ private availability: string = '';
23
+
24
+ @command('get-log-level')
25
+ @help('Get the logLevel of a particular app version or an installation')
26
+ public async getLogLevel() {
27
+ try {
28
+ const context = appContext(this.appVersion);
29
+ if (!context.appId || !context.version) {
30
+ return die('App ID and version are required');
31
+ }
32
+
33
+ const logLevelRecord = await Rivendell.getLogLevel(
34
+ this.availability, context.appId, context.version, this.trackerId);
35
+ this.render(logLevelRecord);
36
+ } catch (e: any) {
37
+ die(formatError(e));
38
+ }
39
+ }
40
+
41
+ private render(record: LogLevelRecord) {
42
+ if (record.trackerId) {
43
+ console.log(chalk.green(`install log level is currently set to ${record.logLevel}`));
44
+ } else {
45
+ console.log(chalk.green(`${this.appVersion} log level is currently set to ${record.logLevel}`));
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,71 @@
1
+ import * as chalk from 'chalk';
2
+ import {command, help, namespace, param, required, option, defaultValue} from 'oo-cli';
3
+ import {default as parseDuration} from 'parse-duration';
4
+ import {appContext} from '../../lib/AppContext';
5
+ import {die} from '../../lib/die';
6
+ import {Rivendell} from '../../lib/Rivendell';
7
+ import {formatError} from '../../lib/formatError';
8
+ import LogLevel = Rivendell.LogLevel;
9
+
10
+ @namespace('app')
11
+ export class SetLogLevelCommand {
12
+ @param
13
+ @required
14
+ @help('The App ID and version')
15
+ public appVersion!: string;
16
+
17
+ @param
18
+ @required
19
+ @help(`The desired logLevel to set. Possible values: ${Object.values(LogLevel).join(', ')}`)
20
+ public logLevel!: string;
21
+
22
+ @option('trackerId')
23
+ @help('The Tracker ID of the installed account. If not provided, log level is set for the app version')
24
+ public trackerId?: string;
25
+
26
+ @option('ttl')
27
+ @help('LogLevel expiration period (TTL) as relative string (i.e. "5m" for 5 minutes). Default: 2h')
28
+ @defaultValue('2h')
29
+ public timeToLive!: string;
30
+
31
+ @option('a')
32
+ @help('The availability zone that will be targeted (default: us)')
33
+ private availability: string = '';
34
+
35
+ @command('set-log-level')
36
+ @help('Set the logLevel of a particular app version or an installation')
37
+ public async setLogLevel() {
38
+ try {
39
+ const context = appContext(this.appVersion);
40
+ if (!context.appId || !context.version) {
41
+ return die('App ID and version are required');
42
+ }
43
+
44
+ const level = this.getLogLevel(this.logLevel);
45
+ const ttlSeconds = parseDuration(this.timeToLive, 'second');
46
+ if (!ttlSeconds) {
47
+ die(chalk.red('Invalid "--ttl" input, should be relative string (i.e. "5m" for 5 minutes.'));
48
+ }
49
+
50
+ await Rivendell.setLogLevel(
51
+ this.availability, context.appId, context.version, level.toString(), ttlSeconds!, this.trackerId);
52
+ if (this.trackerId) {
53
+ console.log(chalk.green(`Successfully set log level for tracker ${this.trackerId} of the app version ${this.appVersion}`));
54
+ } else {
55
+ console.log(chalk.green(`Successfully set log level for the app version ${this.appVersion}`));
56
+ }
57
+
58
+ } catch (e: any) {
59
+ die(formatError(e));
60
+ }
61
+ }
62
+
63
+ private getLogLevel(logLevel: string): LogLevel {
64
+ const key = logLevel.toUpperCase();
65
+ if (!LogLevel[key as LogLevel]) {
66
+ die(`${logLevel} is not a valid LogLevel`);
67
+ }
68
+ return LogLevel[key as LogLevel];
69
+ }
70
+
71
+ }
package/src/index.ts CHANGED
@@ -2,14 +2,31 @@ import { Runner } from 'oo-cli';
2
2
  import * as path from 'path';
3
3
  import { showEnvironment } from './lib/EnvironmentalOutput';
4
4
  import { checkForUpdate } from './lib/checkForUpdate';
5
+ import * as os from 'os';
6
+ import * as fs from 'fs';
7
+ import {formatError} from './lib/formatError';
8
+ import {migrateOptiCli} from './lib/migrateOptiCli';
9
+ import {die} from './lib/die';
5
10
 
6
- function run() {
7
- showEnvironment();
11
+ async function run() {
12
+ await migrateOptiCli();
8
13
 
9
- const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
10
- checkForUpdate(manifest)
11
- .then(() => new Runner(__dirname, manifest).run())
12
- .catch((e) => console.log(e.message));
14
+ const configFolder = path.join(os.homedir(), '.ocp');
15
+ if (!fs.existsSync(configFolder)) {
16
+ die(
17
+ 'No ~/.ocp config folder found. ' +
18
+ 'Follow the instruction in ' +
19
+ 'https://docs.developers.optimizely.com/optimizely-connect-platform/docs/ocp-cli-commands ' +
20
+ 'to set up your development environment.'
21
+ );
22
+ }
23
+
24
+ showEnvironment();
25
+
26
+ const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
27
+ await checkForUpdate(manifest);
28
+
29
+ new Runner(__dirname, manifest).run();
13
30
  }
14
31
 
15
- run();
32
+ run().catch((e) => die(formatError(e)));
@@ -61,6 +61,14 @@ export namespace Rivendell {
61
61
  RECURRING = 'RECURRING'
62
62
  }
63
63
 
64
+ export enum LogLevel {
65
+ DEBUG = 'DEBUG',
66
+ INFO = 'INFO',
67
+ WARN = 'WARN',
68
+ ERROR = 'ERROR',
69
+ NEVER = 'NEVER'
70
+ }
71
+
64
72
  export interface AppVersionId {
65
73
  appId: string;
66
74
  version: string;
@@ -246,6 +254,13 @@ export namespace Rivendell {
246
254
  live: boolean;
247
255
  }
248
256
 
257
+ export interface LogLevelRecord {
258
+ appId: string;
259
+ version: string;
260
+ trackerId?: string;
261
+ logLevel: string;
262
+ }
263
+
249
264
  export interface JwtResponse {
250
265
  jwt: string;
251
266
  }
@@ -455,6 +470,34 @@ export namespace Rivendell {
455
470
  await RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), {state: AppVersionState.STOPPED});
456
471
  }
457
472
 
473
+ /**
474
+ * Set logLevel of an app version or an installation
475
+ */
476
+ export async function setLogLevel(
477
+ shard: string,
478
+ appId: string,
479
+ version: string,
480
+ logLevel: string,
481
+ timeToLive: number,
482
+ trackerId?: string
483
+ ): Promise<void> {
484
+ await RivendellApi.put(path(shard, `runtime-config/log-levels`), {appId, version, trackerId, logLevel, timeToLive});
485
+ }
486
+
487
+ /**
488
+ * Get logLevel of an app version or an installation
489
+ */
490
+ export async function getLogLevel(
491
+ shard: string,
492
+ appId: string,
493
+ version: string,
494
+ trackerId?: string
495
+ ): Promise<LogLevelRecord> {
496
+ const response = await RivendellApi.post<LogLevelRecord>(
497
+ path(shard, `runtime-config/log-levels/search`), {appId, version, trackerId});
498
+ return response.body;
499
+ }
500
+
458
501
  /**
459
502
  * Fetch a build by id.
460
503
  */
@@ -17,6 +17,20 @@ const LAST_VERSION_CHECK_FILE = '.lastcheck';
17
17
  const _24hours = 24 * 60 * 60 * 1000;
18
18
 
19
19
  export async function checkForUpdate(manifest: ManifestDefinition): Promise<void> {
20
+ const installed = manifest.package?.version!;
21
+ const prerelease = semver.prerelease(installed);
22
+ const isBeta = prerelease && prerelease[0] === 'beta';
23
+
24
+ if (isBeta) {
25
+ console.log(
26
+ chalk.yellow(
27
+ `You are running beta version (${installed})'. ` +
28
+ `${chalk.italic.grey('yarn global upgrade @optimizely/ocp-cli --latest')} to upgrade to the latest release version`
29
+ )
30
+ );
31
+ return;
32
+ }
33
+
20
34
  const lastCheck = getLastCheck();
21
35
  if (lastCheck) {
22
36
  const now = new Date();
@@ -29,7 +43,6 @@ export async function checkForUpdate(manifest: ManifestDefinition): Promise<void
29
43
  let upToDate = true;
30
44
  const latest = await fetchLatest();
31
45
  if (latest) {
32
- const installed = manifest.package?.version!;
33
46
  if (semver.gt(latest, installed)) {
34
47
  upToDate = false;
35
48
  if (await TerminalConfirm.ask(chalk.yellow('A new version of OCP CLI is available. Update now?'))) {
@@ -0,0 +1,38 @@
1
+ import * as path from 'path';
2
+ import * as os from 'os';
3
+ import * as fs from 'fs';
4
+ import * as chalk from 'chalk';
5
+ import {TerminalConfirm} from './TerminalConfirm';
6
+ import * as dotenv from 'dotenv';
7
+
8
+ export async function migrateOptiCli() {
9
+ const configFolder = path.join(os.homedir(), '.ocp');
10
+ if (fs.existsSync(configFolder) || !fs.existsSync(path.join(os.homedir(), '.opti'))) {
11
+ return;
12
+ }
13
+
14
+ const question = chalk.yellow(
15
+ 'No ~/.ocp config folder found, but the config folder for legacy opti CLI exists. ' +
16
+ 'Do you want to copy opti CLI configuration? (y/n)'
17
+ );
18
+
19
+ const copyConfig = await TerminalConfirm.ask(question);
20
+ if (copyConfig) {
21
+ fs.cpSync(
22
+ path.join(os.homedir(), '.opti'),
23
+ path.join(os.homedir(), '.ocp'),
24
+ {recursive: true}
25
+ );
26
+ ['.env', '.env.staging'].forEach((envFile) => {
27
+ const envFilePath = path.join(os.homedir(), '.ocp', envFile);
28
+ if (fs.existsSync(envFilePath)) {
29
+ fs.writeFileSync(
30
+ envFilePath,
31
+ fs.readFileSync(envFilePath, 'utf8').replace('OPTI_ENV', 'OCP_ENV')
32
+ );
33
+ }
34
+ });
35
+
36
+ dotenv.config({path: path.join(os.homedir(), '.ocp/.env')});
37
+ }
38
+ }