Add provisioning key expiry date option to config generate options

Change-Type: minor
Signed-off-by: Nitish Agarwal <1592163+nitishagar@users.noreply.github.com>
This commit is contained in:
Balena CI
2022-05-10 21:02:45 +03:00
committed by Nitish Agarwal
parent 3d90aeb122
commit 0195a3b18c
5 changed files with 55 additions and 3 deletions

View File

@ -811,6 +811,10 @@ path to the config JSON file, see `balena os build-config`
custom key name assigned to generated provisioning api key custom key name assigned to generated provisioning api key
#### --provisioning-key-expiry-date PROVISIONING-KEY-EXPIRY-DATE
expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)
## device local-mode &#60;uuid&#62; ## device local-mode &#60;uuid&#62;
Output current local mode status, or enable/disable local mode Output current local mode status, or enable/disable local mode
@ -2236,6 +2240,10 @@ paths to local files to place into the 'system-connections' directory
custom key name assigned to generated provisioning api key custom key name assigned to generated provisioning api key
#### --provisioning-key-expiry-date PROVISIONING-KEY-EXPIRY-DATE
expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)
## os initialize &#60;image&#62; ## os initialize &#60;image&#62;
Initialize an os image for a device with a previously Initialize an os image for a device with a previously
@ -2373,6 +2381,10 @@ supervisor cloud polling interval in minutes (e.g. for device variables)
custom key name assigned to generated provisioning api key custom key name assigned to generated provisioning api key
#### --provisioning-key-expiry-date PROVISIONING-KEY-EXPIRY-DATE
expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)
## config inject &#60;file&#62; ## config inject &#60;file&#62;
Inject a 'config.json' file to a balenaOS image file or attached SD card or Inject a 'config.json' file to a balenaOS image file or attached SD card or

View File

@ -37,6 +37,7 @@ interface FlagsDef {
wifiKey?: string; wifiKey?: string;
appUpdatePollInterval?: string; appUpdatePollInterval?: string;
'provisioning-key-name'?: string; 'provisioning-key-name'?: string;
'provisioning-key-expiry-date'?: string;
help: void; help: void;
} }
@ -81,7 +82,11 @@ export default class ConfigGenerateCmd extends Command {
dev: cf.dev, dev: cf.dev,
device: { device: {
...cf.device, ...cf.device,
exclusive: ['fleet', 'provisioning-key-name'], exclusive: [
'fleet',
'provisioning-key-name',
'provisioning-key-expiry-date',
],
}, },
deviceApiKey: flags.string({ deviceApiKey: flags.string({
description: description:
@ -120,6 +125,11 @@ export default class ConfigGenerateCmd extends Command {
description: 'custom key name assigned to generated provisioning api key', description: 'custom key name assigned to generated provisioning api key',
exclusive: ['device'], exclusive: ['device'],
}), }),
'provisioning-key-expiry-date': flags.string({
description:
'expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)',
exclusive: ['device'],
}),
help: cf.help, help: cf.help,
}; };
@ -196,6 +206,7 @@ export default class ConfigGenerateCmd extends Command {
answers.version = options.version; answers.version = options.version;
answers.developmentMode = options.dev; answers.developmentMode = options.dev;
answers.provisioningKeyName = options['provisioning-key-name']; answers.provisioningKeyName = options['provisioning-key-name'];
answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
// Generate config // Generate config
const { generateDeviceConfig, generateApplicationConfig } = await import( const { generateDeviceConfig, generateApplicationConfig } = await import(

View File

@ -31,6 +31,7 @@ interface FlagsDef {
config?: string; config?: string;
help: void; help: void;
'provisioning-key-name'?: string; 'provisioning-key-name'?: string;
'provisioning-key-expiry-date'?: string;
} }
export default class DeviceInitCmd extends Command { export default class DeviceInitCmd extends Command {
@ -97,6 +98,10 @@ export default class DeviceInitCmd extends Command {
'provisioning-key-name': flags.string({ 'provisioning-key-name': flags.string({
description: 'custom key name assigned to generated provisioning api key', description: 'custom key name assigned to generated provisioning api key',
}), }),
'provisioning-key-expiry-date': flags.string({
description:
'expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)',
}),
help: cf.help, help: cf.help,
}; };
@ -185,6 +190,14 @@ export default class DeviceInitCmd extends Command {
options['provisioning-key-name'], options['provisioning-key-name'],
); );
} }
if (options['provisioning-key-expiry-date']) {
configureCommand.push(
'--provisioning-key-expiry-date',
options['provisioning-key-expiry-date'],
);
}
await runCommand(configureCommand); await runCommand(configureCommand);
} }

