balena-cli 16.2.5 → 16.2.6

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/commands/config/generate.d.ts +1 -1
  3. package/build/commands/config/generate.js +1 -0
  4. package/build/commands/config/generate.js.map +1 -1
  5. package/build/commands/device/init.js +1 -0
  6. package/build/commands/device/init.js.map +1 -1
  7. package/build/commands/device/move.d.ts +7 -5
  8. package/build/commands/device/move.js +20 -10
  9. package/build/commands/device/move.js.map +1 -1
  10. package/build/commands/device/register.js +3 -1
  11. package/build/commands/device/register.js.map +1 -1
  12. package/build/commands/devices/index.js +3 -1
  13. package/build/commands/devices/index.js.map +1 -1
  14. package/build/commands/fleet/create.js +3 -1
  15. package/build/commands/fleet/create.js.map +1 -1
  16. package/build/commands/fleet/purge.js +3 -1
  17. package/build/commands/fleet/purge.js.map +1 -1
  18. package/build/commands/fleet/rename.js +5 -2
  19. package/build/commands/fleet/rename.js.map +1 -1
  20. package/build/commands/fleet/restart.js +3 -1
  21. package/build/commands/fleet/restart.js.map +1 -1
  22. package/build/commands/fleet/rm.js +3 -1
  23. package/build/commands/fleet/rm.js.map +1 -1
  24. package/build/commands/orgs.js +3 -1
  25. package/build/commands/orgs.js.map +1 -1
  26. package/build/commands/push.js +1 -1
  27. package/build/commands/push.js.map +1 -1
  28. package/build/utils/helpers.d.ts +0 -18
  29. package/build/utils/helpers.js +1 -14
  30. package/build/utils/helpers.js.map +1 -1
  31. package/build/utils/patterns.d.ts +16 -2
  32. package/build/utils/patterns.js +15 -9
  33. package/build/utils/patterns.js.map +1 -1
  34. package/build/utils/sdk.d.ts +1 -0
  35. package/build/utils/sdk.js +4 -4
  36. package/build/utils/sdk.js.map +1 -1
  37. package/lib/commands/config/generate.ts +1 -0
  38. package/lib/commands/device/init.ts +1 -0
  39. package/lib/commands/device/move.ts +33 -30
  40. package/lib/commands/device/register.ts +3 -1
  41. package/lib/commands/devices/index.ts +3 -1
  42. package/lib/commands/fleet/create.ts +3 -1
  43. package/lib/commands/fleet/purge.ts +3 -1
  44. package/lib/commands/fleet/rename.ts +5 -4
  45. package/lib/commands/fleet/restart.ts +3 -1
  46. package/lib/commands/fleet/rm.ts +3 -1
  47. package/lib/commands/orgs.ts +3 -1
  48. package/lib/commands/push.ts +1 -1
  49. package/lib/utils/helpers.ts +0 -14
  50. package/lib/utils/patterns.ts +32 -11
  51. package/lib/utils/sdk.ts +25 -12
  52. package/npm-shrinkwrap.json +2 -2
  53. package/oclif.manifest.json +1 -1
  54. package/package.json +2 -2
@@ -115,15 +115,17 @@ async function confirm(yesOption, message, yesMessage, defaultValue = false) {
115
115
  }
116
116
  }
117
117
  exports.confirm = confirm;
