Merge pull request #2663 from balena-io/bumps-sdk-to-v18

Update balena-sdk to v18
This commit is contained in:
Otávio Jacobi 2023-08-22 10:32:34 -03:00 committed by GitHub
commit 507333c463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 68 additions and 68 deletions

View File

@ -62,7 +62,7 @@ export default class ApiKeysCmd extends Command {
$select: 'actor', $select: 'actor',
}) })
).actor ).actor
: await getBalenaSdk().auth.getUserActorId(); : await getBalenaSdk().auth.getActorId();
const keys = await getBalenaSdk().pine.get({ const keys = await getBalenaSdk().pine.get({
resource: 'api_key', resource: 'api_key',
options: { options: {

View File

@ -346,9 +346,9 @@ ${dockerignoreHelp}
); );
logger.logWarn(msg); logger.logWarn(msg);
const [token, username, url, options] = await Promise.all([ const [token, { username }, url, options] = await Promise.all([
sdk.auth.getToken(), sdk.auth.getToken(),
sdk.auth.whoami(), sdk.auth.getUserInfo(),
sdk.settings.get('balenaUrl'), sdk.settings.get('balenaUrl'),
{ {
// opts.appName may be prefixed by 'owner/', unlike opts.app.app_name // opts.appName may be prefixed by 'owner/', unlike opts.app.app_name
@ -371,8 +371,8 @@ ${dockerignoreHelp}
$select: ['commit'], $select: ['commit'],
}); });
} else { } else {
const [userId, auth, apiEndpoint] = await Promise.all([ const [{ id: userId }, auth, apiEndpoint] = await Promise.all([
sdk.auth.getUserId(), sdk.auth.getUserInfo(),
sdk.auth.getToken(), sdk.auth.getToken(),
sdk.settings.get('apiUrl'), sdk.settings.get('apiUrl'),
]); ]);

View File

@ -137,7 +137,7 @@ export default class LoginCmd extends Command {
console.log(`\nLogging in to ${balenaUrl}`); console.log(`\nLogging in to ${balenaUrl}`);
await this.doLogin(options, balenaUrl, params.token); await this.doLogin(options, balenaUrl, params.token);
const username = await balena.auth.whoami(); const { username } = await balena.auth.getUserInfo();
console.info(`Successfully logged in as: ${username}`); console.info(`Successfully logged in as: ${username}`);
console.info(`\ console.info(`\
@ -165,7 +165,12 @@ ${messages.reachingOut}`);
} }
const balena = getBalenaSdk(); const balena = getBalenaSdk();
await balena.auth.loginWithToken(token!); await balena.auth.loginWithToken(token!);
if (!(await balena.auth.whoami())) { try {
await balena.auth.getUserInfo();
} catch (err) {
if (process.env.DEBUG) {
console.error(`Get user info failed with: ${err.message}`);
}
throw new ExpectedError('Token authentication failed'); throw new ExpectedError('Token authentication failed');
} }
return; return;

View File

@ -152,9 +152,9 @@ export default class SshCmd extends Command {
const { which } = await import('../utils/which'); const { which } = await import('../utils/which');
const [whichProxytunnel, username, proxyUrl] = await Promise.all([ const [whichProxytunnel, { username }, proxyUrl] = await Promise.all([
useProxy ? which('proxytunnel', false) : undefined, useProxy ? which('proxytunnel', false) : undefined,
sdk.auth.whoami(), sdk.auth.getUserInfo(),
// note that `proxyUrl` refers to the balenaCloud "resin-proxy" // note that `proxyUrl` refers to the balenaCloud "resin-proxy"
// service, currently "balena-devices.com", rather than some // service, currently "balena-devices.com", rather than some
// local proxy server URL // local proxy server URL
@ -208,7 +208,7 @@ export default class SshCmd extends Command {
port: options.port || 'cloud', port: options.port || 'cloud',
proxyCommand, proxyCommand,
service: params.service, service: params.service,
username: username!, username,
}); });
} }

View File

@ -36,11 +36,11 @@ export default class WhoamiCmd extends Command {
const balena = getBalenaSdk(); const balena = getBalenaSdk();
const [username, email, url] = await Promise.all([ const [{ username, email }, url] = await Promise.all([
balena.auth.whoami(), balena.auth.getUserInfo(),
balena.auth.getEmail(),
balena.settings.get('balenaUrl'), balena.settings.get('balenaUrl'),
]); ]);
console.log( console.log(
getVisuals().table.vertical({ username, email, url }, [ getVisuals().table.vertical({ username, email, url }, [
'$account information$', '$account information$',

View File

@ -167,7 +167,7 @@ export async function getCachedUsername(): Promise<CachedUsername | undefined> {
// ignore // ignore
} }
try { try {
const username = await getBalenaSdk().auth.whoami(); const { username } = await getBalenaSdk().auth.getUserInfo();
if (username) { if (username) {
cachedUsername = { token, username }; cachedUsername = { token, username };
await storage.set('cachedUsername', cachedUsername); await storage.set('cachedUsername', cachedUsername);

View File

@ -386,8 +386,11 @@ async function createApplication(
): Promise<ApplicationWithDeviceTypeSlug> { ): Promise<ApplicationWithDeviceTypeSlug> {
const validation = await import('./validation'); const validation = await import('./validation');
const username = await sdk.auth.whoami(); let username: string;
if (!username) { try {
const userInfo = await sdk.auth.getUserInfo();
username = userInfo.username;
} catch (err) {
throw new sdk.errors.BalenaNotLoggedIn(); throw new sdk.errors.BalenaNotLoggedIn();
} }
@ -404,7 +407,7 @@ async function createApplication(
try { try {
await sdk.models.application.getDirectlyAccessible(appName, { await sdk.models.application.getDirectlyAccessible(appName, {
$filter: { $filter: {
slug: { $startswith: `${username!.toLowerCase()}/` }, slug: { $startswith: `${username.toLowerCase()}/` },
}, },
}); });
// TODO: This is the only example in the codebase where `printErrorMessage()` // TODO: This is the only example in the codebase where `printErrorMessage()`

View File

@ -105,7 +105,7 @@ export async function getOwnOrganizations(
$alias: 'orm', $alias: 'orm',
$expr: { $expr: {
orm: { orm: {
user: await sdk.auth.getUserId(), user: (await sdk.auth.getUserInfo()).id,
}, },
}, },
}, },

View File

@ -51,7 +51,7 @@ export const tunnelConnectionToDevice = (
sdk.auth.getToken(), sdk.auth.getToken(),
]).then(([tunnelUrl, whoami, token]) => { ]).then(([tunnelUrl, whoami, token]) => {
const auth = { const auth = {
user: whoami || 'root', user: whoami?.actorType === 'user' ? whoami.username : 'root',
password: token, password: token,
}; };

78
npm-shrinkwrap.json generated
View File

@ -22,9 +22,9 @@
"balena-device-init": "^6.0.0", "balena-device-init": "^6.0.0",
"balena-errors": "^4.7.3", "balena-errors": "^4.7.3",
"balena-image-fs": "^7.0.6", "balena-image-fs": "^7.0.6",
"balena-image-manager": "^9.0.0", "balena-image-manager": "^9.0.2",
"balena-preload": "^14.0.0", "balena-preload": "^14.0.2",
"balena-sdk": "^17.12.1", "balena-sdk": "^18.0.0",
"balena-semver": "^2.3.0", "balena-semver": "^2.3.0",
"balena-settings-client": "^5.0.2", "balena-settings-client": "^5.0.2",
"balena-settings-storage": "^8.1.0", "balena-settings-storage": "^8.1.0",
@ -3082,9 +3082,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.18.41", "version": "16.18.42",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.41.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.42.tgz",
"integrity": "sha512-YZJjn+Aaw0xihnpdImxI22jqGbp0DCgTFKRycygjGx/Y27NnWFJa5FJ7P+MRT3u07dogEeMVh70pWpbIQollTA==" "integrity": "sha512-IrFfX/1oxDFQNpQzgt/BoP/hbMuQT68DPsNwzJmw8y3K8lfnPp0XymVN9GLFz+LobFmJGZ/peRzq+9wXYfCCtw=="
}, },
"node_modules/@types/node-cleanup": { "node_modules/@types/node-cleanup": {
"version": "2.1.2", "version": "2.1.2",
@ -4019,11 +4019,11 @@
} }
}, },
"node_modules/balena-image-manager": { "node_modules/balena-image-manager": {
"version": "9.0.0", "version": "9.0.2",
"resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-9.0.0.tgz", "resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-9.0.2.tgz",
"integrity": "sha512-DOtcpqnLhRcEETqFPlfM6XDmsgexr0ykahtrYki9DU0JNuK5OJlhgkE2/HgVOFWHWnslmcqnCTmGHkh7mJd1Dw==", "integrity": "sha512-1q52zABKh8X2rFQsWXSlfJH/b10wfA+T5YFnYfUohomW/G+GPUANxx0ma9zidJCrcyNx46vqalrzPzKEKtpeHw==",
"dependencies": { "dependencies": {
"balena-sdk": "^17.0.0", "balena-sdk": "^18.0.0",
"mime": "^2.4.6", "mime": "^2.4.6",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
@ -4033,12 +4033,12 @@
} }
}, },
"node_modules/balena-preload": { "node_modules/balena-preload": {
"version": "14.0.0", "version": "14.0.2",
"resolved": "https://registry.npmjs.org/balena-preload/-/balena-preload-14.0.0.tgz", "resolved": "https://registry.npmjs.org/balena-preload/-/balena-preload-14.0.2.tgz",
"integrity": "sha512-LWA/WgckfWxI2VFrefatUlMsYuM+zVbUqoDhPx95VQh4ArJXxbo8s9ADgl/yQGt0e4qUciMu8fuzxaZXZvwS2A==", "integrity": "sha512-1JjVf+V0obEU3g+0pcgYTPwMZMJudrb86VjOmsYOVxMiUKW9wlOEj2AcceUQpB1B/xfFgMCJaUuWYxGVELvhew==",
"dependencies": { "dependencies": {
"archiver": "^3.1.1", "archiver": "^3.1.1",
"balena-sdk": "^17.0.0", "balena-sdk": "^18.0.0",
"bluebird": "^3.7.2", "bluebird": "^3.7.2",
"compare-versions": "^3.6.0", "compare-versions": "^3.6.0",
"docker-progress": "^5.0.0", "docker-progress": "^5.0.0",
@ -4189,13 +4189,13 @@
} }
}, },
"node_modules/balena-sdk": { "node_modules/balena-sdk": {
"version": "17.12.1", "version": "18.0.2",
"resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-17.12.1.tgz", "resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-18.0.2.tgz",
"integrity": "sha512-cpfAa+OPltp1+609cBKuTiDWI6tTxXpllitLfqCmAqqu6fVni8m2LLoNvg+2FxfxhRi1OXKoTX6HNTCctSeSNQ==", "integrity": "sha512-J7mggg/PJjagX9ML2MT1xf0blS5+x6dNVfVNAKpf7pf5HiGRMCRmOVaLF+tDD5Gq9Mrb8l1O8jIHGwW7s1VuzA==",
"dependencies": { "dependencies": {
"@balena/es-version": "^1.0.0", "@balena/es-version": "^1.0.0",
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"@types/node": "^14.0.0", "@types/node": "^16.0.0",
"abortcontroller-polyfill": "^1.7.1", "abortcontroller-polyfill": "^1.7.1",
"balena-auth": "^5.1.0", "balena-auth": "^5.1.0",
"balena-errors": "^4.8.0", "balena-errors": "^4.8.0",
@ -4214,14 +4214,9 @@
"tslib": "^2.1.0" "tslib": "^2.1.0"
}, },
"engines": { "engines": {
"node": ">=14.0" "node": ">=16.0"
} }
}, },
"node_modules/balena-sdk/node_modules/@types/node": {
"version": "14.18.54",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz",
"integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw=="
},
"node_modules/balena-sdk/node_modules/date-fns": { "node_modules/balena-sdk/node_modules/date-fns": {
"version": "2.30.0", "version": "2.30.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
@ -24787,9 +24782,9 @@
} }
}, },
"@types/node": { "@types/node": {
"version": "16.18.41", "version": "16.18.42",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.41.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.42.tgz",
"integrity": "sha512-YZJjn+Aaw0xihnpdImxI22jqGbp0DCgTFKRycygjGx/Y27NnWFJa5FJ7P+MRT3u07dogEeMVh70pWpbIQollTA==" "integrity": "sha512-IrFfX/1oxDFQNpQzgt/BoP/hbMuQT68DPsNwzJmw8y3K8lfnPp0XymVN9GLFz+LobFmJGZ/peRzq+9wXYfCCtw=="
}, },
"@types/node-cleanup": { "@types/node-cleanup": {
"version": "2.1.2", "version": "2.1.2",
@ -25579,23 +25574,23 @@
} }
}, },
"balena-image-manager": { "balena-image-manager": {
"version": "9.0.0", "version": "9.0.2",
"resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-9.0.0.tgz", "resolved": "https://registry.npmjs.org/balena-image-manager/-/balena-image-manager-9.0.2.tgz",
"integrity": "sha512-DOtcpqnLhRcEETqFPlfM6XDmsgexr0ykahtrYki9DU0JNuK5OJlhgkE2/HgVOFWHWnslmcqnCTmGHkh7mJd1Dw==", "integrity": "sha512-1q52zABKh8X2rFQsWXSlfJH/b10wfA+T5YFnYfUohomW/G+GPUANxx0ma9zidJCrcyNx46vqalrzPzKEKtpeHw==",
"requires": { "requires": {
"balena-sdk": "^17.0.0", "balena-sdk": "^18.0.0",
"mime": "^2.4.6", "mime": "^2.4.6",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
} }
}, },
"balena-preload": { "balena-preload": {
"version": "14.0.0", "version": "14.0.2",
"resolved": "https://registry.npmjs.org/balena-preload/-/balena-preload-14.0.0.tgz", "resolved": "https://registry.npmjs.org/balena-preload/-/balena-preload-14.0.2.tgz",
"integrity": "sha512-LWA/WgckfWxI2VFrefatUlMsYuM+zVbUqoDhPx95VQh4ArJXxbo8s9ADgl/yQGt0e4qUciMu8fuzxaZXZvwS2A==", "integrity": "sha512-1JjVf+V0obEU3g+0pcgYTPwMZMJudrb86VjOmsYOVxMiUKW9wlOEj2AcceUQpB1B/xfFgMCJaUuWYxGVELvhew==",
"requires": { "requires": {
"archiver": "^3.1.1", "archiver": "^3.1.1",
"balena-sdk": "^17.0.0", "balena-sdk": "^18.0.0",
"bluebird": "^3.7.2", "bluebird": "^3.7.2",
"compare-versions": "^3.6.0", "compare-versions": "^3.6.0",
"docker-progress": "^5.0.0", "docker-progress": "^5.0.0",
@ -25718,13 +25713,13 @@
} }
}, },
"balena-sdk": { "balena-sdk": {
"version": "17.12.1", "version": "18.0.2",
"resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-17.12.1.tgz", "resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-18.0.2.tgz",
"integrity": "sha512-cpfAa+OPltp1+609cBKuTiDWI6tTxXpllitLfqCmAqqu6fVni8m2LLoNvg+2FxfxhRi1OXKoTX6HNTCctSeSNQ==", "integrity": "sha512-J7mggg/PJjagX9ML2MT1xf0blS5+x6dNVfVNAKpf7pf5HiGRMCRmOVaLF+tDD5Gq9Mrb8l1O8jIHGwW7s1VuzA==",
"requires": { "requires": {
"@balena/es-version": "^1.0.0", "@balena/es-version": "^1.0.0",
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"@types/node": "^14.0.0", "@types/node": "^16.0.0",
"abortcontroller-polyfill": "^1.7.1", "abortcontroller-polyfill": "^1.7.1",
"balena-auth": "^5.1.0", "balena-auth": "^5.1.0",
"balena-errors": "^4.8.0", "balena-errors": "^4.8.0",
@ -25743,11 +25738,6 @@
"tslib": "^2.1.0" "tslib": "^2.1.0"
}, },
"dependencies": { "dependencies": {
"@types/node": {
"version": "14.18.54",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz",
"integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw=="
},
"date-fns": { "date-fns": {
"version": "2.30.0", "version": "2.30.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",

View File

@ -205,9 +205,9 @@
"balena-device-init": "^6.0.0", "balena-device-init": "^6.0.0",
"balena-errors": "^4.7.3", "balena-errors": "^4.7.3",
"balena-image-fs": "^7.0.6", "balena-image-fs": "^7.0.6",
"balena-image-manager": "^9.0.0", "balena-image-manager": "^9.0.2",
"balena-preload": "^14.0.0", "balena-preload": "^14.0.2",
"balena-sdk": "^17.12.1", "balena-sdk": "^18.0.0",
"balena-semver": "^2.3.0", "balena-semver": "^2.3.0",
"balena-settings-client": "^5.0.2", "balena-settings-client": "^5.0.2",
"balena-settings-storage": "^8.1.0", "balena-settings-storage": "^8.1.0",

View File

@ -430,8 +430,10 @@ export class BalenaAPIMock extends NockMock {
// User details are cached in the SDK // User details are cached in the SDK
// so often we don't know if we can expect the whoami request // so often we don't know if we can expect the whoami request
public expectGetWhoAmI(opts: ScopeOpts = { optional: true }) { public expectGetWhoAmI(opts: ScopeOpts = { optional: true }) {
this.optGet('/user/v1/whoami', opts).reply(200, { this.optGet('/actor/v1/whoami', opts).reply(200, {
id: 99999, id: 1234,
actorType: 'user',
actorTypeId: 99999,
username: 'gh_user', username: 'gh_user',
email: 'testuser@test.com', email: 'testuser@test.com',
}); });