# Changelog for balena-supervisor All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to [Semantic Versioning](http://semver.org/). ## 10.5.3 - 2019-10-30 * Convert some coffeescript tests to typescript [Cameron Diver] * Bump mixin-deep from 1.3.1 to 1.3.2 [dependabot[bot]] ## 10.5.2 - 2019-10-29 * Bump handlebars from 4.0.12 to 4.5.1 Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.12 to 4.5.1. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/v4.5.1/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.5.1) [dependabot[bot]] ## 10.5.1 - 2019-10-28 * Ensure that we reset rate limits after a successful target apply [Cameron Diver] ## 10.5.0 - 2019-10-07 * Add a cache around the database application target state [Cameron Diver] ## 10.4.1 - 2019-10-02 * Correctly validate container contracts [Cameron Diver] ## 10.4.0 - 2019-10-01 * Add support for container contracts [Cameron Diver] * Upgrade io-ts and fp-ts to 2.0.0 [Cameron Diver] * Add contract resolution code, which checks release requirements [Cameron Diver] * Avoid synchronous file accesses for os release info [Cameron Diver] * Add test number to test files name [Cameron Diver] * Add a cache around the database application target state [Cameron Diver] ## 10.3.8 - 2019-09-23 * Unify API errors processing [Roman Mazur] ## 10.3.7 - 2019-09-20 * Ping: move /ping out from authentication [Matthew McGinn] ## 10.3.6 - 2019-09-18 * Explicitly remove volumes when purging [Cameron Diver] * Catch and report cloud stream writing errors [Cameron Diver] ## 10.3.5 - 2019-09-16 * Correctly handle partial IPAM configurations for networks [Cameron Diver] ## 10.3.4 - 2019-09-11 * Device-state: correctly call volume creation on backup restore step [Gergely Imreh] ## 10.3.3 - 2019-09-02 * Entry.sh: conform to shellcheck syntax [Matthew McGinn] ## 10.3.2 - 2019-09-02 * Modification to unpacking volume backup [Thomas] ## 10.3.1 - 2019-08-22 * Pin debug builds to stretch base images to match non-debug builds [Cameron Diver] ## 10.3.0 - 2019-08-21 * Add usage example repo to documentation [Cameron Diver] * Add journald format flag [Cameron Diver] * Update documentation and explicitly unpipe journald stream [Cameron Diver] ## 10.2.7 - 2019-08-21 * Correctly generate network or volume creation steps [Cameron Diver] ## 10.2.6 - 2019-08-19 * Extract composition step work out to typescript compose module [Cameron Diver] * Remove unused local mode parameter from images.getAvailable [Cameron Diver] ## 10.2.5 - 2019-08-19 * Only consider certain array fields without order [Cameron Diver] ## 10.2.4 - 2019-08-15 * Take order into account when comparing service config arrays [Cameron Diver] ## 10.2.3 - 2019-08-14 * Meta: remove pcarranzav as codeowner [Matthew McGinn] ## 10.2.2 - 2019-08-09 * Docs: fix up typo "sucess" -> "success" [Matthew McGinn] ## 10.2.1 - 2019-08-09 * Fix version documentation for journald endpoint [Cameron Diver] ## 10.2.0 - 2019-08-09 * Add an endpoint and module for reading journald logs [Cameron Diver] ## 10.1.5 - 2019-07-25 * Api: Avoid cloneDeep when copying target state. [Cameron Diver] ## 10.1.4 - 2019-07-25 * Filter both null and omitted values [Roman Mazur] * Use typed error to report inspection problems [Roman Mazur] * Prevent supervisor from deleting itself [Roman Mazur] ## 10.1.3 - 2019-07-24 * Docs: update APPID to BALENA_APP_ID as exposed from the env [Matthew McGinn] ## 10.1.2 - 2019-07-24 * Api: Perform network checks if device is unmanaged [Rich Bayliss] ## 10.1.1 - 2019-07-23 * Fix invocation of livepush with sync-debug [Cameron Diver] ## 10.1.0 - 2019-07-23 * Support network_modes of service: [Cameron Diver] ## 10.0.5 - 2019-07-22 * Fix: Always reboot when applying boot config [Cameron Diver] ## 10.0.4 - 2019-07-19 * Pre-emptively pull required images in parallel [Pagan Gazzard] * Avoid unnecessary else in Makefile [Pagan Gazzard] * Fix installing the specified npm version in debug builds [Pagan Gazzard] * Remove the dummy node-build step for debug images [Pagan Gazzard] * Reduce differences between the debug and standard dockerfiles [Pagan Gazzard] * Run image cleanup in parallel [Pagan Gazzard] * Do intermediate build pushing in parallel [Pagan Gazzard] * Minimise the amount of cache busted by a changed ARG [Pagan Gazzard] * Fix cache usage for builds [Pagan Gazzard] ## 10.0.3 - 2019-07-19 * Fix: Don't consider volume supervised labels when comparing [Cameron Diver] ## 10.0.2 - 2019-07-18 * Device-api: fix up small typos [Matthew McGinn] ## 10.0.1 - 2019-07-11 * Don't attempt to cleanup any target state referenced volumes [Cameron Diver] ## 10.0.0 - 2019-07-10 * Don't remove volumes when switching into local mode [Cameron Diver] * Add volume tests and fix test fixture setup for applications [Cameron Diver] * Add a supervisor endpoint to cleanup orphaned volumes [Cameron Diver] * Only remove volumes when we're moving between applications [Cameron Diver] * Reorder debug dockerfile to faster livepushes [Cameron Diver] * Dont try to set the commit if it's undefined [Cameron Diver] ## 9.18.8 - 2019-07-10 * Docs: fix up broken meta-balena proxy link [Matthew McGinn] ## 9.18.7 - 2019-07-09 * Don't attempt to setup a log stream to the cloud before provision [Cameron Diver] * Add more typescript conversions and export utilities from existing [Cameron Diver] ## 9.18.6 - 2019-07-09 * Apply targetState immediately after update request Cancel delayed promise if exists and schedule a new one without delay, when /v1/update is called [Michel Wohlert] ## 9.18.5 - 2019-07-08 * Use resin-lint for mocha tests check [Roman Mazur] ## 9.18.4 - 2019-07-04 * Fix network composition parsing, and correctly report compose config [Cameron Diver] * Keep the network and volume models consistent across usage [Cameron Diver] * Pass around instantiated Network objects when comparing state [Cameron Diver] * Seperate volume handling into manager and object classes [Cameron Diver] * Fix: When reporting initial config, avoid creating a "VPN enabled" unnecessary override [Pablo Carranza Velez] ## 9.18.3 - 2019-06-29 * Add mocha tests linter [Roman Mazur] ## 9.18.2 - 2019-06-27 * Use jessie base images for i386-nlp [Cameron Diver] * Ensure that all architectures use a node version that supports ci [Cameron Diver] ## 9.18.1 - 2019-06-27 * Fix tests run removing .only [Roman Mazur] ## 9.18.0 - 2019-06-26 * Ensure we get input on parsing errors [Roman Mazur] * Ensure local mode switch runs before target state [Roman Mazur] * Clean up local mode engine objects using snapshots [Roman Mazur] * Add sinon types [Roman Mazur] ## 9.17.2 - 2019-06-25 * Change to https for cloning resinos-in-container submodule [Pagan Gazzard] ## 9.17.1 - 2019-06-21 * Update the resinos version for the dind supervisor [Pagan Gazzard] ## 9.17.0 - 2019-06-20 * Report device state in local mode [Roman Mazur] ## 9.16.7 - 2019-06-20 * Don't drop failed api patch data [Cameron Diver] ## 9.16.6 - 2019-06-19 * Remove mochainon dependnecy [Roman Mazur] ## 9.16.5 - 2019-06-19 * Allow writing test files in typescript [Cameron Diver] ## 9.16.4 - 2019-06-18 * Make sync-debug much more reliable with logs [Cameron Diver] ## 9.16.3 - 2019-06-11 * Fix typo in image selection [Cameron Diver] ## 9.16.2 - 2019-06-11 * Re-parallelise current image retrieval code [Cameron Diver] ## 9.16.1 - 2019-06-10 * Revert "Add a controlling variable for mixpanel reporting" [Cameron Diver] ## 9.16.0 - 2019-06-10 * Upgrade typescript and fix warnings [Cameron Diver] * Pin prettier version to avoid changes in non-ci installs [Cameron Diver] * Standardise all supervisor output logging [Cameron Diver] ## 9.15.9 - 2019-05-29 * Update and improve debug and development tools [Cameron Diver] ## 9.15.8 - 2019-05-29 * Add a controlling variable for mixpanel reporting [Cameron Diver] ## 9.15.7 - 2019-05-29 * Update balena-supervisor-base to v1.4.7 [Cameron Diver] ## 9.15.6 - 2019-05-28 * Add wrapper around container logs saving, to reduce db load [Cameron Diver] ## 9.15.5 - 2019-05-27 * Docs: remove legacy waffle link & gitter chat from README [Matthew McGinn] ## 9.15.4 - 2019-05-27 * Fix regression where node_modules stayed in resulting image [Cameron Diver] ## 9.15.3 - 2019-05-26 * Move to resin-lint 3 and fix lint errors [Cameron Diver] ## 9.15.2 - 2019-05-17 * Dont check config.gz for loaded i6tables module [Cameron Diver] ## 9.15.1 - 2019-05-16 * Fix circle deploying of images [Cameron Diver] ## 9.15.0 - 2019-05-15 * Add livepush capabilities for debug builds [Cameron Diver] * Change install step to not mask errors [Cameron Diver] * Update sqlite3 to 4.0.9 to avoid arm build errors [Cameron Diver] * Use balenalib base image for i386 base [Cameron Diver] * Upgrade debug builds to node 10 for supported architectures [Cameron Diver] * Add debug build infrastructure and configuration [Cameron Diver] * Make delta application logs easier to parse for multicontainer [Cameron Diver] * Upgrade to node 10 for supported architectures [Cameron Diver] * Upgrade to node 8 for supported architectures [Cameron Diver] ## 9.14.12 - 2019-05-15 * Allow system messages to not be tracked [Cameron Diver] * Format update lock logs with pretty-ms [Cameron Diver] * Display update lock notification in dashboard logs [Cameron Diver] * Show better logs for UpdatesLockedError [Cameron Diver] * Clear backoff counter on new target state [Cameron Diver] ## 9.14.11 - 2019-05-10 * Fix supervisor tests for node v10.12.0 and above [Cameron Diver] ## 9.14.10 - 2019-05-10 * Cache delta auth token request results for 10 minutes [Cameron Diver] ## 9.14.9 - 2019-05-06 * Docs: make headers consistent [Matthew McGinn] ## 9.14.8 - 2019-05-03 * Docs: fix up some stray resin references [Matthew McGinn] ## 9.14.7 - 2019-05-03 * Perform case-insensitive checking when converting booleans from strings [Cameron Diver] ## 9.14.6 - 2019-04-25 * Fix: Run db log cleanup on init - after migrations [Cameron Diver] ## 9.14.5 - 2019-04-25 * Fix: Correctly handle multiple hosts ports pointing to a container port [Cameron Diver] ## 9.14.4 - 2019-04-11 * Compose: Remove unique expose entries after adding all entries [Cameron Diver] ## 9.14.3 - 2019-04-10 * Don't attempt to report any state during local mode [Cameron Diver] ## 9.14.2 - 2019-04-08 * Types: Upgrade dockerode types, and remove fixes which are superceded [Cameron Diver] ## 9.14.1 - 2019-04-05 * Avahi: Remove default service definitions [Heds Simons] ## 9.14.0 - 2019-04-05 * Run database cleanup on startup in addition to once a day [Cameron Diver] * Fix: Fix non-tty container message parsing [Cameron Diver] * Report all logs from a container's runtime [Cameron Diver] * Refactor container logging interface and rename logging-backends [Cameron Diver] * Ux: Show a supervisor starting log message in dashboard [Cameron Diver] * Ux: Remove service already running log message [Cameron Diver] ## 9.13.0 - 2019-04-03 * In /v1/update, return 202 when we're not updating immediately [Pablo Carranza Velez] * Add a random jitter to target state polls, and a config var to ignore update notifications and not poll immediately after startup [Pablo Carranza Velez] ## 9.12.7 - 2019-04-03 * Fix service comparison when starting a stopped service [Cameron Diver] ## 9.12.6 - 2019-03-29 * Fix migration of legacy apps when there's more than one app in the local DB [Pablo Carranza Velez] ## 9.12.5 - 2019-03-28 * Test: Add a test case for deviceConfig.getDefaults [Pablo Carranza Velez] ## 9.12.4 - 2019-03-28 * Only modprobe ip6_tables if it's necessary [Pablo Carranza Velez] ## 9.12.3 - 2019-03-28 * Parallelise cache pulling for builds [Pagan Gazzard] ## 9.12.2 - 2019-03-28 * Fix typo in delta request error message [Cameron Diver] ## 9.12.1 - 2019-03-28 * Fix: Correctly compare and generate network membership aliases [Cameron Diver] ## 9.12.0 - 2019-03-27 * Misc: Update build stages to debian stretch [Cameron Diver] * Device-config: Show invalid values in dashboard logs [Cameron Diver] * Events: Allow system messages to not be tracked [Cameron Diver] * Device-config: Use default values for any invalid target values [Cameron Diver] ## 9.11.4 - 2019-03-21 * Ensure the supervisor0 network uses a subnet less likely to cause conflicts [Pablo Carranza Velez] ## 9.11.3 - 2019-03-21 * Fix: When pinning a preloaded device, ensure the pinning is done when retrying after a failure [Pablo Carranza Velez] * Fix: Return a promise when retrying provisioning to avoid continuing after a failure [Pablo Carranza Velez] ## 9.11.2 - 2019-03-20 * Fix: Await reporting the initial config before continuing APIBinder initialization [Pablo Carranza Velez] ## 9.11.1 - 2019-03-19 * Fix typo when getting device config default values [Pablo Carranza Velez] ## 9.11.0 - 2019-03-18 * Fix: Correct use of $expand to avoid an exception when updating from a legacy OS [Pablo Carranza Velez] * Device-api: Add v2/device/tags api endpoint [Cameron Diver] * Device-api: Add v2/device/name endpoint [Cameron Diver] ## 9.10.2 - 2019-03-13 * State-engine: Return a noop when waiting for a dependency [Cameron Diver] * Skip dependency check on kill in local mode [Cameron Diver] ## 9.10.1 - 2019-03-12 * Pin lodash types to avoid compile error [Cameron Diver] ## 9.10.0 - 2019-03-11 * Docs: Standardise naming and json in api documentation [Cameron Diver] * Docs: Add documentation for v2/state/status endpoint [Cameron Diver] ## 9.9.1 - 2019-03-08 * Codeowners: Add @CameronDiver, @pcarranzav and @Page- [Heds Simons] ## 9.9.0 - 2019-03-07 * State-engine: Add an exponential backoff for device-config noops [Cameron Diver] * Fix: Fix connectivity active VPN check [Cameron Diver] * State-engine: Add rate limited steps to device-config [Cameron Diver] ## 9.8.7 - 2019-02-28 * Feature: Add `BALENA_API_URL` environment variable when using the `balena-api` feature label [Rich Bayliss] ## 9.8.6 - 2019-02-25 * Debug: Print more information about failing validations [Cameron Diver] * Device-config: Add migration for SUPERVISOR_DELTA_APPLY_TIMEOUT [Cameron Diver] ## 9.8.5 - 2019-02-25 * Increase max payload size in bodyparser to avoid PayloadTooLarge errors [Cameron Diver] ## 9.8.4 - 2019-02-25 * Fix provisioning workflow when UUID already exists [Cameron Diver] ## 9.8.3 - 2019-02-19 * Run iptables rules synchronous to avoid locking errors [Cameron Diver] ## 9.8.2 - 2019-02-19 * Revert "Upgrade to node 8 for supported architectures" [Cameron Diver] ## 9.8.1 - 2019-02-14 * Don't mount /lib/modules if it is already mounted [Cameron Diver] ## 9.8.0 - 2019-02-13 * Apply iptables rules to ipv6 [Cameron Diver] * Symlink kernel modules and modprobe ip6_tables [Cameron Diver] ## 9.7.7 - 2019-02-13 * Improve error messages, and add description to ImageAuth error [Cameron Diver] * Fix: Request image authentication token with explicitly as json [Cameron Diver] * Always back off on image fetch failure [Cameron Diver] ## 9.7.6 - 2019-02-12 * Don't treat a non-200 status response on patch as report errors [Cameron Diver] ## 9.7.5 - 2019-02-12 * Allow newlines to be part of environment variables [Cameron Diver] * Remove environment variable whitespace trimming [Cameron Diver] ## 9.7.4 - 2019-02-11 * Make sure to correctly convert config emit events after validation [Cameron Diver] ## 9.7.3 - 2019-02-11 * Set default delta apply timeout of 0 [Cameron Diver] ## 9.7.2 - 2019-02-09 * Fix: Normalize ports from compose file on instantiation [Cameron Diver] ## 9.7.1 - 2019-02-06 * Fix: Rework delete-then-download handling in state engine [Cameron Diver] ## 9.7.0 - 2019-02-05 * Make the failure backoff time the same as the appUpdatePollTime [Cameron Diver] * Backoff on image download error [Cameron Diver] * Add the release to the status endpoint [Cameron Diver] * Add application status endpoint [Cameron Diver] ## 9.6.6 - 2019-02-05 * Ensure the balena-fin always has it's overlay assigned [Cameron Diver] ## 9.6.5 - 2019-02-04 * Fix: Don't attempt a pull if the token requests fails [Cameron Diver] ## 9.6.4 - 2019-02-04 * Pin terser version to avoid breaking change in minor update [Cameron Diver] * Build: Respect package-lock when building [Cameron Diver] * Move legacy renaming to formatting function [Cameron Diver] * Fix typo in OVERRIDE_LOCK [Cameron Diver] ## 9.6.3 - 2019-01-31 * Wrap services.getAll in a bluebird promise [Cameron Diver] ## 9.6.2 - 2019-01-29 * Fix: Properly bind context to healthchecks [Cameron Diver] * Fix: Only apply supervisor api authentication after healthcheck entry [Cameron Diver] * Fix: Clear dbus pid file on startup [Cameron Diver] ## 9.6.1 - 2019-01-29 * Add missing ServiceManager methods [Cameron Diver] ## 9.6.0 - 2019-01-25 * Upgrade to node 8 for supported architectures [Cameron Diver] ## 9.5.0 - 2019-01-25 * Refactor: Convert ServiceManager to typescript [Cameron Diver] * Improve error and logger typings [Cameron Diver] * Refactor: Convert docker-utils module to typescript [Cameron Diver] ## 9.4.2 - 2019-01-23 * Fix: Fix intial config reporting [Cameron Diver] ## 9.4.1 - 2019-01-23 * Clear up images.ts module code for simiplicity [Cameron Diver] * Prefer optional type in ConfigChangeMap [Cameron Diver] * Use dictionary for db key [Cameron Diver] ## 9.4.0 - 2019-01-23 * Refactor: Convert volumes module to typescript [Cameron Diver] * Refactor: Convert compose/images module to typescript [Cameron Diver] * Deps: Update docker-toolbelt for typing fixes [Cameron Diver] * Typings: Improve database typings by allowing unknown dictionary keys [Cameron Diver] * Typings: Improve docker-utils typings [Cameron Diver] * Misc: Add Nullable helper type [Cameron Diver] * Config: Properly type the change events from config module [Cameron Diver] ## 9.3.1 - 2019-01-16 * Send connection message when streaming local mode logs [Cameron Diver] ## 9.3.0 - 2019-01-11 * Refactor: Remove unnecessary validations and casts [Cameron Diver] * Refactor: Fully type and validate config module set and get [Cameron Diver] * Refactor: Remove scaffolding for unused mutable config functions [Cameron Diver] * Fix: Use logind manager to request reboots and shutdowns [Cameron Diver] ## 9.2.10 - 2019-01-08 * Fix context bind errors by switching to async/await [Cameron Diver] ## 9.2.9 - 2019-01-08 * Refactor: Convert ApiBinder module to typescript [Cameron Diver] * Refactor: Only promisify read and write locks once [Cameron Diver] * Refactor: Convert supervisor api module to typescript [Cameron Diver] * Refactor: Change config modules export type to new-style [Cameron Diver] ## 9.2.8 - 2019-01-02 * Refactor: Generate and normalise PortMaps from compose ports in-class [Cameron Diver] * Compose: Normalise target ports for comparison with docker's output [Cameron Diver] ## 9.2.7 - 2018-12-21 * Refactor: Convert DeviceConfig module to typescript [Cameron Diver] * Types: Make DeviceApplicationState reflect state endpoint [Cameron Diver] * Refactor: Change export style of db to named [Cameron Diver] * Refactor: Add default export to logger module [Cameron Diver] * Refactor: Convert host-config module to typescript [Cameron Diver] ## 9.2.6 - 2018-12-21 * Misc: Exclude typescript files from resulting image [Cameron Diver] ## 9.2.5 - 2018-12-20 * Use webpack watching for sync.js for a faster dev cycle [Pagan Gazzard] ## 9.2.4 - 2018-12-20 * Force `devtool: none` to avoid issues with env.noOptimize [Pagan Gazzard] * Use fork-ts-checker to speed up the webpack build [Pagan Gazzard] ## 9.2.3 - 2018-12-20 * Fix: Correctly type top level network IPAM config [Cameron Diver] ## 9.2.2 - 2018-12-20 * Deps: Pin event-stream to avoid false audit warning [Cameron Diver] ## 9.2.1 - 2018-12-19 * Update pinejs-client to pinejs-client-request 5.x [Pagan Gazzard] ## 9.2.0 - 2018-12-19 * Update to webpack 4 [Pagan Gazzard] ## 9.1.0 - 2018-12-19 * Device-api: Add morgan to log api requests [Cameron Diver] ## 9.0.3 - 2018-12-19 * Refactor: Convert update-lock module to typescript [Cameron Diver] * Refactor: Convert systemd module to typescript [Cameron Diver] * Refactor: Convert request module to typescript [Cameron Diver] * Refactor: Convert migration module to typescript [Cameron Diver] ## 9.0.2 - 2018-12-18 * VersionBot: Fix incomplete version in CHANGELOG.yml [Giovanni Garufi] ## 9.0.1 - 2018-12-17 * Fix a race condition that could cause an unnecessary restart of a service immediately after download [Pablo Carranza Velez] ## 9.0.0 - 2018-12-17 * Unmanaged: Default to local mode in target state when unmanaged [Cameron Diver] * Config: Force config values to strings when storing in db [Cameron Diver] * Join: Disable local mode when joining a cloud [Cameron Diver] * Config: Replace supervisorOfflineMode and offlineMode with unmanaged [Cameron Diver] * Fix: Give unmanaged target states a source of 'local' [Cameron Diver] * Require an apikey for supervisor api in production unmanaged [Cameron Diver] * Switch to local mode in unmanaged mode [Cameron Diver] * Move config.json flag back to the database [Cameron Diver] * Revert "localMode: Remove local mode from device-config" [Cameron Diver] ## 8.7.1 - 2018-12-13 * Fix sync.js after move to balena-sync [Cameron Diver] ## 8.7.0 - 2018-12-12 * Dindctl: Allow mounting a backup.tgz to test migration backups [Pablo Carranza Velez] * Add the ability to restore volumes from a backup.tgz in the data partition [Pablo Carranza Velez] ## 8.6.11 - 2018-12-12 * Update lodash to v4.17.5 [Pablo Carranza Velez] * Remove the unused register-coffee-coverage [Pablo Carranza Velez] * Update knex to 0.15.2 and sqlite3 to 4.0.4 [Pablo Carranza Velez] * Sync.js: Switch from resin-sync to balena-sync [Pablo Carranza Velez] ## 8.6.10 - 2018-12-11 * Fix typo that prevented deleting old resin/ supervisor images [Pablo Carranza Velez] ## 8.6.9 - 2018-12-11 * Versionbot: Add changelog yml file [Giovanni Garufi] ## 8.6.8 - 2018-12-07 * Api: Ensure Supervisor API returns IP addresses [Heds Simons] ## 8.6.7 - 2018-12-04 * Update docker-progress to reduce memory usage when pulling images [Cameron Diver] ## 8.6.6 - 2018-12-04 * Docs: Clarify Supervisor envvars exposure via label [Heds Simons] ## 8.6.5 - 2018-12-04 * Update mixpanel node dependency, to pick up path changes [Cameron Diver] ## 8.6.4 - 2018-11-30 * Docs: Clarify that older supervisors use RESIN_ variables [Pablo Carranza Velez] ## 8.6.3 - 2018-11-29 * Unmanged: Don't require a device name when setting a target state [Cameron Diver] * LocalMode: Remove local mode from device-config [Cameron Diver] ## 8.6.2 - 2018-11-28 * Compose: Fix network option field names and update dockerode types [Cameron Diver] ## 8.6.1 - 2018-11-28 * Fix: When updating from a legacy supervisor, use updated resource ids and image URL from the API [Pablo Carranza Velez] ## 8.6.0 - 2018-11-28 * Device-api: Add container id endpoint [Cameron Diver] ## 8.5.1 - 2018-11-28 * Convert network module to typescript [Cameron Diver] * Update network-checker to pick up typings [Cameron Diver] * Fix return type for blinking instantiation function [Cameron Diver] ## 8.5.0 - 2018-11-28 * Config: Set default apiKey of empty string to avoid undefined keys [Cameron Diver] * Allow local mode to be controlled via config.json [Cameron Diver] * Don't start connectivity check when in offlineMode [Cameron Diver] * Improve UX when apps.json is not present [Cameron Diver] * Config: Switch default device type to `unknown` [Cameron Diver] * Handle empty apiEndpoint when detecting mixpanel host [Cameron Diver] * Fix: Set default apiEndpoint to empty [Cameron Diver] ## 8.4.3 - 2018-11-27 * Compose: Set default config for stopSignal to SIGTERM [Shaun Mulligan] * Compose: Change default stop signal from '' to SIGTERM [Shaun Mulligan] ## 8.4.2 - 2018-11-26 * Pin event-stream to avoid picking up vulnerable flatmap-stream [Cameron Diver] ## 8.4.1 - 2018-11-22 * Compose: Change default grace period to 10s [Cameron Diver] ## 8.4.0 - 2018-11-21 * Add package.lock file [Cameron Diver] * Events: Correctly proxy mixpanel events [Cameron Diver] * Fix m00001 migration by using targetValues [Cameron Diver] ## 8.3.9 - 2018-11-13 * Fix m00001 migration by using targetValues [Cameron Diver] * Appended API example [hippolyt] ## 8.3.8 - 2018-11-06 * Let typescript do the json resolution so we get proper types [Pagan Gazzard] ## 8.3.7 - 2018-11-06 * Update coffee-script to coffee-script 1.12 [Pagan Gazzard] ## 8.3.6 - 2018-11-06 * Tests: Increase timeout for test suites [Cameron Diver] ## 8.3.5 - 2018-11-06 * Doc: Add documentation for supervisor endpoints added after v7 [Cameron Diver] ## 8.3.4 - 2018-11-06 * Remove unused dependencies [Pagan Gazzard] ## 8.3.3 - 2018-11-06 * Remove ts-node from test process [Cameron Diver] ## 8.3.2 - 2018-11-06 * Remove node garbage collection flags [Cameron Diver] ## 8.3.1 - 2018-11-05 * Fix migrations/jsonstream custom resolvers on windows [Pagan Gazzard] ## 8.3.0 - 2018-11-05 * Device-api: Also support serviceName in v2 service endpoints [Cameron Diver] ## v8.2.4 - 2018-11-05 * Remove some type casts [Pagan Gazzard] * Remove versionist from package.json, it's handled by versionbot [Pagan Gazzard] ## v8.2.3 - 2018-11-02 * Update to typescript 3 [Pagan Gazzard] ## v8.2.2 - 2018-11-02 * Update to resin-lint 2 and add a precommit hook for prettier [Pagan Gazzard] * Run resin-lint for both coffee and typescript [Pagan Gazzard] ## v8.2.1 - 2018-11-02 * Add a .resinci.yml to disable regular docker and npm builds [Pablo Carranza Velez] ## v8.2.0 - 2018-11-02 * Remove unused codepaths that do deltas from resin/scratch [Pablo Carranza Velez] * Rename most of the documentation and variable names from resin to balena [Pablo Carranza Velez] ## v8.1.0 - 2018-11-01 * Remove a deprecated debian repository from the aarch64 node image (used only at build-time) [Pablo Carranza Velez] * When updating from resin-supervisor to balena-supervisor, try to delete old resin-supervisor images [Pablo Carranza Velez] * Rename package to balena-supervisor and push to balena repos in DockerHub [Pablo Carranza Velez] ## v8.0.0 - 2018-11-01 * Api-binder: Use API v5 [Akis Kesoglou] ## v7.25.13 - 2018-10-31 * Fix: When calling the /v1/update endpoint, always trigger a target state apply [Pablo Carranza Velez] ## v7.25.12 - 2018-10-31 * Fix: Properly check for the balena-api label to inject the API key env vars [Pablo Carranza Velez] ## v7.25.11 - 2018-10-31 * Fix: When setting target state, delete old apps from the same source [Pablo Carranza Velez] ## v7.25.10 - 2018-10-25 * Test: Use longer delays in logger tests [Pablo Carranza Velez] ## v7.25.9 - 2018-10-25 * Update docker-delta to v2.2.2 [Pablo Carranza Velez] ## v7.25.8 - 2018-10-23 * ApplicationManager: when comparing images to save metadata, take docker image ids into account [Pablo Carranza Velez] * Entry.sh: Use symbolic link to link to legacy lock path [Pablo Carranza Velez] ## v7.25.7 - 2018-10-23 * Circle.yml: Only push tagged images on tagged commits [Pablo Carranza Velez] ## v7.25.6 - 2018-10-23 * Fix: Use fat arrow for cleanup method [Cameron Diver] * Fix: Run checkTruthy on config values before using them [Cameron Diver] ## v7.25.5 - 2018-10-22 * Fix: Properly get the config from target state before comparing during initial config reporting [Pablo Carranza Velez] ## v7.25.4 - 2018-10-20 * Fix: When checking for legacy containers, properly get the labels from config [Pablo Carranza Velez] * Fix: Avoid trying to report duplicated values in initial config [Pablo Carranza Velez] ## v7.25.3 - 2018-10-20 * Fix: Store and retrieve device config without namespaces [Pablo Carranza Velez] ## v7.25.2 - 2018-10-19 * Keep defaulting tty to true to avoid accidental breakage [Pablo Carranza Velez] ## v7.25.1 - 2018-10-19 * Fix preloading in flasher images by reading apps.json if target hasn't been set [Pablo Carranza Velez] ## v7.25.0 - 2018-10-18 * DeviceConfig: allow BALENA_ config variables [Pablo Carranza Velez] ## v7.24.1 - 2018-10-18 * Fix: Add typescript cast to fix type error [Cameron Diver] * Fix: Remove debugging console logs [Cameron Diver] * Fix: Apply default config options when they're falsy [Cameron Diver] * Fix: Always set the container name when generating creation options [Cameron Diver] ## v7.24.0 - 2018-10-18 * Config: Allow atomic config.json writes on balenaOS [Pablo Carranza Velez] * Network: Ignore resin-redsocks and balena-redsocks when reporting IP addresses [Pablo Carranza Velez] * Use the DOCKER_SOCKET env var for the user container's balena socket mount [Pablo Carranza Velez] ## v7.23.0 - 2018-10-18 * Service: Fix device name env vars by injecting and filtering in the interface with docker [Pablo Carranza Velez] * ServiceManager: add BALENA_DEVICE_NAME_AT_INIT to injected env vars [Pablo Carranza Velez] * Replace io.resin labels (and their env vars) with io.balena equivalents [Pablo Carranza Velez] ## v7.22.0 - 2018-10-17 * Make handover-complete an alternative to the resin-kill-me file [Pablo Carranza Velez] * Move the handover and lock files to /tmp/balena, rename them, and add BALENA_ env vars [Pablo Carranza Velez] ## v7.21.5 - 2018-10-16 * Disable express' x-powered-by header [Pagan Gazzard] ## v7.21.4 - 2018-10-16 * Fix: overlay compose fields on image for healthcheck [Cameron Diver] * Fix: Remove support for broken storageOpt option [Cameron Diver] ## v7.21.3 - 2018-10-15 * Deltas: Bump docker-progress to pick up support for balena-engine [Cameron Diver] ## v7.21.2 - 2018-10-15 * Remove a few blacklisted config.txt options [Zubair Lutfullah Kakakhel] ## v7.21.1 - 2018-10-15 * Fix: Return void from config setter [Cameron Diver] * Fix: Don't assume config is defined for legacy images in logger [Cameron Diver] ## v7.21.0 - 2018-10-13 * Device-api: Add supervisor version endpoint [Cameron Diver] * State: Don't consider local mode when storing state [Cameron Diver] * Local mode: Add local mode manager module to handle cleanup [Cameron Diver] * Logger: Enforce timestamp value to avoid logging server 400 errors [Cameron Diver] * Add logging endpoint to supervisor [Cameron Diver] * Support local logging via standard logging interface [Cameron Diver] * Support setting target state in local mode from supervisor API [Cameron Diver] * Add several local mode enabling endpoints [Cameron Diver] * Correctly type service-manager logger and event tracker fields [Cameron Diver] * Don't set empty target state in local mode [Cameron Diver] ## v7.20.0 - 2018-10-08 * Fix: Correctly handle array based network definitions for service [Cameron Diver] * Fix: Only join the default network when creating the container [Cameron Diver] * Compose: Support changing the tty option for compose services [Cameron Diver] * Types: Remove temporary Service type in favour of actual compose class [Cameron Diver] * Compose/service: Convert module to typescript and add network config [Cameron Diver] * Compose: Support more network creation options [Cameron Diver] * Refactor: Split Networks class to Network and NetworkManager [Cameron Diver] ## v7.19.7 - 2018-09-13 * Logger: Fix reporting the configuration change variables [Cameron Diver] ## v7.19.6 - 2018-09-13 * Lib/errors: Improve typings by extending Error class for predicates [Cameron Diver] ## v7.19.5 - 2018-09-12 * Fix: Use throttle not debounce when ensuring we don't spam mixpanel [Cameron Diver] ## v7.19.4 - 2018-09-05 * Fix: Don't send internal state tracking information to the API [Cameron Diver] ## v7.19.3 - 2018-09-04 * Fix: Fix event-tracker being passed no options object [Cameron Diver] * Fix: Import logger properly and add startup test [Cameron Diver] * Events: Report supervisor version with any mixpanel events [Cameron Diver] * Events: Add rate limiting based on event name when reporting to mixpanel [Cameron Diver] * Memory: Reduce memory usage by applying node command line flags [Mathew Heard] ## v7.19.2 - 2018-09-04 * Fix: Add es2015 lib to tsconfig.json [Cameron Diver] * Refactor: Use Dictionary type in ports module [Cameron Diver] * Fix: Respect logging enabling on instantiation of logger [Cameron Diver] * Fix: Change import of ports module to be extensionless in tests [Cameron Diver] * Refactor: Convert logging module to typescript [Cameron Diver] * Types: Add global typings file containing Dictionary type [Cameron Diver] * Refactor: Make exported log-types implement interface [Cameron Diver] * Refactor: Convert event tracker module to typescript [Cameron Diver] ## v7.19.1 - 2018-08-29 * Fix: Dont bind service class methods in declaration [Cameron Diver] ## v7.19.0 - 2018-08-29 * Housekeeping: Add private:true to package.json [Cameron Diver] * Feature(host_config): Support gpio field as an array [Cameron Diver] ## v7.18.0 - 2018-08-24 * Network: Add MDNS support for `.local` domains #713 [Heds Simons] ## v7.17.1 - 2018-08-17 * Ux: Warn on invalid device name when trying to start a service #729 [Cameron Diver] ## v7.17.0 - 2018-08-16 * Fix: Fix importing of service type location #726 [Cameron Diver] * Dev: Add package.json tasks to aid debugging supervisor tests #726 [Cameron Diver] ## v7.16.7 - 2018-08-16 * Update docker-toolbelt to pull in typings #727 [Cameron Diver] * Refactor: Add docker-utils typings #727 [Cameron Diver] * Refactor: Convert log-types module to typescript #727 [Cameron Diver] ## v7.16.6 - 2018-08-13 * Docs: Add documentation for the v2/applications/state endpoint #722 [Cameron Diver] ## v7.16.5 - 2018-08-13 * Fix: Apply device name before generating container config #724 [Cameron Diver] ## v7.16.4 - 2018-08-07 * Fix: Restart a service when it's memory limit changes #721 [Cameron Diver] ## v7.16.3 - 2018-08-01 * Add a backoff mechanism for state reporting errors #715 [Pagan Gazzard] ## v7.16.2 - 2018-07-25 * Fix: Fix scoping issue with variables in service-manager #711 [Cameron Diver] ## v7.16.1 - 2018-07-25 * Dont restart service on device name change #704 [Cameron Diver] ## v7.16.0 - 2018-07-23 * Logger: Add unit tests #701 [Petros Angelatos] * Logger: Remove pubnub leftovers #701 [Petros Angelatos] * Logger: Only send logs produced after attaching #701 [Petros Angelatos] * Logger: Use the new logging backend #701 [Petros Angelatos] ## v7.15.0 - 2018-07-17 * Allow the enabling and disabling of persistent logging via env var #700 [Cameron Diver] * Refactor config code to be consistent in location #700 [Cameron Diver] ## v7.14.1 - 2018-07-16 * Re-enable majority of tests #699 [Cameron Diver] ## v7.14.0 - 2018-07-12 * Remove resinApiEndpoint meta-endpoint and use config.json entry instead #692 [Cameron Diver] ## v7.13.3 - 2018-07-12 * Correctly apply current commit value to applications #691 [Cameron Diver] ## v7.13.2 - 2018-07-09 * Fix typo in config method call #688 [Cameron Diver] ## v7.13.1 - 2018-06-28 * Bind db handle to fn variable #687 [Cameron Diver] ## v7.13.0 - 2018-06-27 * Change config function providers to be mutable #684 [Cameron Diver] ## v7.12.0 - 2018-06-26 * Fix /v1/device endpoint returning null for commit after an update #652 [Cameron Diver] * Add applications state v2 endpoint #652 [Cameron Diver] * Move compose types to ./types and add partial definitions for compose modules #652 [Cameron Diver] * Move v2 endpoints to separate module #652 [Cameron Diver] * Refactor v1 api into seperate modules #652 [Cameron Diver] ## v7.11.3 - 2018-06-25 * Add fromDockerOpts and normalization to PortMap class, and use in fromContainer #655 [Cameron Diver] * Store port ranges as ranges, to reduce memory usage #655 [Cameron Diver] ## v7.11.2 - 2018-06-18 * Convert config module to typescript #682 [Cameron Diver] * Convert fs-utils module to typescript #682 [Cameron Diver] * Convert os-release module to typescript #682 [Cameron Diver] * Convert supervisor_version module to typescript, and add typings for json #682 [Cameron Diver] * Convert db module to typescript #682 [Cameron Diver] ## v7.11.1 - 2018-06-14 * Show better UX when a delta download fails because the image is processing #680 [Cameron Diver] * Upgrade TypedError and move docker-utils error to error module #680 [Cameron Diver] ## v7.11.0 - 2018-06-13 * Pin a device to a commit when preload has a pinDevice field #669 [Cameron Diver] ## v7.10.2 - 2018-06-11 * Fix typo in EEXIST error predicate #677 [Cameron Diver] ## v7.10.1 - 2018-06-11 * Convert iptables module to typescript #641 [Cameron Diver] * Convert errors module to typescript #641 [Cameron Diver] ## v7.10.0 - 2018-06-06 * Move config backend code out to classes which implement a common base #672 [Cameron Diver] * Add support for extlinux configuration files #672 [Cameron Diver] * Move boot config related code to config-utils module #672 [Cameron Diver] * Add types for fs-utils module #672 [Cameron Diver] ## v7.9.1 - 2018-05-29 * Update update-locking documentation #667 [Cameron Diver] ## v7.9.0 - 2018-05-23 * Add support for Balena deltas #632 [Akis Kesoglou] * Log delta debugging information #632 [Akis Kesoglou] ## v7.8.0 - 2018-05-23 * Check against application source for target applications #662 [Cameron Diver] * Add migration for source field to be added to app table #662 [Cameron Diver] ## v7.7.2 - 2018-05-22 * Ignore leading and trailing whitespace when parsing env vars #665 [Cameron Diver] ## v7.7.1 - 2018-05-21 * Don't generate config fields in offline mode #651 [Cameron Diver] ## v7.7.0 - 2018-05-18 * Add support for changing config.txt on balena fin devices #663 [Pablo Carranza Velez] ## v7.6.0 - 2018-05-16 * Change intialConfigReported value to be an api endpoint #657 [Cameron Diver] ## v7.5.6 - 2018-05-14 * Update gitignore to ignore new test files #653 [Cameron Diver] ## v7.5.5 - 2018-05-11 * Update docs with multicontainer API breakages #654 [Tim Perry] ## v7.5.4 - 2018-05-11 * Fix handling of systemd errors when polling for log to display #612 [Cameron Diver] ## v7.5.3 - 2018-05-02 * Add typescript linting to supervisor tests #638 [Cameron Diver] * Convert conversions module to typescript #638 [Cameron Diver] * Move shared types to separate module #638 [Cameron Diver] * Convert blink module to typescript #638 [Cameron Diver] * Convert lib/constants module to typescript #638 [Cameron Diver] * Type parameters for validation functions better #638 [Cameron Diver] ## v7.5.2 - 2018-05-01 * Add some more unit tests to the multicontainer supervisor #519 [Pablo Carranza Velez] ## v7.5.1 - 2018-04-29 * Remove trailing slashes from working directories of services #637 [Cameron Diver] ## v7.5.0 - 2018-04-27 * Add tests for validation code #636 [Cameron Diver] * Start initial typescript conversion, and add validation debugging #636 [Cameron Diver] ## v7.4.4 - 2018-04-23 * Use resinos-in-container for the development dind supervisor #630 [Pablo Carranza Velez] ## v7.4.3 - 2018-04-19 * On startup, only attach to logs for running containers, and remove any containers marked as dead #625 [Pablo Carranza Velez] ## v7.4.2 - 2018-04-18 * Properly propagate delta failure #628 [Akis Kesoglou] ## v7.4.1 - 2018-04-11 * Allow services (and their images) to expose udp ports besides tcp #622 [Pablo Carranza Velez] ## v7.4.0 - 2018-04-11 * Add ability to use self-signed CAs passed via `config.json`. #602 [Heds Simons] ## v7.3.0 - 2018-04-10 * Move to Node 6.13.1. #624 [Heds Simons] ## v7.2.0 - 2018-04-04 * Run test suite on CI #616 [Cameron Diver] * Add mocha to enable unit testing #616 [Lucian Buzzo] * Fix regex for parsing memory numbers #616 [Cameron Diver] ## v7.1.24 - 2018-03-29 * Respond to reboot and shutdown endpoints with a success object #608 [Cameron Diver] ## v7.1.23 - 2018-03-29 * Avoid weird cwd errors when dist does not exist with sync #606 [Cameron Diver] ## v7.1.22 - 2018-03-29 * Back off fetching the target state exponentially, for faster retries when there's no connectivity #596 [Pablo Carranza Velez] ## v7.1.21 - 2018-03-27 * Handle incorrectly parsed env vars from docker inspect #605 [Cameron Diver] ## v7.1.20 - 2018-03-22 * Replace the gosuper component with a node module that handles communication with systemd, and stop using an init system in the supervisor container #592 [Pablo Carranza Velez] ## v7.1.19 - 2018-03-22 * Remove any leftover knex migrations locks before running migrations #599 [Pablo Carranza Velez] ## v7.1.18 - 2018-03-19 * Trim whitespace from the hostname file on the host before passing it as the hostname for containers with host network #595 [Pablo Carranza Velez] ## v7.1.17 - 2018-03-19 * Document that the update lock can be forced on reboots and shutdowns #591 [Pablo Carranza Velez] * Force reboots and shutdowns if lock override is enabled #591 [Pablo Carranza Velez] ## v7.1.16 - 2018-03-16 * In /v1/apps/:appId/stop, wait for the service to exit before responding #593 [Pablo Carranza Velez] ## v7.1.15 - 2018-03-15 * Automation: Use ssh instead of https to PR to meta-resin #572 [Pablo Carranza Velez] ## v7.1.14 - 2018-03-15 * Avoid trying to clean up the supervisor image if it has several tags (even though it would never succeed) #589 [Pablo Carranza Velez] ## v7.1.13 - 2018-03-15 * Fix typo passing apiKey to the resin API client when exchanging apikeys #588 [Pablo Carranza Velez] * Fix the check for whether the device is provisioned by correctly getting registered_at and deviceId from config.json into the ApiBinder #588 [Pablo Carranza Velez] ## v7.1.12 - 2018-03-15 * Compose: Use the hostname on the host as default hostname for services with host network mode #586 [Pablo Carranza Velez] * Pass the correct working_dir to the container config, and compare containers for working dir changes #586 [Pablo Carranza Velez] ## v7.1.11 - 2018-03-14 * DeviceConfig: avoid trying to enable or disable the VPN when in offline mode #585 [Pablo Carranza Velez] ## v7.1.10 - 2018-03-14 * ApplicationManager: try to match available images by imageId to avoid keeping around unused image entries in the db #584 [Pablo Carranza Velez] * Compose: Emit a change event when a container is renamed, so that the updated imageId and releaseId are reported #584 [Pablo Carranza Velez] ## v7.1.9 - 2018-03-13 * Skip taking the lock when updating the releaseId or imageId for a service that comes from a legacy supervisor #581 [Pablo Carranza Velez] * When migrating from legacy supervisors, mark the temporary composition as legacy #581 [Pablo Carranza Velez] ## v7.1.8 - 2018-03-13 * Avoid trying to send a response to API calls after we've already sent an error #579 [Pablo Carranza Velez] * Fix passing a target service to start in /v1/apps/:appId/start, and getting the containerId #579 [Pablo Carranza Velez] ## v7.1.7 - 2018-03-09 * Gosuper: Treat systemd unit states that are not "inactive" or "deactivating" as enabled states #577 [Pablo Carranza Velez] ## v7.1.6 - 2018-03-09 * Migrations: Use the correct service name for legacy apps #575 [Pablo Carranza Velez] * ApplicationManager: only use dockerImageId to identify images for current apps, to avoid trying to delete an image that is in use #575 [Pablo Carranza Velez] ## v7.1.5 - 2018-03-09 * Fix bug in require for migrations for legacy preload #574 [Cameron Diver] ## v7.1.4 - 2018-03-09 * Compose: fix type error, createVolume returns a promise #571 [Petros Angelatos] ## v7.1.3 - 2018-03-08 * Lib: add missing flag to openAsync() #570 [Petros Angelatos] ## v7.1.2 - 2018-03-08 * Compose: fix volume migration code #569 [Petros Angelatos] ## v7.1.1 - 2018-03-08 * Convert object to array when normalising legacy target apps #568 [Cameron Diver] ## v7.1.0 - 2018-03-07 * Introduce workaround for IPv6 DNS resolution until nodejs becomes RFC 3484 compliant #566 [Petros Angelatos] * Start using an externally built resin/$ARCH-supervisor-base:v1.1.0 as base image, which adds the verbatim option to dns.lookup #566 [Pablo Carranza Velez] ## v7.0.0 - 2018-03-07 * Send logs to the resin API by default #482 [Pablo Carranza Velez] * Implement a new logger that sends logs to the resin API, that can be used optionally instead of PubNub #482 [Pablo Carranza Velez] * Fix the way commands and entrypoints in string form are parsed #482 [Pablo Carranza Velez] * Use a supervisor0 network interface for the supervisor network API. Remove RESIN_APP_COMMIT and RESIN_APP_RELEASE env vars. #482 [Pablo Carranza Velez] * Supervisor API: remove the tcp-ping endpoints #482 [Pablo Carranza Velez] * Remove support for keeping the provisioning apiKey on Resin OS 1.X. Report initial values from config.txt and other device configuration variables to the Resin API. #482 [Pablo Carranza Velez] * Remove all bind mounts that were specific to 1.X devices. Move the resin-kill-me file for the handover strategy to /tmp/resin. Add environment variables for the location of resin-kill-me and the lockfile. Use running containers to determine what services are running instead of storing them in the internal database. Use named volumes for persistent data. #482 [Pablo Carranza Velez] * Allow running docker-compose-like multicontainer applications #482 [Pablo Carranza Velez] * Implement inference of device configuration. Allow array values for dtoverlay and dtparam. #482 [Pablo Carranza Velez] * Infer the current state of the device when applying the target state #482 [Pablo Carranza Velez] * Implement the multicontainer app models, and change the supervisor configuration management to avoid duplication between fields in config.json and fields in the internal database #482 [Pablo Carranza Velez] ## v6.6.9 - 2018-03-05 * Update update-locking.md #565 [zwalchuk] ## v6.6.8 - 2018-02-27 * Allow truthy values for deltas and lock override (i.e. the string 'true' besides '1') #561 [Pablo Carranza Velez] ## v6.6.7 - 2018-02-27 * Since armel builds are disabled, do not pull an armel node base image, and ensure we never deploy an armel supervisor #560 [Pablo Carranza Velez] ## v6.6.6 - 2018-02-27 * Update docker-delta to 2.0.4 #558 [Akis Kesoglou] ## v6.6.5 - 2018-02-21 * Circle.yml: escape branch name to ensure we always have a valid tag #556 [Pablo Carranza Velez] ## v6.6.4 - 2018-02-20 * Circle.yml: Do not push images to dockerhub if building without a docker password #555 [Pablo Carranza Velez] ## v6.6.3 - 2018-02-06 * Update resumable-request to v2.0 #551 [Akis Kesoglou] ## v6.6.2 - 2018-01-24 * Use i386-nlp for supervisor releases for quark boards #549 [Pablo Carranza Velez] ## v6.6.1 - 2018-01-19 * Improve caching in dindctl build and update README #526 [Pablo Carranza Velez] ## v6.6.0 - 2018-01-18 * Implement an API for proxy and hostname configuration, and centralize management of config.json #547 [Pablo Carranza Velez] ## v6.5.9 - 2018-01-12 * Fix saving deviceApiKey to the DB (to fix the RESIN_API_KEY env var) when updating from some older supervisors #544 [Pablo Carranza Velez] ## v6.5.8 - 2018-01-10 * Update docker-toolbelt to v3.2.1 to fix a bug in deltas #543 [Pablo Carranza Velez] ## v6.5.7 - 2018-01-05 * Avoid problems with null app names or invalid container names when migrating from old supervisors #541 [Pablo Carranza Velez] ## v6.5.6 - 2017-12-15 * Update-locking: updating the documentation with extra information and tools #528 [Gergely Imreh] ## v6.5.5 - 2017-12-14 * Update resin-sync to allow syncing to devices that use balena #533 [Pablo Carranza Velez] ## v6.5.4 - 2017-12-14 * Do the webpack build in an amd64 image to improve build times #539 [Pablo Carranza Velez] ## v6.5.3 - 2017-12-12 * Gosuper: When getting IP addresses, ignore balena and the resin-dns bridge #536 [Pablo Carranza Velez] ## v6.5.2 - 2017-12-12 * Dockerfile: improve caching by installing devDependencies before copying the code #535 [Pablo Carranza Velez] ## v6.5.1 - 2017-12-11 * Avoid marking the supervisor as unhealthy if update is not happening because it's in offline mode #534 [Pablo Carranza Velez] ## v6.5.0 - 2017-12-11 * Add a /v1/healthy endpoint that fails if the supervisor is unhealthy, and a HEALTHCHECK command to the Dockerfile that uses it #530 [Pablo Carranza Velez] ## v6.4.9 - 2017-12-11 * Apply config.txt changes when the new config is empty, to fix deleting config.txt values #532 [Pablo Carranza Velez] * Avoid stopping the VPN until a remote target state has been fetched, and retry applying config variables when they fail #532 [Pablo Carranza Velez] ## v6.4.8 - 2017-12-01 * When listenPort is not specified, use 48484 as default #529 [Pablo Carranza Velez] ## v6.4.7 - 2017-11-20 * Sync.js: Fix command to build the source code without optimizations #527 [Pablo Carranza Velez] ## v6.4.6 - 2017-11-10 * Dind: Add a .gitkeep to docker.service.d to avoid dind build errors #525 [Pablo Carranza Velez] ## v6.4.5 - 2017-11-09 * Use uglifyjs-webpack-plugin ^1.0.1 to optimize the supervisor code #524 [Pablo Carranza Velez] ## v6.4.4 - 2017-11-08 * Dindctl: Use balena to refresh the supervisor container #523 [Pablo Carranza Velez] ## v6.4.3 - 2017-11-03 * Use balena 17.06 and resin-base v2.9.2 for the docker-in-docker supervisor #518 [Pablo Carranza Velez] ## v6.4.2 - 2017-11-03 * Avoid an indefinite recursion that grows the call stack when reporting the current state fails #480 [Pablo Carranza Velez] ## v6.4.1 - 2017-11-02 * Improve caching when building gosuper #520 [Pablo Carranza Velez] * Automation: Always try to cache using the latest master build #520 [Pablo Carranza Velez] ## v6.4.0 - 2017-11-01 * Fixes #511, add support for new supervisor image for x86 with quark cpu boards. #512 [Trong Nghia Nguyen] ## v6.3.11 - 2017-11-01 * Add whitelist-based filtering to mixpanel events #500 [Pablo Carranza Velez] * Tunnel all mixpanel events through the resin API #500 [Pablo Carranza Velez] ## v6.3.10 - 2017-10-31 * Use a custom webpack loader to avoid uncaught exceptions from JSONStream #517 [Pablo Carranza Velez] ## v6.3.9 - 2017-10-30 * Avoid fetching an image when it might be available or when starting an app because it might not be necessary #507 [Pablo Carranza Velez] * Refactor container cleanup to remove all spurious containers #507 [Pablo Carranza Velez] * Use container name instead of id to identify apps, and avoid duplicated containers #507 [Pablo Carranza Velez] ## v6.3.8 - 2017-10-30 * If a device is already provisioned but the key exchange fails, retry it until it succeeds #513 [Pablo Carranza Velez] ## v6.3.7 - 2017-10-25 * Change the update retry to back off to the standard update check interval #515 [Pagan Gazzard] ## v6.3.6 - 2017-10-24 * Ensure preloaded apps are properly loaded by setting their internal markedForDeletion to false, and run apps that have it set to null #510 [Pablo Carranza Velez] * Improve the check for when the device has been provisioned but the supervisor doesn't have knowledge of it in its local state #510 [Pablo Carranza Velez] * Ensure preloaded apps get the deviceApiKey in the env vars, and apps never get the provisioning key, and improve detection of cases when the device has been pre-provisioned #510 [Pablo Carranza Velez] ## v6.3.5 - 2017-10-19 * Update docker-toolbelt to fix applying deltas on overlay2 with huge images #509 [Akis Kesoglou] ## v6.3.4 - 2017-10-17 * Delta improvements #504 [Akis Kesoglou] ## v6.3.3 - 2017-10-17 * Update docker-progress to improve identification of Balena #505 [Akis Kesoglou] ## v6.3.2 - 2017-10-11 * Allow specifying a config.json filename in dindctl #503 [Pablo Carranza Velez] * Allow specifying a container name for the docker-in-docker development supervisor #503 [Pablo Carranza Velez] ## v6.3.1 - 2017-10-04 * Update docker-progress #502 [Akis Kesoglou] ## v6.3.0 - 2017-10-03 * Update docker-progress #501 [Akis Kesoglou] ## v6.2.9 - 2017-09-15 * Explicitly define the source for deltas, allow cross-app deltas, and iterate serially through apps when updating #499 [Pablo Carranza Velez] ## v6.2.8 - 2017-09-12 * Fix problem catching errors when killing a container that doesn't exist #496 [Pablo Carranza Velez] ## v6.2.7 - 2017-09-01 * Prefer err.message when reporting errors from dockerode, then err.json and err.reason #490 [Pablo Carranza Velez] ## v6.2.6 - 2017-08-29 * Add a sync.js script to allow syncing a running supervisor container on a local device #494 [Pablo Carranza Velez] ## v6.2.5 - 2017-08-28 * Forward resume options #492 [Akis Kesoglou] ## v6.2.4 - 2017-08-28 * Update docker-progress to v2.6.3 #493 [Pablo Carranza Velez] ## v6.2.3 - 2017-08-26 * Deploy all archs by default to Resin #489 [Akis Kesoglou] ## v6.2.2 - 2017-08-25 * Remove an unnecessary directory from sqlite3 that took 30MB #491 [Pablo Carranza Velez] ## v6.2.1 - 2017-08-18 * Ensure /var/run/resin exists before trying to mount it as tmpfs #486 [Pablo Carranza Velez] ## v6.2.0 - 2017-08-16 * Try to resume the download of a delta if it fails due to flaky network #483 [Akis Kesoglou] ## v6.1.4 - 2017-08-07 * Fix references in deploy-to-resin.js and use github credentials when pushing in pr-to-meta-resin.sh #481 [Pablo Carranza Velez] ## v6.1.3 - 2017-08-03 * Avoid starting apps on startup if device has to reboot due to a configuration change [Pablo Carranza Velez] ## v6.1.2 - 2017-07-27 * When the device is about to reboot or shutdown, close the API server and avoid applying updates [Pablo Carranza Velez] ## v6.1.1 - 2017-07-27 * Avoid unhandled errors when in offline mode due to a missing apiEndpoint [Pablo Carranza Velez] * Do not persist the uuid when in offline mode, so that the supervisor tries to provision if it goes out of offline mode [Pablo Carranza Velez] ## v6.1.0 - 2017-07-27 * Update docker-delta to 1.1.1, docker-toolbelt to 3.0.1, docker-progress to 2.6.0 to add support for deltas and overlay2 [Pablo Carranza Velez] ## v6.0.5 - 2017-07-27 * Allow building the supervisor source without optimizations for easier debugging with dindctl [Pablo Carranza Velez] * Pull the supervisor image if it's not available when running with dindctl [Pablo Carranza Velez] * Fix preloading and parsing of arguments in the dind supervisor [Pablo Carranza Velez] ## v6.0.4 - 2017-07-26 * Fix the message shown when docker gives a 500 error when starting a container [Pablo Carranza Velez] ## v6.0.3 - 2017-07-25 * Use a pinned build of the debian image to build base and gosuper, to avoid unnecessary rebuilds [Pablo Carranza Velez] ## v6.0.2 - 2017-07-24 * Disable armel builds [Pablo Carranza Velez] * Disable pushing to registry.resinstaging.io, and use build environment to login to dockerhub [Pablo Carranza Velez] * Move dindctl to the base of the repository [Pablo Carranza Velez] * Add a script to automate the creation of meta-resin PRs [Pablo Carranza Velez] * Add a deploy-to-resin.js and automatically deploy to the Resin API on master builds [Pablo Carranza Velez] * Use a local supervisor image for the dind supervisor [Pablo Carranza Velez] * Replace the Jenkins build with a CircleCI build that uses the new multi-stage build [Pablo Carranza Velez] * Make dindctl an easier to use tool that takes options instead of using env vars [Pablo Carranza Velez] * Refactor the makefile to make it easier to use and make use of the multi-stage build [Pablo Carranza Velez] * Add a single Dockerfile to build the supervisor as a multi-stage build [Pablo Carranza Velez] ## v6.0.1 - 2017-07-12 * Use webpack to join all modules [Pablo Carranza Velez] ## v6.0.0 - 2017-07-07 * Deprecate edge device type [Joe Roberts] ## v5.1.1 - 2017-07-04 * Fix semver comparison for OS version when determining if the device has deviceApiKey support [Pablo Carranza Velez] ## v5.1.0 - 2017-07-01 * Switch to glide for Go dependencies [Pablo Carranza Velez] * Add support for aarch64 [Pablo Carranza Velez] ## v5.0.2 - 2017-07-01 * Dind: Set DELTA_ENDPOINT, insert variant into os-release, and fix vpn apikeys [Pablo Carranza Velez] ## v5.0.1 - 2017-07-01 * Allow registering the deviceApiKey in a non-compatible OS by making the apiKey equal the deviceApiKey, and add an fsync to all config.json writes [Pablo Carranza Velez] ## v5.0.0 - 2017-06-26 * Remove the undocumented and unused sideload and compose APIs [Pablo Carranza Velez] ## v4.5.0 - 2017-06-26 * Update docker-delta to 1.0.3 to support docker 17 [Pablo Carranza Velez] ## v4.4.2 - 2017-06-26 * Fix provisioning key exchange by passing apikey in the request [Pablo Carranza Velez] ## v4.4.1 - 2017-06-24 * Make cleanup in jenkins build less aggressive, but remove all created tags [Pablo Carranza Velez] ## v4.4.0 - 2017-06-15 * When apiEndpoint is not defined, work in offline mode [Pablo Carranza Velez] * Fix mixpanel initialization when not in offline mode [Pablo Carranza Velez] ## v4.3.2 - 2017-06-14 * Update dependent device DB [Joe Roberts] ## v4.3.1 - 2017-06-13 * Enable SSL when connecting to pubnub [Petros Angelatos] ## v4.3.0 - 2017-06-05 * Switch to generating the BASE_IMAGE_VERSION in the makefile, so that the makefile targets can use an accurate version by default [Pagan Gazzard] ## v4.2.4 - 2017-05-12 * Fix typo in how hostOSVersionPath was camel-cased [Pablo Carranza Velez] ## v4.2.3 - 2017-05-11 * Properly handle errors when requesting deltas [Pablo Carranza Velez] * Add aufs-tools to the dind supervisor for use when running on aufs [Pagan Gazzard] ## v4.2.2 - 2017-04-27 * Only delete the provisioning key if the supervisor is running on an OS that supports using the deviceApiKey [Pablo Carranza Velez] * Avoid writing target device config to DB if it hasn't changed [Pablo Carranza Velez] ## v4.2.1 - 2017-04-26 * Fix an infinite loop that could happen when trying to bootstrap if the key exchange fails [Pagan Gazzard] * Fix the case of being registered with a version of the cli/sdk that does not support device api keys. [Pagan Gazzard] ## v4.2.0 - 2017-04-24 * Add handling for duplicate UUIDs and key exchanging for old user-api-keys [Pagan Gazzard] * Change to the new device registration method to exchange our provisioning key with a dedicated api key for the device. [Pagan Gazzard] * Docs/API.md: Fix documentation command sent via the API proxy for POST /v1/update. [Horia Delicoti] ## v4.1.2 - 2017-04-10 * Issue #420: Avoid supervisor crash without connection by properly memoizing promise-returning functions [Pablo Carranza Velez] * Report the OS variant as a separate field and not as part of the OS version [Pablo Carranza Velez] ## v4.1.1 - 2017-03-30 * Issue #413: Fix an error applying the connectivity check config var [Pablo Carranza Velez] * Issue #410: Cleanup images before running an update, preserving the ones that will be used in the target state [Pablo Carranza Velez] ## v4.1.0 - 2017-03-29 * Authentication credentials for registry and delta server [Andreas Fitzek] * Issue #402: Ensure that app configs are non-null and valid json objects [Pablo Carranza Velez] * Report OS variant to the API together with the OS version [Pablo Carranza Velez] * Issue #230: Add a custom User-Agent header to all requests [Pablo Carranza Velez] * Update waffle badge [Sabith] ## v4.0.0 - 2017-03-09 * Issue #396: Log when we're rebooting due to a device config change [Pablo Carranza Velez] * Issue #20: Change the update lock to a temporary filesystem [Pablo Carranza Velez] * Make local mode only work in development OS, and make it remove app containers and allow unauthenticated API requests [Pablo Carranza Velez] * Restore default value when clearing a special action config variable [Pablo Carranza Velez] * Allow all config variables to take truthy or falsy values [Pablo Carranza Velez] * Allow setting the supervisor to a "local mode" which stops apps and prevents cleanup [Pablo Carranza Velez] * Issues #23 and #236: Use docker logs to get all logs from the container, including those before supervisor start [Pablo Carranza Velez] * Issues #389 and #390: Remove /host_run/dbus and /host/var/lib/connman bind mounts for non-ResinOS-1.X devices [Pablo Carranza Velez] * Issue #386: Allow forcing updates when an update was already scheduled [Pablo Carranza Velez] ## v3.0.1 - 2017-02-15 * Issue #381: Set target deviceConfig values from preloaded apps [Pablo Carranza Velez] ## v3.0.0 - 2017-01-18 * Issue #378: Increase delta timeouts (to avoid ESOCKETTIMEOUT errors), make them configurable, and provide nicer message when the delta server times out [Pablo Carranza Velez] * Update versionist to v2.8.0 [Pablo Carranza Velez] * Update docker-progress to v2.3.3 [Pablo Carranza Velez] * Switch to aufs for the docker-in-docker development supervisor [Pablo Carranza Velez] * Do not bind mount kmod if the host is not Resin OS 1.X [Pablo Carranza Velez] ## v2.9.0 - 2016-12-20 * Bump docker-delta to v1.0.1 to fix deltas on aufs when there's many layers [Pablo Carranza Velez] * Document dependent apps feature [curcuz] ## v2.8.5 - 2016-12-20 * Fix error applying device configuration because deviceConfig table is empty [Pablo Carranza Velez] * Make the base image hash more deterministic [Pablo Carranza Velez] ## v2.8.4 - 2016-12-16 * Use versionist's default configuration [Pablo Carranza Velez] * Build the base image together with the supervisor [Pablo Carranza Velez] * Start using versionist for versioning and changelog [Pablo Carranza Velez] * Bump the MAX_BASIS_DIRS limit for rsync [Michal Mazurek] ## v2.8.3 - 2016-11-23 * Fallback to DROP when iptables REJECT is not available [Pablo Carranza Velez] ## v2.8.2 - 2016-11-07 * Update the supervisor base to 20161103 to include the i386 fix [Pablo Carranza Velez] * Fix an error when trying to call logSystemEvent with an undefined app [Pagan Gazzard] * Fix nodejs for the i386 architectures [Theodor Gherzan] * Provide a better error message when app is not found for purging [Pablo Carranza Velez] * Only iterate through remote apps to set device config [Pablo Carranza Velez] ## v2.8.1 - 2016-10-31 * Properly delete dependent apps and their corresponding devices [Pablo Carranza Velez] ## v2.8.0 - 2016-10-30 * Add HostConfig in container create instead of start [Pablo Carranza Velez] * Make it clear in logs when container was already running [Pablo Carranza Velez] * Stop all apps before rebooting or shutting down [Pablo Carranza Velez] * Update request-progress to v2.0.1 [Pablo Carranza Velez] ## v2.7.1 - 2016-10-24 * Use multiArgs to promisify gosuper requests [Pablo Carranza Velez] * Also make it explicit in mixpanel events when it's a full image download [Pablo Carranza Velez] * Log whether deltas are being used when downloading an app [Pablo Carranza Velez] ## v2.7.0 - 2016-10-23 * Upgrade docker-progress to v2.3.1 [Pablo Carranza Velez] * Fixed multiple update loops appearing after a long period of updates failing. [Pagan Gazzard] * Avoid restarting the app if the device name changes [Pablo Carranza Velez] * Use appId in dependent app assets tar path, and only create the tar if it doesn't exist [Pablo Carranza Velez] * Support AUFS by upgrading node-docker-delta to 1.0.0 and docker-toolbelt to 1.3.0 [Pablo Carranza Velez] * Send the uuid as distinct_id for mixpanel events [Pablo Carranza Velez] * gosuper: support i386 platforms without MMX instructions [Petros Angelatos] ## v2.6.3 - 2016-10-13 * Properly set device name, and set undefined arguments to setConfig as null [Pablo Carranza Velez] ## v2.6.2 - 2016-10-11 * Updated knex to ~0.12.3 ## v2.6.1 - 2016-10-11 * Do not use parsed JSON to compare dep. device state [Pablo Carranza Velez] ## v2.6.0 - 2016-10-10 * Fix docker utils getImageEnv by correctly parsing the returned array [Pablo Carranza Velez] * Avoid installing npm dependencies twice [Pablo Carranza Velez] * Updated to bluebird 3 [Pagan Gazzard] * Better parameter handling in PUT /v1/devices/:uuid [Pablo Carranza Velez] * An update hook response of 200 will cause the proxyvisor to stop pinging the hook [Pablo Carranza Velez] * Allow deleting dependent apps and devices [Pablo Carranza Velez] * Implement delete dependent device hook [Pablo Carranza Velez] * Omit some fields when responding with a device object [Pablo Carranza Velez] * Add validation to dependent device provisioning [Pablo Carranza Velez] ## v2.5.2 - 2016-10-07 * Removed obsolete resolv.conf bind-mount [Petros Angelatos] * Updated to pinejs-client 2 [Pagan Gazzard] ## v2.5.1 - 2016-10-06 * Store config vars when there's nothing else to update [Pablo Carranza Velez] * Do not mark an update as failed if the hook failed [Pablo Carranza Velez] * When hitting the dependent devices hook, send appId as int [Pablo Carranza Velez] * Updated to lodash 4 [Pagan Gazzard] * Updated to coffeescript 1.11 [Pagan Gazzard] * In delete-then-download, only delete when a download is needed [Pablo Carranza Velez] * Compare config vars to trigger an app restart [Pablo Carranza Velez] * Fix disabling logs to display on newer OS with different service name [Pablo Carranza Velez] * In cleanup, normalize all image tags for comparison [Pablo Carranza Velez] * Use getRegistryAndName from docker-toolbelt 1.2.0 [Pablo Carranza Velez] ## v2.5.0 - 2016-10-01 * Switch to v2 api to be able to set is_online [Pagan Gazzard] * Implement proxyvisor API with dependent device handling [Pablo Carranza Velez] * Use the state endpoint from the API to get the full device state [Pablo Carranza Velez] * Add a deviceConfig db table to store host config separately, and allow deleting config.txt entries [Pablo Carranza Velez] * Expose RESIN_APP_NAME, RESIN_APP_RELEASE, RESIN_DEVICE_NAME_AT_INIT, RESIN_DEVICE_TYPE and RESIN_HOST_OS_VERSION env vars [Pablo Carranza Velez] * Add missing error handler on a stream in docker-utils [Pablo Carranza Velez] ## v2.4.0 - 2016-09-30 * On cleanup, force removal for images and containers, and remove container volumes [Pablo Carranza Velez] * Add system logs for Shutdown, Reboot and Purge [Pablo Carranza Velez] ## v2.3.0 - 2016-09-26 * Implement delete-then-download update strategy [Pablo Carranza Velez] * Bump node-docker-delta to 0.0.12 [Pablo, Kostas] ## v2.2.1 - 2016-09-26 * Fix ENV bug in build process [Petros Angelatos] ## v2.2.0 - 2016-09-23 * Add resin-vpn interface IP filtering to gosupervisor [Praneeth] * Compress go binary with upx [Petros Angelatos] * Switch to go version 1.6 [Petros Angelatos] * Print all logs to stdout of container instead of file [Petros Angelatos] * Upgrade nodejs to version 6.5 [Petros Angelatos] * Switch initsystem from supervisor to busybox init [Petros Angelatos] * Switch build to openembedded base images [Petros Angelatos] * DRY up calls to gosuper API, and use empty Host header [Pablo Carranza Velez] ## v2.1.1 - 2016-09-09 * Add iptables rules to allow resin-vpn named interface to be used by VPN [Praneeth] * Updated to coffee-script ~1.10.0 [Pagan Gazzard] * Catch exec format error and provide friendlier error message [Aleksis] ## v2.1.0 - 2016-09-05 * Pick up new variable from hostOS, pointing to the mount point of the hostOS's boot partition [Theodor Gherzan] ## v2.0.0 - 2016-08-31 * **[Breaking]** Change the logger to send at a specific interval and with a different message format [Pablo Carranza Velez] ## v1.14.0 - 2016-08-16 * Allow using an HTTP header for auth [Pablo Carranza Velez] * Add iptables rules to block requests to the supervisor API from all interfaces except vpn, docker and local [Pablo Carranza Velez] ## v1.13.2 - 2016-08-09 * bootstrap: if offlineMode is enabled, persist only the uuid [Petros Angelatos] ## v1.13.1 - 2016-07-28 * Using `links` in compose files is now allowed [Petros Angelatos] ## v1.13.0 - 2016-07-27 * Allow the supervisor to work in offline mode [Pablo Carranza Velez] * Fix duplicate logs issue [Kostas Lekkas] * **[Breaking]** Do not bind mount /run/dbus to /run/dbus [Pablo Carranza Velez] * Default to not bind mounting kmod if container distro can't be found [Pablo Carranza Velez] * Use log-timestamp to add timestamps to logs [Pablo Carranza Velez] ## v1.12.2 - 2016-07-15 * Bind mount kmod if the container is debian or raspbian [Pablo Carranza Velez] ## v1.12.1 - 2016-07-08 * Fix preloaded apps by passing appId to extendEnvVars ## v1.12.0 - 2016-06-28 * Add endpoints for docker-compose up and down [Pablo Carranza Velez] ## v1.11.6 - 2016-06-23 * Fixed deltas for older docker daemon versions [Petros Angelatos] ## v1.11.5 - 2016-06-23 * Fix entry.sh when DOCKER_ROOT isn't set [Pagan Gazzard] ## v1.11.4 - 2016-06-17 * Cleanup docker images if delta failed [Petros Angelatos] * Make the data path configurable [Pablo Carranza Velez] ## v1.11.3 - 2016-06-11 * Add listener for container events and reattach on restart [Pablo Carranza Velez] * fix deltas by not using the supervisor as source [Pablo Carranza Velez] ## v1.11.2 - 2016-06-10 * fix delta error handling by listening for the 'error' event [Petros Angelatos] ## v1.11.1 - 2016-06-09 * Use sh for postinstall as alpine has no bash [Pablo Carranza Velez] * update docker-delta to 0.0.8 [Petros Angelatos] * symlink docker root to default path if not already there [Petros Angelatos] ## v1.11.0 - 2016-06-07 * Add restart policies and change default to auto-restart [Aleksis] ## v1.10.1 - 2016-06-07 * Switch to docker-delta library to use deltas v2 [Petros Angelatos] * Correctly compare container image name on cleanup [Pablo Carranza Velez] * Log useful supervisor info to stdout/stderr [Kostas Lekkas] ## v1.10.0 - 2016-05-26 * Fix progress bars on docker version 1.10 [Aleksis] ## v1.9.0 - 2016-05-24 * Fix reporting of supervisor version for alpine supervisor [Pablo Carranza Velez] * Use rwlock to block when pulling images [Pablo Carranza Velez] * Increase API timeout to 15 minutes, and make it configurable [Pablo Carranza Velez] * Add endpoint to load images from a docker save tar [Pablo Carranza Velez] * Add alpine supervisor build information [Trong] * Add endpoints to manage images and containers locally [Pablo Carranza Velez] * Only use bodyParser for endpoints that need it [Pablo Carranza Velez] * Add RESIN_APP_ID variable [Pablo Carranza Velez] * Increase delta request timeout to 15 minutes [Pablo Carranza Velez] ## v1.8.0 - 2016-04-25 * Add endpoints to start, stop and get app [Pablo, Kostas] * Removed a bunch ofobsolete code for the old terminal, reducing the supervisor size considerably. [Pagan Gazzard] ## v1.7.0 - 2016-03-28 * Add RESIN_HOST_LOG_TO_DISPLAY variable [Pablo Carranza Velez] * Add system logs for special actions and host config [Pablo Carranza Velez] * Fix setting config.txt for RPi 3 [Pablo Carranza Velez] * Fix saving config vars to DB before reboot [Pablo Carranza Velez] * Bind mount host /var/lib/connman to application /host_var/lib/connman [Aleksis] * Add RESIN_SUPERVISOR_DELTA to special list so that app is not restarted when it changes [Pablo Carranza Velez] ## v1.6.1 - 2016-03-08 * Reduce noise in logs [Kostas Lekkas] ## v1.6.0 - 2016-02-22 * Add endpoint to get device state [Pablo Carranza Velez] * Check for valid strings or ints in all config values [Pablo Carranza Velez] * Remove quotes in OS version [Pablo Carranza Velez] ## v1.5.0 - 2016-02-09 * Add support for delta image download [petrosagg and Pablo] ## v1.4.0 - 2016-01-28 * Report Host OS version to the API [Pablo Carranza Velez] * Use _.defaults instead of _.extend to ensure internal env vars are not overwritten [Pablo Carranza Velez] * Expose resin API key to apps [Pablo Carranza Velez] * On download start, set download_progress to 0. On finish, set state to Idle [Pablo Carranza Velez] * Set GOARM separately for each architecture [Pablo Carranza Velez] * Add armv5 (armel) build [Trong] * Add OOM protection for the supervisor container, openvpn and connmand [Praneeth] ## v1.3.2 - 2015-12-17 * Do not report the tun addresses to API [Praneeth] ## v1.3.1 - 2015-12-07 * Only save the app if starting the container was successful [Pablo Carranza Velez] ## v1.3.0 - 2015-12-01 * Remove volumes when removing a container [Pablo Carranza Velez] * Refactor the still undocumented special env vars into RESIN_SUPERVISOR_ [Pablo Carranza Velez] * Implement several update strategies (kill before download, 0-downtime) [Pablo Carranza Velez] * Fix the error that comes up when no ip addresses are returned by gosuper [Praneeth] * Switched to docker-progress for pull progress. [Pagan Gazzard] * Fix semver versioning in tcp-ping endpoint. [Praneeth] ## v1.2.1 - 2015-11-04 * Use random name for PubNub channel and report to API [Pablo Carranza Velez] ## v1.2.0 - 2015-10-16 * Don't bind mount (the sometimes non-existent) docker.sock [Pablo Carranza Velez] * Expose a RESIN_SUPERVISOR_VERSION env var to app [Pablo Carranza Velez] ## v1.1.1 - 2015-10-15 * Prevent non-fatal errors from causing the supervisor to exit [Lorenzo] * Use buildtime env vars as the default Pubnub and Mixpanel keys [Pablo Carranza Velez] ## v1.1.0 - 2015-10-09 * Switch back to using arch-based node images [Pablo Carranza Velez] * Don't allow bootstrap to delete apiSecret from DB [Pablo Carranza Velez] * Add API endpoint to expire and create new API key [Pablo Carranza Velez] * Enable control of API poll interval through Device Variables [Praneeth] * Allow control of VPN + TCP check + Pub nub logs with Device Environment variables [Praneeth] * Add GO api for openvpn control [Praneeth] ## v1.0.2 - 2015-10-08 * Fix getting API key from DB by returning its .value [Pablo Carranza Velez] ## v1.0.1 - 2015-10-07 * Pass supervisor API key to app, don't regenerate the key, and authenticate ALL requests [Pablo Carranza Velez] * Use raspberrypi2 base image for armv7hf [Pablo Carranza Velez] * Bugfix: wrap all errors from update as Error objects - prevents image cleanup on download failures [Pablo Carranza Velez] * Wait 10 seconds after sending SIGTERM and before sending SIGKILL when stopping a container [Petros Angelatos] ## v1.0.0 - 2015-10-02 * Expose supervisor API to app by allowing all requests from 127.0.0.1 and passing address and port as env vars [Pablo Carranza Velez] * Only apply special actions / boot config on change, and always persist to DB [Pablo Carranza Velez] ## v0.0.18 - 2015-10-01 * Fix preloaded apps so that they have the complete environment [Pablo Carranza Velez] ## v0.0.17 - 2015-09-29 * Updated bases image to board-specific, and all node versions to 0.10.40-slim [Pablo Carranza Velez] * Allow changing RPi config.txt with environment variables [Pablo Carranza Velez] * Allow special env vars with a callback which don't cause an app restart [Pablo and Praneeth] * Remove unused config.supervisorContainer in config.coffee [Praneeth] * Implement and use golang endpoint for getting IPs of the device, also fixes duplicate IP reporting in the JS implementation [Praneeth] * Refactor bootstrapping to run in background [Pablo Carranza Velez] * Run preloaded app images [Pablo Carranza Velez] * Add API endpoints for device reboot and shutdown [Pablo Carranza Velez] * Add /restart endpoint to restart container [Pablo Carranza Velez] * Add additional mount point for the host dbus on host_run/dbus [Praneeth] * Switch to golang 1.5.1 for compiling [Praneeth] * Allow /purge to be called with appId as string or number [Pablo Carranza Velez] * Fetch containerId from DB within lock [Pablo Carranza Velez] * Change update cycle to map by appId [Pablo Carranza Velez] * Allow updates to be forced via an env var or an API call [Pablo Carranza Velez] * Use lockfile to lock updates per app [Pablo Carranza Velez] ## v0.0.16 - 2015-09-07 * Disabled the TCP ping whilst the VPN is connected. [Praneeth] * Added TCP ping enable/disable endpoints. [Praneeth] * Added initial go supervisor, using it to purge the /data directory of apps. [Pablo Carranza Velez] * Mounted /lib/firmware into the user container. [Pablo Carranza Velez] * Fixed spaces in env vars for web terminal. [Petros] * Added missing return when no app id specified. [Pablo Carranza Velez] * Try to populate the docker cache before building. [Pagan Gazzard] ## v0.0.15 - 2015-07-23 * Make resolv.conf writable from a user container. [Praneeth] * Updated pubnub (3.7.13 doesn't seem to have the heartbeat unnecessarily) * Fixed an issue where an image would not be cleaned up if it was tagged in multiple repos. [Pagan Gazzard] * Use JOBS=MAX for npm install. [Pagan Gazzard] * Updated pinejs-client so that valid ssl certificates are enforced by default. [Pagan Gazzard] * Write the `registered_at` time to config.json as well, in case there is a failure between writing to config.json and writing to knex [Pagan Gazzard] ## v0.0.14 - 2015-05-12 * Clean up tmp files left behind by npm [Pagan Gazzard] * Fix an error where mixpanel events would have the wrong uuid set on first provision. [Pagan Gazzard] * Update knexjs to ~0.8.3, which uses lodash 3 and means it will be deduplicated (reducing image size and runtime memory usage) [Pagan Gazzard] * Stop caching config.json, avoids a race that could cause getting stuck repeatedly trying to register [Pagan Gazzard] ## v0.0.13 - 2015-05-05 * Bind mount /etc/resolv.conf as ro for application containers and supervisor [Praneeth] ## v0.0.12 - 2015-04-15 * Stopped displaying an error message when trying to start a container that is already started. * Improved error messages reported to the user in the case of finding an empty string. * Switched to using the dockerode pull progress mechanism. * Fixed trying to delete supervisor container when it reports an alternate tag instead of the primary tag. * Switched to using the i386-node image as a base for the i386-supervisor * Fixed reporting error objects to mixpanel.