balena-cli 16.1.0 → 16.2.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,48 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 16.2.0 - 2023-05-19
8
+
9
+ * secureboot: Retrieve the OS release & contract in one request [Thodoris Greasidis]
10
+ * os configure, config generate: Add '--secureBoot' option to opt-in secure boot [Alex Gonzalez]
11
+
12
+ <details>
13
+ <summary> package.json: Update balena-sdk to 16.44.2 [Alex Gonzalez] </summary>
14
+
15
+ > ### balena-sdk-16.44.2 - 2023-05-16
16
+ >
17
+ > * Update flowzone's macos runner to v12 [Thodoris Greasidis]
18
+ > * Add device type yocto properties to typings [Otávio Jacobi]
19
+ > * Optimize getDeviceUrl request in one query [Otávio Jacobi]
20
+ >
21
+ > ### balena-sdk-16.44.1 - 2023-05-09
22
+ >
23
+ > * Fix device.getAllByOrganization parameter docs [Otávio Jacobi]
24
+ >
25
+ > ### balena-sdk-16.44.0 - 2023-04-27
26
+ >
27
+ > * Add device.getAllByOrganization() [Thodoris Greasidis]
28
+ > * Deprecate Device's is_managed_by__device & manages__device properties [Thodoris Greasidis]
29
+ >
30
+ > ### balena-sdk-16.43.0 - 2023-04-19
31
+ >
32
+ > * Add test case DeviceHistory expandable resources [fisehara]
33
+ > * Make DeviceHistory referenced resources expandable [fisehara]
34
+ >
35
+ > ### balena-sdk-16.42.0 - 2023-04-18
36
+ >
37
+ > * Add support for pine queries on Concept Type properties [Thodoris Greasidis]
38
+ > * Properly type Actor properties on resources [fisehara]
39
+ >
40
+ > ### balena-sdk-16.41.0 - 2023-04-07
41
+ >
42
+ > * Release model: Add support for getting/patching releases by `application` & `rawVersion` pairs [myarmolinsky]
43
+ >
44
+
45
+ </details>
46
+
47
+ * flowzone: update custom runs to use macos-12 [Alex Gonzalez]
48
+
7
49
  ## 16.1.0 - 2023-05-16
8
50
 
9
51
  * build linux/arm packages [balenaCI]
@@ -4,6 +4,7 @@ interface FlagsDef {
4
4
  version: string;
5
5
  fleet?: string;
6
6
  dev?: boolean;
7
+ secureBoot?: boolean;
7
8
  device?: string;
8
9
  deviceApiKey?: string;
9
10
  deviceType?: string;
@@ -55,11 +55,14 @@ class ConfigGenerateCmd extends command_2.default {
55
55
  }
56
56
  }
57
57
  const deviceManifest = await balena.models.device.getManifestBySlug(deviceType);
58
+ const { validateSecureBootOptionAndWarn } = await Promise.resolve().then(() => require('../../utils/config'));
59
+ await validateSecureBootOptionAndWarn(options.secureBoot, deviceType, options.version);
58
60
  const answers = await (0, lazy_1.getCliForm)().run(deviceManifest.options, {
59
61
  override: { ...options, app: options.fleet, application: options.fleet },
60
62
  });
61
63
  answers.version = options.version;
62
64
  answers.developmentMode = options.dev;
65
+ answers.secureBoot = options.secureBoot;
63
66
  answers.provisioningKeyName = options['provisioning-key-name'];
64
67
  answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
65
68
  const { generateDeviceConfig, generateApplicationConfig } = await Promise.resolve().then(() => require('../../utils/config'));
