How to use balena-sdk - 3 common examples

To help you get started, we’ve selected a few balena-sdk examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github balena-io / balena-cli / lib / actions / ssh.ts View on Github external
action: async (params, options) => {
		const applicationOrDevice =
			params.applicationOrDevice_raw || params.applicationOrDevice;
		const bash = await import('bash');
		// TODO: Make this typed
		const hasbin = require('hasbin');
		const { getSubShellCommand } = await import('../utils/helpers');
		const { child_process } = await import('mz');
		const {
			exitIfNotLoggedIn,
			exitWithExpectedError,
			getOnlineTargetUuid,
		} = await import('../utils/patterns');
		const sdk = BalenaSdk.fromSharedOptions();

		const verbose = options.verbose === true;
		// ugh TODO: Fix this
		const proxyConfig = (global as any).PROXY_CONFIG;
		const useProxy = !!proxyConfig && !options.noProxy;
		const port = options.port != null ? parseInt(options.port, 10) : undefined;

		// if we're doing a direct SSH connection locally...
		if (
			validateDotLocalUrl(applicationOrDevice) ||
			validateIPAddress(applicationOrDevice)
		) {
			const { performLocalDeviceSSH } = await import('../utils/device/ssh');
			return await performLocalDeviceSSH({
				address: applicationOrDevice,
				port,
github balena-io / balena-cli / lib / app-common.ts View on Github external
function setupBalenaSdkSharedOptions() {
	// We don't yet use balena-sdk directly everywhere, but we set up shared
	// options correctly so we can do safely in submodules
	const BalenaSdk = require('balena-sdk');
	const settings = require('balena-settings-client');
	BalenaSdk.setSharedOptions({
		apiUrl: settings.get('apiUrl'),
		imageMakerUrl: settings.get('imageMakerUrl'),
		dataDirectory: settings.get('dataDirectory'),
		retries: 2,
	});
}
github balena-io / balena-cli / lib / actions / ssh_direct.ts View on Github external
import { CommandDefinition } from 'capitano';
import { stripIndent } from 'common-tags';
import * as globalTunnel from 'global-tunnel-ng';
import * as _ from 'lodash';
import * as net from 'net';
import * as sdk from 'balena-sdk';
import * as ssh2 from 'ssh2';
import * as stream from 'stream';

import { getDeviceContainerInfo } from '../utils/containers';
import { normalizeUuidProp } from '../utils/normalization';
import * as patterns from '../utils/patterns';

import { hostOSAccess } from './command-options';

const balena = sdk.fromSharedOptions();

export const ssh: CommandDefinition<
	{ uuid?: string },
	{ host?: boolean; noproxy?: boolean }
> = {
	signature: 'ssh [uuid]',
	description: '(beta) get a shell into the running app container of a device',
	help: stripIndent`
		Use this command to get a shell into the running application container of
		your device.

		Examples:

			$ balena ssh MyApp
			$ balena ssh 7cf02a6
			$ balena ssh 7cf02a6 -s`,

balena-sdk

The Balena JavaScript SDK

Apache-2.0
Latest version published 4 days ago

Package Health Score

78 / 100
Full package analysis