118
+ const selectApplicationPineOptions = {
119
+ $select: ['id', 'slug', 'app_name'],
120
+ $expand: {
121
+ is_for__device_type: {
122
+ $select: 'slug',
123
+ },
124
+ },
125
+ };
118
126
  async function selectApplication(filter, errorOnEmptySelection = false) {
119
127
  const balena = (0, lazy_1.getBalenaSdk)();
120
- const apps = (await balena.models.application.getAllDirectlyAccessible({
121
- $expand: {
122
- is_for__device_type: {
123
- $select: 'slug',
124
- },
125
- },
126
- }));
128
+ const apps = (await balena.models.application.getAllDirectlyAccessible(selectApplicationPineOptions));
127
129
  if (!apps.length) {
128
130
  throw new errors_1.ExpectedError('No fleets found');
129
131
  }
@@ -142,7 +144,9 @@ async function selectApplication(filter, errorOnEmptySelection = false) {
142
144
  }
143
145
  exports.selectApplication = selectApplication;
144
146
  async function selectOrganization(organizations) {
145
- organizations !== null && organizations !== void 0 ? organizations : (organizations = await (0, lazy_1.getBalenaSdk)().models.organization.getAll());
147
+ organizations !== null && organizations !== void 0 ? organizations : (organizations = await (0, lazy_1.getBalenaSdk)().models.organization.getAll({
148
+ $select: ['name', 'handle'],
149
+ }));
146
150
  return (0, lazy_1.getCliForm)().ask({
147
151
  message: 'Select an organization',
148
152
  type: 'list',
@@ -209,7 +213,9 @@ async function getOnlineTargetDeviceUuid(sdk, fleetOrDevice) {
209
213
  try {
210
214
  logger.logDebug(`Fetching fleet ${fleetOrDevice}`);
211
215
  const { getApplication } = await Promise.resolve().then(() => require('./sdk'));
212
- return await getApplication(sdk, fleetOrDevice);
216
+ return await getApplication(sdk, fleetOrDevice, {
217
+ $select: ['id', 'slug'],
218
+ });
213
219
  }
214
220
  catch (err) {
215
221
  const { BalenaApplicationNotFound } = await Promise.resolve().then(() => require('balena-errors'));
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../lib/utils/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../lib/utils/patterns.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export declare function getApplication(sdk: BalenaSDK, nameOrSlugOrId: string |
3
3
  export declare function getApplication<TP extends PineOptions<Application>>(sdk: BalenaSDK, nameOrSlugOrId: string | number, options?: TP): Promise<PineTypedResult<Application, TP>>;
4
4
  export declare function getFleetSlug(sdk: BalenaSDK, nameOrSlug: string): Promise<string>;
5
5
  export declare function getOwnOrganizations(sdk: BalenaSDK): Promise<Organization[]>;
6
+ export declare function getOwnOrganizations<TP extends PineOptions<Organization>>(sdk: BalenaSDK, options: TP): Promise<Array<PineTypedResult<Organization, TP>>>;
@@ -13,13 +13,13 @@ exports.getApplication = getApplication;
13
13
  async function getFleetSlug(sdk, nameOrSlug) {
14
14
  const { looksLikeFleetSlug } = await Promise.resolve().then(() => require('./validation'));
15
15
  if (!looksLikeFleetSlug(nameOrSlug)) {
16
- return (await getApplication(sdk, nameOrSlug)).slug;
16
+ return (await getApplication(sdk, nameOrSlug, { $select: 'slug' })).slug;
17
17
  }
18
18
  return nameOrSlug.toLowerCase();
19
19
  }
20
20
  exports.getFleetSlug = getFleetSlug;
21
- async function getOwnOrganizations(sdk) {
22
- return await sdk.models.organization.getAll({
21
+ async function getOwnOrganizations(sdk, options) {
22
+ return await sdk.models.organization.getAll(sdk.utils.mergePineOptions({
23
23
  $filter: {
24
24
  organization_membership: {
25
25
  $any: {
@@ -33,7 +33,7 @@ async function getOwnOrganizations(sdk) {
33
33
  },
34
34
  },
35
35
  $orderby: 'name asc',
36
- });
36
+ }, options));
37
37
  }
38
38
  exports.getOwnOrganizations = getOwnOrganizations;
39
39
  //# sourceMappingURL=sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../lib/utils/sdk.ts"],"names":[],"mappings":";;;AAuCO,KAAK,UAAU,cAAc,CACnC,GAAc,EACd,cAA+B,EAC/B,OAAkC;IAElC,MAAM,EAAE,kBAAkB,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IAC5D,IACC,OAAO,cAAc,KAAK,QAAQ;QAClC,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAClC;QAGD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAC/C,cAAc,EACd,OAAO,EACP,qBAAqB,CACrB,CAAC;KACF;IACD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,CACxD,cAAc,EACd,OAAO,CACP,CAAC;AACH,CAAC;AAtBD,wCAsBC;AASM,KAAK,UAAU,YAAY,CACjC,GAAc,EACd,UAAkB;IAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;QAGpC,OAAO,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;KACpD;IACD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC;AAXD,oCAWC;AAMM,KAAK,UAAU,mBAAmB,CACxC,GAAc;IAEd,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3C,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,IAAI,EAAE;oBACL,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE;wBACN,GAAG,EAAE;4BACJ,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;yBAChC;qBACD;iBACD;aACD;SACD;QACD,QAAQ,EAAE,UAAU;KACpB,CAAC,CAAC;AACJ,CAAC;AAlBD,kDAkBC"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../lib/utils/sdk.ts"],"names":[],"mappings":";;;AAuCO,KAAK,UAAU,cAAc,CACnC,GAAc,EACd,cAA+B,EAC/B,OAAkC;IAElC,MAAM,EAAE,kBAAkB,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IAC5D,IACC,OAAO,cAAc,KAAK,QAAQ;QAClC,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAClC;QAGD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAC/C,cAAc,EACd,OAAO,EACP,qBAAqB,CACrB,CAAC;KACF;IACD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,CACxD,cAAc,EACd,OAAO,CACP,CAAC;AACH,CAAC;AAtBD,wCAsBC;AASM,KAAK,UAAU,YAAY,CACjC,GAAc,EACd,UAAkB;IAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;QAGpC,OAAO,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACzE;IACD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC;AAXD,oCAWC;AAaM,KAAK,UAAU,mBAAmB,CACxC,GAAc,EACd,OAAmC;IAEnC,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAC1C,GAAG,CAAC,KAAK,CAAC,gBAAgB,CACzB;QACC,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,IAAI,EAAE;oBACL,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE;wBACN,GAAG,EAAE;4BACJ,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;yBAChC;qBACD;iBACD;aACD;SACD;QACD,QAAQ,EAAE,UAAU;KACpB,EACD,OAAO,CACP,CACD,CAAC;AACH,CAAC;AAxBD,kDAwBC"}
@@ -147,6 +147,7 @@ export default class ConfigGenerateCmd extends Command {
147
147
  public async getApplication(balena: BalenaSDK, fleet: string) {
148
148
  const { getApplication } = await import('../../utils/sdk');
149
149
  return await getApplication(balena, fleet, {
150
+ $select: 'slug',
150
151
  $expand: {
151
152
  is_for__device_type: { $select: 'slug' },
152
153
  },
@@ -131,6 +131,7 @@ export default class DeviceInitCmd extends Command {
131
131
  await (await import('../../utils/patterns')).selectApplication()
132
132
  ).slug,
133
133
  {
134
+ $select: ['id', 'slug'],
134
135
  $expand: {
135
136
  is_for__device_type: {
136
137
  $select: 'slug',
@@ -30,13 +30,6 @@ import { ExpectedError } from '../../errors';
30
30
  import { getBalenaSdk, stripIndent } from '../../utils/lazy';
31
31
  import { applicationIdInfo } from '../../utils/messages';
32
32
 
33
- type ExtendedDevice = PineTypedResult<
34
- Device,
35
- typeof import('../../utils/helpers').expandForAppNameAndCpuArch
36
- > & {
37
- application_name?: string;
38
- };
39
-
40
33
  interface FlagsDef {
41
34
  fleet?: string;
42
35
  help: void;
@@ -82,6 +75,33 @@ export default class DeviceMoveCmd extends Command {
82
75
 
83
76
  public static authenticated = true;
84
77
 
78
+ private async getDevices(balena: BalenaSDK, deviceUuids: string[]) {
79
+ const deviceOptions = {
80
+ $select: 'belongs_to__application',
81
+ $expand: {
82
+ is_of__device_type: {
83
+ $select: 'is_of__cpu_architecture',
84
+ $expand: {
85
+ is_of__cpu_architecture: {
86
+ $select: 'slug',
87
+ },
88
+ },
89
+ },
90
+ },
91
+ } satisfies PineOptions<Device>;
92
+
93
+ // TODO: Refacor once `device.get()` accepts an array of uuids`
94
+ const devices = await Promise.all(
95
+ deviceUuids.map(
96
+ (uuid) =>
97
+ balena.models.device.get(uuid, deviceOptions) as Promise<
98
+ PineTypedResult<Device, typeof deviceOptions>
99
+ >,
100
+ ),
101
+ );
102
+ return devices;
103
+ }
104
+
85
105
  public async run() {
86
106
  const { args: params, flags: options } = this.parse<FlagsDef, ArgsDef>(
87
107
  DeviceMoveCmd,
@@ -89,36 +109,17 @@ export default class DeviceMoveCmd extends Command {
89
109
 
90
110
  const balena = getBalenaSdk();
91
111
 
92
- const { expandForAppNameAndCpuArch } = await import('../../utils/helpers');
93
-
94
112
  // Split uuids string into array of uuids
95
113
  const deviceUuids = params.uuid.split(',');
96
114
 
97
- // Get devices
98
- const devices = await Promise.all(
99
- deviceUuids.map(
100
- (uuid) =>
101
- balena.models.device.get(
102
- uuid,
103
- expandForAppNameAndCpuArch,
104
- ) as Promise<ExtendedDevice>,
105
- ),
106
- );
107
-
108
- // Map application name for each device
109
- for (const device of devices) {
110
- const belongsToApplication = device.belongs_to__application;
111
- device.application_name = belongsToApplication?.[0]
112
- ? belongsToApplication[0].app_name
113
- : 'N/a';
114
- }
115
+ const devices = await this.getDevices(balena, deviceUuids);
115
116
 
116
117
  // Disambiguate application
117
118
  const { getApplication } = await import('../../utils/sdk');
118
119
 
119
120
  // Get destination application
120
121
  const application = options.fleet
121
- ? await getApplication(balena, options.fleet)
122
+ ? await getApplication(balena, options.fleet, { $select: ['id', 'slug'] })
122
123
  : await this.interactivelySelectApplication(balena, devices);
123
124
 
124
125
  // Move each device
@@ -135,7 +136,7 @@ export default class DeviceMoveCmd extends Command {
135
136
 
136
137
  async interactivelySelectApplication(
137
138
  balena: BalenaSDK,
138
- devices: ExtendedDevice[],
139
+ devices: Awaited<ReturnType<typeof this.getDevices>>,
139
140
  ) {
140
141
  const { getExpandedProp } = await import('../../utils/pine');
141
142
  // deduplicate the slugs
@@ -181,7 +182,9 @@ export default class DeviceMoveCmd extends Command {
181
182
  const application = await patterns.selectApplication(
182
183
  (app) =>
183
184
  compatibleDeviceTypeSlugs.has(app.is_for__device_type[0].slug) &&
184
- devices.some((device) => device.application_name !== app.app_name),
185
+ devices.some(
186
+ (device) => device.belongs_to__application.__id !== app.id,
187
+ ),
185
188
  true,
186
189
  );
187
190
  return application;
@@ -78,7 +78,9 @@ export default class DeviceRegisterCmd extends Command {
78
78
 
79
79
  const balena = getBalenaSdk();
80
80
 
81
- const application = await getApplication(balena, params.fleet);
81
+ const application = await getApplication(balena, params.fleet, {
82
+ $select: ['id', 'slug'],
83
+ });
82
84
  const uuid = options.uuid ?? balena.models.device.generateUniqueKey();
83
85
 
84
86
  console.info(`Registering to ${application.slug}: ${uuid}`);
@@ -92,7 +92,9 @@ export default class DevicesCmd extends Command {
92
92
 
93
93
  if (options.fleet != null) {
94
94
  const { getApplication } = await import('../../utils/sdk');
95
- const application = await getApplication(balena, options.fleet);
95
+ const application = await getApplication(balena, options.fleet, {
96
+ $select: 'id',
97
+ });
96
98
  devices = (await balena.models.device.getAllByApplication(
97
99
  application.id,
98
100
  devicesOptions,
@@ -130,7 +130,9 @@ export default class FleetCreateCmd extends Command {
130
130
 
131
131
  async getOrganization() {
132
132
  const { getOwnOrganizations } = await import('../../utils/sdk');
133
- const organizations = await getOwnOrganizations(getBalenaSdk());
133
+ const organizations = await getOwnOrganizations(getBalenaSdk(), {
134
+ $select: ['name', 'handle'],
135
+ });
134
136
 
135
137
  if (organizations.length === 0) {
136
138
  // User is not a member of any organizations (should not happen).
@@ -65,7 +65,9 @@ export default class FleetPurgeCmd extends Command {
65
65
 
66
66
  // balena.models.application.purge only accepts a numeric id
67
67
  // so we must first fetch the app to get it's id,
68
- const application = await getApplication(balena, params.fleet);
68
+ const application = await getApplication(balena, params.fleet, {
69
+ $select: 'id',
70
+ });
69
71
 
70
72
  try {
71
73
  await balena.models.application.purge(application.id);
@@ -77,9 +77,10 @@ export default class FleetRenameCmd extends Command {
77
77
  // Disambiguate target application (if params.params is a number, it could either be an ID or a numerical name)
78
78
  const { getApplication } = await import('../../utils/sdk');
79
79
  const application = await getApplication(balena, params.fleet, {
80
+ $select: ['id', 'app_name', 'slug'],
80
81
  $expand: {
81
82
  application_type: {
82
- $select: ['slug'],
83
+ $select: 'slug',
83
84
  },
84
85
  },
85
86
  });
@@ -132,9 +133,9 @@ export default class FleetRenameCmd extends Command {
132
133
  }
133
134
 
134
135
  // Get application again, to be sure of results
135
- const renamedApplication = await balena.models.application.get(
136
- application.id,
137
- );
136
+ const renamedApplication = await getApplication(balena, application.id, {
137
+ $select: ['app_name', 'slug'],
138
+ });
138
139
 
139
140
  // Output result
140
141
  console.log(`Fleet renamed`);
@@ -63,7 +63,9 @@ export default class FleetRestartCmd extends Command {
63
63
  const balena = getBalenaSdk();
64
64
 
65
65
  // Disambiguate application
66
- const application = await getApplication(balena, params.fleet);
66
+ const application = await getApplication(balena, params.fleet, {
67
+ $select: 'slug',
68
+ });
67
69
 
68
70
  await balena.models.application.restart(application.slug);
69
71
  }
@@ -76,7 +76,9 @@ export default class FleetRmCmd extends Command {
76
76
  );
77
77
 
78
78
  // Disambiguate application (if is a number, it could either be an ID or a numerical name)
79
- const application = await getApplication(balena, params.fleet);
79
+ const application = await getApplication(balena, params.fleet, {
80
+ $select: 'slug',
81
+ });
80
82
 
81
83
  // Remove
82
84
  await balena.models.application.remove(application.slug);
@@ -46,7 +46,9 @@ export default class OrgsCmd extends Command {
46
46
  const { getOwnOrganizations } = await import('../utils/sdk');
47
47
 
48
48
  // Get organizations
49
- const organizations = await getOwnOrganizations(getBalenaSdk());
49
+ const organizations = await getOwnOrganizations(getBalenaSdk(), {
50
+ $select: ['name', 'handle'],
51
+ });
50
52
 
51
53
  // Display
52
54
  console.log(
@@ -328,7 +328,7 @@ export default class PushCmd extends Command {
328
328
  ]);
329
329
 
330
330
  const application = await getApplication(sdk, appNameOrSlug, {
331
- $select: ['app_name', 'slug'],
331
+ $select: 'slug',
332
332
  });
333
333
 
334
334
  const opts = {
@@ -437,20 +437,6 @@ export const expandForAppName = {
437
437
  },
438
438
  } satisfies BalenaSdk.PineOptions<BalenaSdk.Device>;
439
439
 
440
- export const expandForAppNameAndCpuArch = {
441
- $expand: {
442
- ...expandForAppName.$expand,
443
- is_of__device_type: {
444
- $select: 'slug',
445
- $expand: {
446
- is_of__cpu_architecture: {
447
- $select: 'slug',
448
- },
449
- },
450
- },
451
- },
452
- } satisfies BalenaSdk.PineOptions<BalenaSdk.Device>;
453
-
454
440
  /**
455
441
  * Use the `readline` library on Windows to install SIGINT handlers.
456
442
  * This appears to be necessary on MSYS / Git for Windows, and also useful
@@ -14,7 +14,14 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */
16
16
 
17
- import type { BalenaSDK, Device, Organization } from 'balena-sdk';
17
+ import type {
18
+ Application,
19
+ BalenaSDK,
20
+ Device,
21
+ Organization,
22
+ PineOptions,
23
+ PineTypedResult,
24
+ } from 'balena-sdk';
18
25
  import _ = require('lodash');
19
26
 
20
27
  import { instanceOf, NotLoggedInError, ExpectedError } from '../errors';
@@ -157,18 +164,28 @@ export async function confirm(
157
164
  }
158
165
  }
159
166
 
167
+ const selectApplicationPineOptions = {
168
+ $select: ['id', 'slug', 'app_name'],
169
+ $expand: {
170
+ is_for__device_type: {
171
+ $select: 'slug',
172
+ },
173
+ },
174
+ } satisfies PineOptions<Application>;
175
+
176
+ type SelectApplicationResult = PineTypedResult<
177
+ Application,
178
+ typeof selectApplicationPineOptions
179
+ >;
180
+
160
181
  export async function selectApplication(
161
- filter?: (app: ApplicationWithDeviceType) => boolean,
182
+ filter?: (app: SelectApplicationResult) => boolean,
162
183
  errorOnEmptySelection = false,
163
184
  ) {
164
185
  const balena = getBalenaSdk();
165
- const apps = (await balena.models.application.getAllDirectlyAccessible({
166
- $expand: {
167
- is_for__device_type: {
168
- $select: 'slug',
169
- },
170
- },
171
- })) as ApplicationWithDeviceType[];
186
+ const apps = (await balena.models.application.getAllDirectlyAccessible(
187
+ selectApplicationPineOptions,
188
+ )) as SelectApplicationResult[];
172
189
 
173
190
  if (!apps.length) {
174
191
  throw new ExpectedError('No fleets found');
@@ -193,7 +210,9 @@ export async function selectOrganization(
193
210
  organizations?: Array<Pick<Organization, 'handle' | 'name'>>,
194
211
  ) {
195
212
  // Use either provided orgs (if e.g. already loaded) or load from cloud
196
- organizations ??= await getBalenaSdk().models.organization.getAll();
213
+ organizations ??= await getBalenaSdk().models.organization.getAll({
214
+ $select: ['name', 'handle'],
215
+ });
197
216
  return getCliForm().ask({
198
217
  message: 'Select an organization',
199
218
  type: 'list',
@@ -296,7 +315,9 @@ export async function getOnlineTargetDeviceUuid(
296
315
  try {
297
316
  logger.logDebug(`Fetching fleet ${fleetOrDevice}`);
298
317
  const { getApplication } = await import('./sdk');
299
- return await getApplication(sdk, fleetOrDevice);
318
+ return await getApplication(sdk, fleetOrDevice, {
319
+ $select: ['id', 'slug'],
320
+ });
300
321
  } catch (err) {
301
322
  const { BalenaApplicationNotFound } = await import('balena-errors');
302
323
  if (instanceOf(err, BalenaApplicationNotFound)) {
package/lib/utils/sdk.ts CHANGED
@@ -76,31 +76,44 @@ export async function getFleetSlug(
76
76
  if (!looksLikeFleetSlug(nameOrSlug)) {
77
77
  // Not a slug: must be an app name.
78
78
  // TODO: revisit this logic when we add support for fleet UUIDs.
79
- return (await getApplication(sdk, nameOrSlug)).slug;
79
+ return (await getApplication(sdk, nameOrSlug, { $select: 'slug' })).slug;
80
80
  }
81
81
  return nameOrSlug.toLowerCase();
82
82
  }
83
83
 
84
+ export async function getOwnOrganizations(
85
+ sdk: BalenaSDK,
86
+ ): Promise<Organization[]>;
87
+ export async function getOwnOrganizations<TP extends PineOptions<Organization>>(
88
+ sdk: BalenaSDK,
89
+ options: TP,
90
+ ): Promise<Array<PineTypedResult<Organization, TP>>>;
84
91
  /**
85
92
  * Wraps the sdk organization.getAll method,
86
93
  * restricting to those orgs user is a member of
87
94
  */
88
95
  export async function getOwnOrganizations(
89
96
  sdk: BalenaSDK,
97
+ options?: PineOptions<Organization>,
90
98
  ): Promise<Organization[]> {
91
- return await sdk.models.organization.getAll({
92
- $filter: {
93
- organization_membership: {
94
- $any: {
95
- $alias: 'orm',
96
- $expr: {
97
- orm: {
98
- user: await sdk.auth.getUserId(),
99
+ return await sdk.models.organization.getAll(
100
+ sdk.utils.mergePineOptions(
101
+ {
102
+ $filter: {
103
+ organization_membership: {
104
+ $any: {
105
+ $alias: 'orm',
106
+ $expr: {
107
+ orm: {
108
+ user: await sdk.auth.getUserId(),
109
+ },
110
+ },
99
111
  },
100
112
  },
101
113
  },
114
+ $orderby: 'name asc',
102
115
  },
103
- },
104
- $orderby: 'name asc',
105
- });
116
+ options,
117
+ ),
118
+ );
106
119
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "16.2.5",
3
+ "version": "16.2.6",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "balena-cli",
9
- "version": "16.2.5",
9
+ "version": "16.2.6",
10
10
  "hasInstallScript": true,
11
11
  "license": "Apache-2.0",
12
12
  "dependencies": {