@@ -99,6 +102,8 @@ ConfigGenerateCmd.description = (0, lazy_1.stripIndent) `
99
102
 
100
103
  ${messages_1.devModeInfo.split('\n').join('\n\t\t')}
101
104
 
105
+ ${messages_1.secureBootInfo.split('\n').join('\n\t\t')}
106
+
102
107
  To configure an image for a fleet of mixed device types, use the --fleet option
103
108
  alongside the --deviceType option to specify the target device type.
104
109
 
@@ -113,6 +118,7 @@ ConfigGenerateCmd.examples = [
113
118
  '$ balena config generate --device 7cf02a6 --version 2.12.7 --deviceApiKey <existingDeviceKey>',
114
119
  '$ balena config generate --device 7cf02a6 --version 2.12.7 --output config.json',
115
120
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --dev',
121
+ '$ balena config generate --fleet myorg/fleet --version 2.12.7 --secureBoot',
116
122
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --deviceType fincm3',
117
123
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --output config.json',
118
124
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --network wifi --wifiSsid mySsid --wifiKey abcdefgh --appUpdatePollInterval 15',
@@ -125,6 +131,7 @@ ConfigGenerateCmd.flags = {
125
131
  }),
126
132
  fleet: { ...cf.fleet, exclusive: ['device'] },
127
133
  dev: cf.dev,
134
+ secureBoot: cf.secureBoot,
128
135
  device: {
129
136
  ...cf.device,
130
137
  exclusive: [
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../lib/commands/config/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../lib/commands/config/generate.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ interface FlagsDef {
9
9
  'config-wifi-key'?: string;
10
10
  'config-wifi-ssid'?: string;
11
11
  dev?: boolean;
12
+ secureBoot?: boolean;
12
13
  device?: string;
13
14
  'device-type'?: string;
14
15
  help?: void;
@@ -50,12 +50,15 @@ class OsConfigureCmd extends command_2.default {
50
50
  (await getOsVersionFromImage(params.image, deviceTypeManifest, devInit));
51
51
  const { validateDevOptionAndWarn } = await Promise.resolve().then(() => require('../../utils/config'));
52
52
  await validateDevOptionAndWarn(options.dev, osVersion);
53
+ const { validateSecureBootOptionAndWarn } = await Promise.resolve().then(() => require('../../utils/config'));
54
+ await validateSecureBootOptionAndWarn(options.secureBoot, deviceTypeSlug, osVersion);
53
55
  const answers = await askQuestionsForDeviceType(deviceTypeManifest, options, configJson);
54
56
  if (options.fleet) {
55
57
  answers.deviceType = deviceTypeSlug;
56
58
  }
57
59
  answers.version = osVersion;
58
60
  answers.developmentMode = options.dev;
61
+ answers.secureBoot = options.secureBoot;
59
62
  answers.provisioningKeyName = options['provisioning-key-name'];
60
63
  answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
61
64
  if (_.isEmpty(configJson)) {
@@ -112,6 +115,8 @@ OsConfigureCmd.description = (0, lazy_1.stripIndent) `
112
115
 
113
116
  ${messages_1.devModeInfo.split('\n').join('\n\t\t')}
114
117
 
118
+ ${messages_1.secureBootInfo.split('\n').join('\n\t\t')}
119
+
115
120
  The --system-connection (-c) option is used to inject NetworkManager connection
116
121
  profiles for additional network interfaces, such as cellular/GSM or additional
117
122
  WiFi or ethernet connections. This option may be passed multiple times in case there
@@ -165,6 +170,7 @@ OsConfigureCmd.flags = {
165
170
  description: 'WiFi SSID (network name) (non-interactive configuration)',
166
171
  }),
167
172
  dev: cf.dev,
