Skip to content

Latest commit

 

History

History
632 lines (379 loc) · 19 KB

CHANGELOG.md

File metadata and controls

632 lines (379 loc) · 19 KB

Change Log

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.

v7.0.0 - 2017-10-12

  • BREAKING: Remove device.ensureSupervisorCompatibility - use semver directly instead #420 [Tim Perry]
  • Fix breaking bugs in device.enable/disableTcpPing #420 [Tim Perry]
  • Make device.update options optional #420 [Tim Perry]
  • BREAKING: Upgrade to API v3. Main change is that all relationships & result properties now include verbs (e.g. device.application is now device.belongs_to__application). #420 [Tim Perry]
  • BREAKING: Tie the SDK to a specific API version (removing apiVersion option) #420 [Tim Perry]
  • BREAKING: Stop actively supporting node 4. #420 [Tim Perry]
  • Change device registration to use a provisioning key #420 [Tim Perry]
  • BREAKING: Remove (already deprecated) models.application.getApiKey() #420 [Tim Perry]
  • BREAKING: Rename getAppWithOwner to getAppByOwner #420 [Tim Perry]
  • BREAKING: Don't allow creating applications with discontinued device types #420 [Tim Perry]
  • Make device.move throw ResinInvalidDeviceType for incompatible device types (not just Error) #420 [Tim Perry]
  • BREAKING: Don't expand relationships by default. Pass { expand: '...' } options to opt in instead. #420 [Tim Perry]
  • BREAKING: Remove device.application_name and device.dashboard_url #420 [Tim Perry]
  • BREAKING: Remove application.online_devices and application.device_length #420 [Tim Perry]

v6.15.0 - 2017-10-12

  • Add application.generateProvisioningKey() #419 [Tim Perry]

v6.14.8 - 2017-10-06

  • Stop requests that don't need auth from failing if you have an invalid token #414 [Tim Perry]

v6.14.7 - 2017-09-29

  • Change GLOBAL to global to avoid deprecation warning with shared options #406 [Tim Perry]

v6.14.6 - 2017-09-28

  • Ensure that npm published files are always built afresh first #404 [Tim Perry]

v6.14.5 - 2017-09-27

  • Explicitly include build output in packaged releases #403 [Tim Perry]

v6.14.4 - 2017-09-26

  • Uncommit (though still publish) generated browser files #401 [Tim Perry]

v6.14.3 - 2017-09-26

  • Fix command PING to work properly #387 [Horia Delicoti]

v6.14.2 - 2017-09-21

  • Improve performance by select only the fields required where possible #396 [Tim Perry]

v6.14.1 - 2017-09-18

  • Update tests to use v2 instead of ewa #360 [Pagan Gazzard]

v6.14.0 - 2017-09-12

  • Add lastOnline() method to device model #373 [Lucian Buzzo]

v6.13.0 - 2017-09-12

  • Add methods for generating an sdk instance using shared options #370 [Lucian Buzzo]

v6.12.1 - 2017-09-11

  • Update to resin-errors v2.9.0 #386 [Thodoris Greasidis]

v6.12.0 - 2017-09-08

  • Add reboot, shutdown and purge methods to application model and throw ResinSupervisorLockedError #379 [MoranF]

v6.11.1 - 2017-09-06

  • Change the Free tier plan title to Personal #375 [Thodoris Greasidis]

v6.11.0 - 2017-09-06

  • Detect Resin OS v1.0.0-pre devices and fill the os_version field #368 [Thodoris Greasidis]

v6.10.1 - 2017-09-06

  • Limit AppVeyor on npm v5.3 #381 [Thodoris Greasidis]

v6.10.0 - 2017-08-31

  • Expose resin-errors directly from the SDK as .errors #366 [Tim Perry]

v6.9.0 - 2017-08-11

  • Add function to allow looking up app based on name and owner username #352 [Cameron Diver]

v6.8.0 - 2017-08-01

  • Add self-billing related methods [Thodoris Greasidis]

v6.7.1 - 2017-07-27

  • Fix keys test after API update [Thodoris Greasidis]

v6.7.0 - 2017-07-20

  • Add the source property to builds [Thodoris Greasidis]

v6.6.1 - 2017-07-10

  • Validate env var names [Tim Perry]

v6.6.0 - 2017-07-05

Added

  • A new method models.application.grantSupportAccess that allows resin.io support staff to access all devices in an application.
  • A new method models.application.revokeSupportAccess that resin.io support staff access on all devices in an application.
  • A new method models.device.grantSupportAccess that allows resin.io support staff to access a device.
  • A new method models.device.revokeSupportAccess that revokes resin.io support staff access to a device.

v6.5.0 - 2017-06-30

Added

  • A new method models.application.enableDeviceUrls that enables URLs for all devices in an application.
  • A new method models.application.disableDeviceUrls that disables URLs for all devices in an application.