View File

@ -43,6 +43,7 @@ interface FlagsDef {
'system-connection': string[]; 'system-connection': string[];
'initial-device-name'?: string; 'initial-device-name'?: string;
'provisioning-key-name'?: string; 'provisioning-key-name'?: string;
'provisioning-key-expiry-date'?: string;
} }
interface ArgsDef { interface ArgsDef {
@ -58,6 +59,7 @@ interface Answers {
wifiSsid?: string; wifiSsid?: string;
wifiKey?: string; wifiKey?: string;
provisioningKeyName?: string; provisioningKeyName?: string;
provisioningKeyExpiryDate?: string;
} }
export default class OsConfigureCmd extends Command { export default class OsConfigureCmd extends Command {
@ -121,7 +123,7 @@ export default class OsConfigureCmd extends Command {
config: flags.string({ config: flags.string({
description: description:
'path to a pre-generated config.json file to be injected in the OS image', 'path to a pre-generated config.json file to be injected in the OS image',
exclusive: ['provisioning-key-name'], exclusive: ['provisioning-key-name', 'provisioning-key-expiry-date'],
}), }),
'config-app-update-poll-interval': flags.integer({ 'config-app-update-poll-interval': flags.integer({
description: description:
@ -138,7 +140,14 @@ export default class OsConfigureCmd extends Command {
description: 'WiFi SSID (network name) (non-interactive configuration)', description: 'WiFi SSID (network name) (non-interactive configuration)',
}), }),
dev: cf.dev, dev: cf.dev,
device: { ...cf.device, exclusive: ['fleet', 'provisioning-key-name'] }, device: {
...cf.device,
exclusive: [
'fleet',
'provisioning-key-name',
'provisioning-key-expiry-date',
],
},
'device-type': flags.string({ 'device-type': flags.string({
description: description:
'device type slug (e.g. "raspberrypi3") to override the fleet device type', 'device type slug (e.g. "raspberrypi3") to override the fleet device type',
@ -161,6 +170,11 @@ export default class OsConfigureCmd extends Command {
description: 'custom key name assigned to generated provisioning api key', description: 'custom key name assigned to generated provisioning api key',
exclusive: ['config', 'device'], exclusive: ['config', 'device'],
}), }),
'provisioning-key-expiry-date': flags.string({
description:
'expiry date assigned to generated provisioning api key (format: YYYY-MM-DD)',
exclusive: ['config', 'device'],
}),
help: cf.help, help: cf.help,
}; };
@ -235,6 +249,7 @@ export default class OsConfigureCmd extends Command {
answers.version = osVersion; answers.version = osVersion;
answers.developmentMode = options.dev; answers.developmentMode = options.dev;
answers.provisioningKeyName = options['provisioning-key-name']; answers.provisioningKeyName = options['provisioning-key-name'];
answers.provisioningKeyExpiryDate = options['provisioning-key-expiry-date'];
if (_.isEmpty(configJson)) { if (_.isEmpty(configJson)) {
if (device) { if (device) {

View File

@ -59,6 +59,7 @@ if (process.platform !== 'win32') {
'--config-network ethernet', '--config-network ethernet',
'--initial-device-name testDeviceName', '--initial-device-name testDeviceName',
'--provisioning-key-name testKey', '--provisioning-key-name testKey',
'--provisioning-key-expiry-date 2050-12-12',
]; ];
const { err } = await runCommand(command.join(' ')); const { err } = await runCommand(command.join(' '));