173
+ secureBoot: cf.secureBoot,
168
174
  device: {
169
175
  ...cf.device,
170
176
  exclusive: [
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../lib/commands/os/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../lib/commands/os/configure.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare const verbose: IBooleanFlag<boolean>;
11
11
  export declare const yes: IBooleanFlag<boolean>;
12
12
  export declare const force: IBooleanFlag<boolean>;
13
13
  export declare const dev: IBooleanFlag<boolean>;
14
+ export declare const secureBoot: IBooleanFlag<boolean>;
14
15
  export declare const drive: flags.IOptionFlag<string | undefined>;
15
16
  export declare const driveOrImg: flags.IOptionFlag<string | undefined>;
16
17
  export declare const deviceType: flags.IOptionFlag<string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dataSetOutputFlags = exports.dataOutputFlags = exports.json = exports.deviceType = exports.driveOrImg = exports.drive = exports.dev = exports.force = exports.yes = exports.verbose = exports.service = exports.release = exports.quiet = exports.help = exports.device = exports.fleet = void 0;
3
+ exports.dataSetOutputFlags = exports.dataOutputFlags = exports.json = exports.deviceType = exports.driveOrImg = exports.drive = exports.secureBoot = exports.dev = exports.force = exports.yes = exports.verbose = exports.service = exports.release = exports.quiet = exports.help = exports.device = exports.fleet = void 0;
4
4
  const command_1 = require("@oclif/command");
5
5
  const lazy_1 = require("./lazy");
6
6
  const normalization_1 = require("./normalization");
@@ -46,6 +46,10 @@ exports.dev = command_1.flags.boolean({
46
46
  description: 'Configure balenaOS to operate in development mode',
47
47
  default: false,
48
48
  });
49
+ exports.secureBoot = command_1.flags.boolean({
50
+ description: 'Configure balenaOS installer to opt-in secure boot and disk encryption',
51
+ default: false,
52
+ });
49
53
  exports.drive = command_1.flags.string({
50
54
  char: 'd',
51
55
  description: (0, lazy_1.stripIndent) `
@@ -1 +1 @@
1
- {"version":3,"file":"common-flags.js","sourceRoot":"","sources":["../../lib/utils/common-flags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common-flags.js","sourceRoot":"","sources":["../../lib/utils/common-flags.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,9 @@ export interface ImgConfig {
28
28
  os?: {
29
29
  sshKeys?: string[];
30
30
  };
31
+ installer?: {
32
+ secureboot?: boolean;
33
+ };
31
34
  }
32
35
  export declare function generateApplicationConfig(application: BalenaSdk.Application, options: {
33
36
  version: string;
@@ -36,6 +39,7 @@ export declare function generateApplicationConfig(application: BalenaSdk.Applica
36
39
  os?: {
37
40
  sshKeys?: string[];
38
41
  };
42
+ secureBoot?: boolean;
39
43
  }): Promise<ImgConfig>;
40
44
  export declare function generateDeviceConfig(device: DeviceWithDeviceType & {
41
45
  belongs_to__application: BalenaSdk.PineDeferred;
@@ -43,3 +47,4 @@ export declare function generateDeviceConfig(device: DeviceWithDeviceType & {
43
47
  version: string;
44
48
  }): Promise<ImgConfig>;
45
49
  export declare function validateDevOptionAndWarn(dev?: boolean, version?: string, logger?: import('./logger')): Promise<void>;
50
+ export declare function validateSecureBootOptionAndWarn(secureBoot?: boolean, slug?: string, version?: string, logger?: import('./logger')): Promise<void>;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateDevOptionAndWarn = exports.generateDeviceConfig = exports.generateApplicationConfig = void 0;
3
+ exports.validateSecureBootOptionAndWarn = exports.validateDevOptionAndWarn = exports.generateDeviceConfig = exports.generateApplicationConfig = void 0;
4
4
  const semver = require("balena-semver");
5
5
  const lazy_1 = require("./lazy");
6
6
  async function generateApplicationConfig(application, options) {
7
+ var _a;
7
8
  options = {
8
9
  ...options,
9
10
  appUpdatePollInterval: options.appUpdatePollInterval || 10,
@@ -15,6 +16,10 @@ async function generateApplicationConfig(application, options) {
15
16
  ? [...config.os.sshKeys, ...options.os.sshKeys]
16
17
  : options.os.sshKeys;
17
18
  }
19
+ if (options.secureBoot) {
20
+ (_a = config.installer) !== null && _a !== void 0 ? _a : (config.installer = {});
21
+ config.installer.secureboot = options.secureBoot;
22
+ }
18
23
  return config;
19
24
  }
20
25
  exports.generateApplicationConfig = generateApplicationConfig;
@@ -67,4 +72,41 @@ async function validateDevOptionAndWarn(dev, version, logger) {
67
72
  Therefore, development mode should only be used in private, trusted local networks.`);
68
73
  }
69
74
  exports.validateDevOptionAndWarn = validateDevOptionAndWarn;
75
+ async function validateSecureBootOptionAndWarn(secureBoot, slug, version, logger) {
76
+ if (!secureBoot) {
77
+ return;
78
+ }
79
+ const { ExpectedError } = await Promise.resolve().then(() => require('../errors'));
80
+ if (!version) {
81
+ throw new ExpectedError(`Error: No version provided`);
82
+ }
83
+ if (!slug) {
84
+ throw new ExpectedError(`Error: No device type provided`);
85
+ }
86
+ const sdk = (0, lazy_1.getBalenaSdk)();
87
+ const releasePineOpts = {
88
+ $select: 'contract',
89
+ $filter: { raw_version: `${version.replace(/^v/, '')}` },
90
+ };
91
+ const [osRelease] = (await sdk.models.os.getAllOsVersions(slug, releasePineOpts));
92
+ if (!osRelease) {
93
+ throw new ExpectedError(`Error: No ${version} release for ${slug}`);
94
+ }
95
+ const contract = osRelease.contract ? JSON.parse(osRelease.contract) : null;
96
+ if (contract === null || contract === void 0 ? void 0 : contract.provides.some((entry) => {
97
+ return entry.type === 'sw.feature' && entry.slug === 'secureboot';
98
+ })) {
99
+ if (!logger) {
100
+ const Logger = await Promise.resolve().then(() => require('./logger'));
101
+ logger = Logger.getLogger();
102
+ }
103
+ logger.logInfo((0, lazy_1.stripIndent) `
104
+ The '--secureBoot' option is being used to configure a balenaOS installer image
105
+ into secure boot and full disk encryption.`);
106
+ }
107
+ else {
108
+ throw new ExpectedError(`Error: The '--secureBoot' option is not supported for ${slug} in ${version}`);
109
+ }
110
+ }
111
+ exports.validateSecureBootOptionAndWarn = validateSecureBootOptionAndWarn;
70
112
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/utils/config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare const dockerignoreHelp: string;
9
9
  export declare const applicationIdInfo = "Fleets may be specified by fleet name or slug. Fleet slugs are\nthe recommended option, as they are unique and unambiguous. Slugs can be\nlisted with the `balena fleets` command. Note that slugs may change if the\nfleet is renamed. Fleet names are not unique and may result in \"Fleet is\nambiguous\" errors at any time (even if it \"used to work in the past\"), for\nexample if the name clashes with a newly created public fleet, or with fleets\nfrom other balena accounts that you may be invited to join under any role.\nFor this reason, fleet names are especially discouraged in scripts (e.g. CI\nenvironments).";
10
10
  export declare const applicationNameNote = "Fleets may be specified by fleet name or slug. Slugs are recommended because\nthey are unique and unambiguous. Slugs can be listed with the `balena fleets`\ncommand. Note that slugs may change if the fleet is renamed. Fleet names are\nnot unique and may result in \"Fleet is ambiguous\" errors at any time (even if\n\"it used to work in the past\"), for example if the name clashes with a newly\ncreated public/open fleet, or with fleets from other balena accounts that you\nmay be invited to join under any role. For this reason, fleet names are\nespecially discouraged in scripts (e.g. CI environments).";
11
11
  export declare const devModeInfo = "The '--dev' option is used to configure balenaOS to operate in development mode,\nallowing anauthenticated root ssh access and exposing network ports such as\nbalenaEngine's 2375 (unencrypted). This option causes `\"developmentMode\": true`\nto be inserted in the 'config.json' file in the image's boot partion. Development\nmode (as a configurable option) is applicable to balenaOS releases from early\n2022. Older releases have separate development and production balenaOS images\nthat cannot be reconfigured through 'config.json' or the '--dev' option. Do not\nconfuse the balenaOS \"development mode\" with a device's \"local mode\", the latter\nbeing a supervisor feature that allows the \"balena push\" command to push a user's\napplication directly to a device in the local network.";
12
+ export declare const secureBootInfo = "The '--secureBoot' option is used to configure a balenaOS installer image to opt-in\nsecure boot and disk encryption.";
12
13
  export declare const jsonInfo = "The --json option is recommended when scripting the output of this command,\nbecause field names are less likely to change in JSON format and because it\nbetter represents data types like arrays, empty strings and null values.\nThe 'jq' utility may be helpful for querying JSON fields in shell scripts\n(https://stedolan.github.io/jq/manual/).";
13
14
  export declare const buildArgDeprecation = "WARNING: You have specified a '--buildArg' option, which is now deprecated, and\nmay be removed in the future. The recommended alternative is build-time secrets:\nhttps://www.balena.io/docs/learn/deploy/deployment/#build-time-secrets-and-variables\n\nIf you have a particular use for buildArg, which is not satisfied by build-time\nsecrets, please contact us via support or the forums: https://forums.balena.io/\n\n";
14
15
  export declare function getNodeEngineVersionWarn(version: string, validVersions: string): string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeEngineVersionWarn = exports.buildArgDeprecation = exports.jsonInfo = exports.devModeInfo = exports.applicationNameNote = exports.applicationIdInfo = exports.dockerignoreHelp = exports.registrySecretsHelp = exports.balenaAsciiArt = exports.warnify = exports.deprecationPolicyNote = exports.getHelp = exports.help = exports.reachingOut = void 0;
3
+ exports.getNodeEngineVersionWarn = exports.buildArgDeprecation = exports.jsonInfo = exports.secureBootInfo = exports.devModeInfo = exports.applicationNameNote = exports.applicationIdInfo = exports.dockerignoreHelp = exports.registrySecretsHelp = exports.balenaAsciiArt = exports.warnify = exports.deprecationPolicyNote = exports.getHelp = exports.help = exports.reachingOut = void 0;
4
4
  exports.reachingOut = `\
5
5
  For further help or support, visit:
6
6
  https://www.balena.io/docs/reference/balena-cli/#support-faq-and-troubleshooting
@@ -130,6 +130,9 @@ that cannot be reconfigured through 'config.json' or the '--dev' option. Do not
130
130
  confuse the balenaOS "development mode" with a device's "local mode", the latter
131
131
  being a supervisor feature that allows the "balena push" command to push a user's
132
132
  application directly to a device in the local network.`;
133
+ exports.secureBootInfo = `\
134
+ The '--secureBoot' option is used to configure a balenaOS installer image to opt-in
135
+ secure boot and disk encryption.`;
133
136
  exports.jsonInfo = `\
134
137
  The --json option is recommended when scripting the output of this command,
135
138
  because field names are less likely to change in JSON format and because it
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../lib/utils/messages.ts"],"names":[],"mappings":";;;AAiBa,QAAA,WAAW,GAAG;;;CAG1B,CAAC;AAEF,MAAM,SAAS,GAAG;;GAEf,CAAC;AAES,QAAA,IAAI,GAAG,mBAAW,CAAC;AAIzB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,YAAI,CAAC;AAA5D,QAAA,OAAO,WAAqD;AAE5D,QAAA,qBAAqB,GAAG;;;;CAIpC,CAAC;AAaF,SAAgB,OAAO,CAAC,GAAW,EAAE,MAAM,GAAG,SAAS;IACtD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAND,0BAMC;AAEY,QAAA,cAAc,GAAG;;;;;;CAM7B,CAAC;AAEW,QAAA,mBAAmB,GAC/B,sBAAsB;IACtB;;;;;;;;;;;;;;;;;;;gCAmB+B,CAAC;AAEpB,QAAA,gBAAgB,GAC5B,sCAAsC;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA6BkC;IAClC;;;;;;;;;;;;;;;;qDAgBoD,CAAC;AAEzC,QAAA,iBAAiB,GAAG;;;;;;;;;eASlB,CAAC;AAEH,QAAA,mBAAmB,GAAG;;;;;;;;0DAQuB,CAAC;AAE9C,QAAA,WAAW,GAAG;;;;;;;;;;uDAU4B,CAAC;AAE3C,QAAA,QAAQ,GAAG;;;;;yCAKiB,CAAC;AAE7B,QAAA,mBAAmB,GAAG;;;;;;;GAOhC,CAAC;AAEJ,SAAgB,wBAAwB,CACvC,OAAe,EACf,aAAqB;IAErB,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnE,OAAO,OAAO,CAAC;mBACG,OAAO,mCAAmC,aAAa;oCACtC,CAAC,CAAC;AACtC,CAAC;AARD,4DAQC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../lib/utils/messages.ts"],"names":[],"mappings":";;;AAiBa,QAAA,WAAW,GAAG;;;CAG1B,CAAC;AAEF,MAAM,SAAS,GAAG;;GAEf,CAAC;AAES,QAAA,IAAI,GAAG,mBAAW,CAAC;AAIzB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,YAAI,CAAC;AAA5D,QAAA,OAAO,WAAqD;AAE5D,QAAA,qBAAqB,GAAG;;;;CAIpC,CAAC;AAaF,SAAgB,OAAO,CAAC,GAAW,EAAE,MAAM,GAAG,SAAS;IACtD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAND,0BAMC;AAEY,QAAA,cAAc,GAAG;;;;;;CAM7B,CAAC;AAEW,QAAA,mBAAmB,GAC/B,sBAAsB;IACtB;;;;;;;;;;;;;;;;;;;gCAmB+B,CAAC;AAEpB,QAAA,gBAAgB,GAC5B,sCAAsC;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA6BkC;IAClC;;;;;;;;;;;;;;;;qDAgBoD,CAAC;AAEzC,QAAA,iBAAiB,GAAG;;;;;;;;;eASlB,CAAC;AAEH,QAAA,mBAAmB,GAAG;;;;;;;;0DAQuB,CAAC;AAE9C,QAAA,WAAW,GAAG;;;;;;;;;;uDAU4B,CAAC;AAE3C,QAAA,cAAc,GAAG;;iCAEG,CAAC;AAErB,QAAA,QAAQ,GAAG;;;;;yCAKiB,CAAC;AAE7B,QAAA,mBAAmB,GAAG;;;;;;;GAOhC,CAAC;AAEJ,SAAgB,wBAAwB,CACvC,OAAe,EACf,aAAqB;IAErB,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnE,OAAO,OAAO,CAAC;mBACG,OAAO,mCAAmC,aAAa;oCACtC,CAAC,CAAC;AACtC,CAAC;AARD,4DAQC"}
@@ -19,13 +19,18 @@ import { flags } from '@oclif/command';
19
19
  import Command from '../../command';
20
20
  import * as cf from '../../utils/common-flags';
21
21
  import { getBalenaSdk, getCliForm, stripIndent } from '../../utils/lazy';
22
- import { applicationIdInfo, devModeInfo } from '../../utils/messages';
22
+ import {
23
+ applicationIdInfo,
24
+ devModeInfo,
25
+ secureBootInfo,
26
+ } from '../../utils/messages';
23
27
  import type { PineDeferred } from 'balena-sdk';
24
28
 
25
29
  interface FlagsDef {
26
30
  version: string; // OS version
27
31
  fleet?: string;
28
32
  dev?: boolean; // balenaOS development variant
33
+ secureBoot?: boolean;
29
34
  device?: string;
30
35
  deviceApiKey?: string;
31
36
  deviceType?: string;
@@ -51,6 +56,8 @@ export default class ConfigGenerateCmd extends Command {
51
56
 
52
57
  ${devModeInfo.split('\n').join('\n\t\t')}
53
58
 
59
+ ${secureBootInfo.split('\n').join('\n\t\t')}
60
+
54
61
  To configure an image for a fleet of mixed device types, use the --fleet option
55
62
  alongside the --deviceType option to specify the target device type.
56
63
 
@@ -66,6 +73,7 @@ export default class ConfigGenerateCmd extends Command {
66
73
  '$ balena config generate --device 7cf02a6 --version 2.12.7 --deviceApiKey <existingDeviceKey>',
67
74
  '$ balena config generate --device 7cf02a6 --version 2.12.7 --output config.json',
68
75
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --dev',
76
+ '$ balena config generate --fleet myorg/fleet --version 2.12.7 --secureBoot',
69
77
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --deviceType fincm3',
70
78
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --output config.json',
71
79
  '$ balena config generate --fleet myorg/fleet --version 2.12.7 --network wifi --wifiSsid mySsid --wifiKey abcdefgh --appUpdatePollInterval 15',
@@ -80,6 +88,7 @@ export default class ConfigGenerateCmd extends Command {
80
88
  }),
81
89
  fleet: { ...cf.fleet, exclusive: ['device'] },
82
90
  dev: cf.dev,
91
+ secureBoot: cf.secureBoot,
83
92
  device: {
84
93
  ...cf.device,
85
94
  exclusive: [
@@ -195,6 +204,15 @@ export default class ConfigGenerateCmd extends Command {
195
204
  deviceType,
196
205
  );
197
206
 
207
+ const { validateSecureBootOptionAndWarn } = await import(
208
+ '../../utils/config'
209
+ );
210
+ await validateSecureBootOptionAndWarn(
211
+ options.secureBoot,
212
+ deviceType,
213
+ options.version,
214
+ );
215
+
198
216
  // Prompt for values
199
217
  // Pass params as an override: if there is any param with exactly the same name as a
200
218
  // required option, that value is used (and the corresponding question is not asked)
@@ -203,6 +221,7 @@ export default class ConfigGenerateCmd extends Command {
203
221
  });
204
222
  answers.version = options.version;
205
223
  answers.developmentMode = options.dev;
224
+ answers.secureBoot = options.secureBoot;
206
225
  answers.provisioningKeyName = options['provisioning-key-name'];
207
226
  answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
208
227
 
@@ -23,7 +23,11 @@ import Command from '../../command';
23
23
  import { ExpectedError } from '../../errors';
24
24
  import * as cf from '../../utils/common-flags';
25
25
  import { getBalenaSdk, stripIndent, getCliForm } from '../../utils/lazy';
26
- import { applicationIdInfo, devModeInfo } from '../../utils/messages';
26
+ import {
27
+ applicationIdInfo,
28
+ devModeInfo,
29
+ secureBootInfo,
30
+ } from '../../utils/messages';
27
31
 
28
32
  const CONNECTIONS_FOLDER = '/system-connections';
29
33
 
@@ -36,6 +40,7 @@ interface FlagsDef {
36
40
  'config-wifi-key'?: string;
37
41
  'config-wifi-ssid'?: string;
38
42
  dev?: boolean; // balenaOS development variant
43
+ secureBoot?: boolean;
39
44
  device?: string; // device UUID
40
45
  'device-type'?: string;
41
46
  help?: void;
@@ -53,6 +58,7 @@ interface ArgsDef {
53
58
  interface Answers {
54
59
  appUpdatePollInterval: number; // in minutes
55
60
  developmentMode?: boolean; // balenaOS development variant
61
+ secureBoot?: boolean;
56
62
  deviceType: string; // e.g. "raspberrypi3"
57
63
  network: 'ethernet' | 'wifi';
58
64
  version: string; // e.g. "2.32.0+rev1"
@@ -80,6 +86,8 @@ export default class OsConfigureCmd extends Command {
80
86
 
81
87
  ${devModeInfo.split('\n').join('\n\t\t')}
82
88
 
89
+ ${secureBootInfo.split('\n').join('\n\t\t')}
90
+
83
91
  The --system-connection (-c) option is used to inject NetworkManager connection
84
92
  profiles for additional network interfaces, such as cellular/GSM or additional
85
93
  WiFi or ethernet connections. This option may be passed multiple times in case there
@@ -140,6 +148,7 @@ export default class OsConfigureCmd extends Command {
140
148
  description: 'WiFi SSID (network name) (non-interactive configuration)',
141
149
  }),
142
150
  dev: cf.dev,
151
+ secureBoot: cf.secureBoot,
143
152
  device: {
144
153
  ...cf.device,
145
154
  exclusive: [
@@ -238,6 +247,15 @@ export default class OsConfigureCmd extends Command {
238
247
  const { validateDevOptionAndWarn } = await import('../../utils/config');
239
248
  await validateDevOptionAndWarn(options.dev, osVersion);
240
249
 
250
+ const { validateSecureBootOptionAndWarn } = await import(
251
+ '../../utils/config'
252
+ );
253
+ await validateSecureBootOptionAndWarn(
254
+ options.secureBoot,
255
+ deviceTypeSlug,
256
+ osVersion,
257
+ );
258
+
241
259
  const answers: Answers = await askQuestionsForDeviceType(
242
260
  deviceTypeManifest,
243
261
  options,
@@ -248,6 +266,7 @@ export default class OsConfigureCmd extends Command {
248
266
  }
249
267
  answers.version = osVersion;
250
268
  answers.developmentMode = options.dev;
269
+ answers.secureBoot = options.secureBoot;
251
270
  answers.provisioningKeyName = options['provisioning-key-name'];
252
271
  answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
253
272
 
@@ -74,6 +74,12 @@ export const dev: IBooleanFlag<boolean> = flags.boolean({
74
74
  default: false,
75
75
  });
76
76
 
77
+ export const secureBoot: IBooleanFlag<boolean> = flags.boolean({
78
+ description:
79
+ 'Configure balenaOS installer to opt-in secure boot and disk encryption',
80
+ default: false,
81
+ });
82
+
77
83
  export const drive = flags.string({
78
84
  char: 'd',
79
85
  description: stripIndent`
@@ -52,6 +52,10 @@ export interface ImgConfig {
52
52
  os?: {
53
53
  sshKeys?: string[];
54
54
  };
55
+
56
+ installer?: {
57
+ secureboot?: boolean;
58
+ };
55
59
  }
56
60
 
57
61
  export async function generateApplicationConfig(
@@ -63,6 +67,7 @@ export async function generateApplicationConfig(
63
67
  os?: {
64
68
  sshKeys?: string[];
65
69
  };
70
+ secureBoot?: boolean;
66
71
  },
67
72
  ): Promise<ImgConfig> {
68
73
  options = {
@@ -84,6 +89,12 @@ export async function generateApplicationConfig(
84
89
  : options.os.sshKeys;
85
90
  }
86
91
 
92
+ // configure installer secure boot opt-in if specified
93
+ if (options.secureBoot) {
94
+ config.installer ??= {};
95
+ config.installer.secureboot = options.secureBoot;
96
+ }
97
+
87
98
  return config;
88
99
  }
89
100
 
@@ -165,3 +176,62 @@ export async function validateDevOptionAndWarn(
165
176
  and exposes network ports such as 2375 that allows unencrypted access to balenaEngine.
166
177
  Therefore, development mode should only be used in private, trusted local networks.`);
167
178
  }
179
+
180
+ /**
181
+ * Chech whether the `--secureBoot` option of commands related to OS configuration
182
+ * such as `os configure` and `config generate` is compatible with a given
183
+ * OS release, and print a warning regarding the consequences of using that
184
+ * option.
185
+ */
186
+ export async function validateSecureBootOptionAndWarn(
187
+ secureBoot?: boolean,
188
+ slug?: string,
189
+ version?: string,
190
+ logger?: import('./logger'),
191
+ ) {
192
+ if (!secureBoot) {
193
+ return;
194
+ }
195
+ const { ExpectedError } = await import('../errors');
196
+ if (!version) {
197
+ throw new ExpectedError(`Error: No version provided`);
198
+ }
199
+ if (!slug) {
200
+ throw new ExpectedError(`Error: No device type provided`);
201
+ }
202
+ const sdk = getBalenaSdk();
203
+ const releasePineOpts = {
204
+ $select: 'contract',
205
+ $filter: { raw_version: `${version.replace(/^v/, '')}` },
206
+ } satisfies BalenaSdk.PineOptions<BalenaSdk.Release>;
207
+ // TODO: Remove the added type casting when the SDK returns the fully typed result
208
+ const [osRelease] = (await sdk.models.os.getAllOsVersions(
209
+ slug,
210
+ releasePineOpts,
211
+ )) as Array<
212
+ BalenaSdk.OsVersion &
213
+ BalenaSdk.PineTypedResult<BalenaSdk.Release, typeof releasePineOpts>
214
+ >;
215
+ if (!osRelease) {
216
+ throw new ExpectedError(`Error: No ${version} release for ${slug}`);
217
+ }
218
+
219
+ const contract = osRelease.contract ? JSON.parse(osRelease.contract) : null;
220
+ if (
221
+ contract?.provides.some((entry: Dictionary<string>) => {
222
+ return entry.type === 'sw.feature' && entry.slug === 'secureboot';
223
+ })
224
+ ) {
225
+ if (!logger) {
226
+ const Logger = await import('./logger');
227
+ logger = Logger.getLogger();
228
+ }
229
+ logger.logInfo(stripIndent`
230
+ The '--secureBoot' option is being used to configure a balenaOS installer image
231
+ into secure boot and full disk encryption.`);
232
+ } else {
233
+ throw new ExpectedError(
234
+ `Error: The '--secureBoot' option is not supported for ${slug} in ${version}`,
235
+ );
236
+ }
237
+ }