v6.4.1 - 2017-05-24

Fixed

  • Don't include .env when publishing to npm
  • Fix condition for travis to publish to npm

v6.4.0 - 2017-05-23

Added

  • Document log subscriptions in detail

Fixed

  • Always choose a production image as the recommended version.
  • Consistently order image versions.

v6.3.1 - 2017-05-11

Fixed

  • Don't refresh tokens when making requests to the image maker

v6.3.0 - 2017-05-11

Fixed

  • Fix documentation for device.getDashboardUrl()
  • Stop config.* methods from refreshing the token (as they don't use it)

Added

  • The method models.os.getConfig() now accepts image configuration options.

v6.2.0 - 2017-05-02

Added

  • Augment returned device object with device dashboard url property (device.dashboard_url)
  • A new method models.os.getConfig() that retrieves an applications configuration as a json object.

Changed

  • Travis now runs builds against commits on master, in addition to PRs, to solve #309

v6.1.0 - 2017-04-26

Added

  • Added a device.generateDeviceKey that can generate a device specific key for use by a device

Changed

  • Tagged commits are now automatically published to npm

v6.0.1 - 2017-04-12

Changed

  • Sort OS versions taking their rev into account, if present

v6.0.0 - 2017-04-07

Changed

  • imageMakerUrl is now set by default when used in the browser

Cumulative recap of previous changes (see betas below) since 5.4.0

Breaking changes

  • Ensure all environmentVariables.device methods return names as .name, never .env_var_name
  • Removed the (already deprecated) resin.models.device.restart() method, in favor of resin.models.device.restartApplication()
  • Changed register() to work with the new device registration flow. register() now returns device registration information ({ id: "...", uuid: "...", api_key: "..." }), but not the full device object.
  • Changed generateUUID() to generateUniqueKey() to reflect that it should now be used for both generating a uuid and an api key.
  • The error message on timeout has changed from "timeout" to "operation timed out". In addition the error thrown is now a Bluebird Promise.TimeoutError, instead of a raw Error.
  • Deprecated resin.models.application.getApiKey() (use .generateApiKey() instead).

Additions

  • Add device.setCustomLocation and device.unsetCustomLocation
  • Expose .pine to more easily allow requests to unsupported resources
  • Add support for the versioned OS downloads, see resin.models.os.{getSupportedVersions, getMaxSatisfyingVersion}.
  • resin.models.os.{getLastModified, download} now support the version param.
  • Add resin.models.os.getDownloadSize.
  • Add device.getAllByParentDevice to allow querying for dependent devices by parent
  • Add an optional parent id to application.create
  • Include update_timestamp in builds from resin.models.build.getAllByApplication()
  • Add resin.models.build.get() to load individual build data
  • Allow arbitrary extra pinejs options in key.getAll, and all build.get*, application.get* and device.get* methods.
  • Update the logs module to provide historySinceLastClear and clear methods.
  • Add resin.models.environmentVariables.device.getAllByApplication
  • Expose the internal resin-request and resin-token instances
  • Add support for hooks to intercept requests, responses, and errors.
  • Allow device & application ids for all methods, in addition to device uuids & application names, if the argument is a number instead of a string.
  • Resin-SDK now works in a browser environment
  • UMD and UMD-minified builds are now available at build/resin-browser.js and build/resin-browser.min.js

Fixes

  • Encode plus symbols in version numbers when estimating the size of OS images
  • Encode plus symbols in version numbers when downloading OS images
  • Add placeholder support for new ResinOS version format to fix resin-cli issues.
  • Fix resin.models.os.getLastModified which was returning invalid dates due to improper usage of the response headers.
  • Fix potential issue with invalid dependencies by requiring resin-pine 5.0.2
  • Ensure passwords are always submitted as strings when authenticating to make this more reliable in real world usage
  • Ensure device/application.get (and related methods) return a clear error if given an undefined argument
  • Ensure device/application.has returns false if passed undefined
  • Corrected environmentVariables.getAll in documentation to .getAllByApplication

v6.0.0-beta10 - 2017-04-06

Changed

  • Encode plus symbols in version numbers when estimating the size of OS images

v6.0.0-beta9 - 2017-04-04

Changed

  • Encode plus symbols in version numbers when downloading OS images

v6.0.0-beta8 - 2017-04-03

Changed

  • Add basic support for new ResinOS version format to fix resin-cli issues.
  • Breaking! Upgrade resin-token to 4.0.0. This changes the browser token key to resin-token, and will drop all browser sessions.
  • Add device.setCustomLocation and device.unsetCustomLocation
  • Expose .pine to more easily allow requests to unsupported resources

v6.0.0-beta7 - 2017-03-23

Changed

  • Fix resin.models.os.getLastModified which was returning invalid dates due to improper usage of the response headers.
  • Add support for the versioned OS downloads, see resin.models.os.{getSupportedVersions, getMaxSatisfyingVersion}.
  • resin.models.os.{getLastModified, download} now support the version param.
  • Add resin.models.os.getDownloadSize.
  • Fix potential issue with invalid dependencies by requiring resin-pine 5.0.2

v6.0.0-beta6 - 2017-03-21

Changed

  • Fix bug that broke device.reboot and device.shutdown with _ is not defined
  • Add device.getAllByParentDevice to allow querying for dependent devices by parent
  • Add an optional parent id to application.create
  • Include update_timestamp in builds from resin.models.build.getAllByApplication()
  • Add resin.models.build.get() to load individual build data
  • Allow arbitrary extra pinejs options in key.getAll, and all build.get*, application.get* and device.get* methods.
  • Ensure passwords are always submitted as strings when authenticating

v6.0.0-beta5 - 2017-03-10

Changed

  • Update the logs module to provide historySinceLastClear and clear methods.
  • Ensure device/application.get (and related methods) return a clear error if given an undefined argument
  • Ensure device/application.has returns false if passed undefined

v6.0.0-beta4 - 2017-02-27

Changed

  • Add resin.models.environmentVariables.device.getAllByApplication
  • Breaking! Ensure all environmentVariables.device methods return names as .name, never .env_var_name

v6.0.0-beta3 - 2017-02-24

Changed

  • Expose the internal resin-request and resin-token instances
  • Corrected environmentVariables.getAll in documentation to .getAllByApplication
  • Add support for hooks to intercept requests, responses, and errors.
  • Deprecated resin.models.application.getApiKey() (use .generateApiKey() instead).
  • Breaking! Removed the (already deprecated) resin.models.device.restart() method, in favor of resin.models.device.restartApplication()
  • Add factory function defaults so all options are optional. Example: require('resin-sdk')();
  • Allow device & application ids for all methods, in addition to device uuids & application names, if the argument is a number instead of a string.

v6.0.0-beta2 - 2017-01-13

Changed

  • Fixed the issue with resin-settings-client not being installed in Node.js
  • Fixed the issue with where the settings.get('apiUrl') was used instead of the provided option.

v6.0.0-beta1 - 2017-01-11

Changed

  • Breaking! Changed register() to work with the new device registration flow. register() now return device registration information ({ id: "...", uuid: "...", api_key: "..." }), but not the full device object.
  • Breaking! Changed generateUUID() to generateUniqueKey() to reflect that it should now be used for both generating a uuid and an api key.
  • Breaking! The error message on timeout has changed from "timeout" to "operation timed out". In addition the error thrown is now a Bluebird Promise.TimeoutError, instead of a raw Error.
  • Resin-SDK now works in a browser environment (experimental)
  • UMD and UMD-minified builds are now available at build/resin-browser.js and build/resin-browser.min.js

v5.4.0 - 2016-10-27

Added

  • Allow passing an optional force option to resin.models.device.reboot() and resin.models.device.shutdown().

v5.3.6 - 2016-09-26

Changed

  • Update pine filter expressions to avoid deprecation warnings.
  • Return full uuid in resin.models.device.getDeviceUrl().

v5.3.5 - 2016-07-26

Changed

  • Upgrade resin-device-logs to v3.0.0.

v5.3.4 - 2016-07-06

Changed

  • Make sure device functions expand shorter UUIDs before passing then to pine.

v5.3.3 - 2016-06-15

Changed

  • Fix bug that caused resin.models.device.move() to not move devices referenced with shorter uuids.

v5.3.2 - 2016-06-09

Changed

  • Increase HTTP timeout for requests that result in container actions.

v5.3.1 - 2016-05-17

Changed

  • Fix a semver issue when checking the supervisor version on supervisor endpoints.

v5.3.0 - 2016-04-26

Added

  • Implement resin.models.device.getApplicationInfo().
  • Implement resin.models.device.startApplication().
  • Implement resin.models.device.stopApplication().
  • Implement resin.models.device.ping().
  • Implement resin.models.device.update().
  • Implement resin.models.device.shutdown().
  • Implement resin.models.device.purge().
  • Implement resin.models.device.enableTcpPing().
  • Implement resin.models.device.disableTcpPing().

Changed

  • Rename resin.models.device.restart() to resin.models.device.restartApplication().
  • Deprecate resin.models.device.restart().

v5.2.0 - 2016-02-29

Added

  • Support device type aliases.
  • Implement resin.models.build.getAllByApplication().
  • Implement resin.models.device.reboot().

Changed

  • Upgraded oudated dependencies.

v5.1.0 - 2016-01-26

Added

  • Implement resin.models.os.getLastModified().
  • Implement resin.models.device.getStatus().

Changed

  • Patch device types to be marked as ALPHA and BETA instead of PREVIEW and EXPERIMENTAL.
  • Fix exception when fetching a device whose uuid only contains numbers.

v5.0.1 - 2016-01-21

Changed

  • Upgrade resin-request to v4.0.0.

v5.0.0 - 2016-01-20

Added

  • Implement integration tests.
  • Support shorter uuids in all device functions.

Changed

  • Only return applications that belong to current user.
  • Change license to Apache 2.0.
  • Serve static unconfigured images.
  • Ensure environment variable values are strings.

v4.1.3 - 2015-11-24

  • Upgrade resin-device-logs to v2.0.1.

v4.1.2 - 2015-11-15

Changed

  • Fix bug in resin.settings.getAll() that caused the function to throw an error.

v4.1.1 - 2015-11-12

Changed

  • Validate application device type before moving a device.

v4.1.0 - 2015-11-11

Added

  • Implement resin.models.device.move().

Changed

  • Port all documentation examples to JavaScript.

v4.0.0 - 2015-10-21

Added

  • Implement resin.auth.twoFactor.isEnabled().
  • Implement resin.auth.twoFactor.isPassed().
  • Implement resin.auth.twoFactor.challenge().

Changed

  • Require an email instead of username in resin.auth.login() and resin.auth.authenticate().
  • Support searching a device type slug by a slug.

v3.0.0 - 2015-10-12

Changed

  • Make resin.models.device.generateUUID() async.

v2.8.1 - 2015-10-12

Changed

  • Make resin.models.config.getPubNubKeys() and resin.models.config.getMixpanelToken() private.
  • Fix resin.models.device.generateUUID() examples.

v2.8.0 - 2015-09-24

Added

  • Implement resin.models.device.restart().

v2.7.3 - 2015-09-07

Changed

  • Upgrade Resin Settings Client to v3.1.0.

v2.7.2 - 2015-09-07

Changed

  • Upgrade Resin Token to v2.4.2.

v2.7.1 - 2015-09-07

Changed

  • Upgrade Resin Settings Client to v3.0.0.

v2.7.0 - 2015-09-01

Added

  • Implement resin.models.config.getMixpanelToken().

Changed

  • Reuse resin-register-device to provide device registration and uuid generation.

v2.6.2 - 2015-08-28

Changed

  • Update Resin Request to v2.3.1.
  • Fix bug that caused authenticate() to fail even with valid credentials.

v2.6.1 - 2015-08-25

Changed

  • Update Resin Request to v2.3.0.

v2.6.0 - 2015-08-25

Added

  • Implement resin.models.config.getDeviceOptions().

Changed

  • Improve resin.models.application.create() documentation.

v2.5.0 - 2015-08-24

Added

  • Set RESIN and USER as system environment variables.
  • Make use of @fulfil and @reject JSDoc tags to document promises.

Changed

  • Upgrade Resin Request to v2.2.4.

v2.4.1 - 2015-08-17

Changed

  • Upgrade Resin Settings Client to v2.1.0.
  • Request GET /whoami to determine if a user is logged in resin.auth.isLoggedIn().
  • Fix bug that caused device environment variables to not have a name property.

v2.4.0 - 2015-08-10

Added

  • Implement resin.models.device.getManifestByApplication().
  • Implement resin.models.device.register().
  • Check that device/application exists before attempting to remove.

Changed

  • Fix environment variables documentation.
  • Fix resin.models.key.get() undefined issue.
  • Fix resin.models.key.create() bug that caused no key to be created.
  • Fix resin.models.application.create() example issue with device slugs.
  • Upgrade resin-errors to v2.0.0.
  • Upgrade resin-request to v2.2.3.
  • Upgrade resin-token to v2.4.1.

v2.3.1 - 2015-07-29

Changed

  • Fix undefined Authorization header issue.
  • Fix HTTP request body issue in auth module.

v2.3.0 - 2015-07-27

Added

  • Refresh token in an interval.

Removed

  • Remove deprecated device.register().

v2.2.0 - 2015-07-03

Added

  • Implement resin.models.device.getLocalIPAddresses().

v2.1.0 - 2015-07-01

Changed

  • Upgrade resin-settings-client to v1.4.0.

v2.0.0 - 2015-06-29

Added

  • Implement resin.logs.history().
  • Implement resin.models.device.register().
  • Implement resin.settings.
  • Start making use of a CHANGELOG.
  • Improve unit testing.
  • Add promise support.
  • Check that a device exists before attempting rename operation.
  • Reference devices by uuid instead of by name.
  • Markdown JSDoc documentation in DOCUMENTATION.md.

Changed

  • Change interface and internal workings of resin.logs.subscribe().
  • "get all" functions now return an empty array if no resources instead of yielding an error.
  • Update JSDoc annotations to use promises.

Removed

  • Remove HTML generated JSDoc documentation.