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.
- Fix bug when merging expand options #459 [Lucian Buzzo]
- Update resin-register-device to ^5.0.0 #466 [Alexis Svinartchouk]
- Deprecate passing an api key to the SDK constructor #460 [Tim Perry]
- Export a method for generating a new API key #457 [MoranF]
- Never internally select:[], since that not valid #461 [Tim Perry]
- Add typings for application info #455 [Tim Perry]
- Ensure options params are optional in the typings #455 [Tim Perry]
- Ensure optional properties are included in log message types #455 [Tim Perry]
- Upgrade typescript to 2.6 #454 [Tim Perry]
- BREAKING: Stop exposing sdk.token object. #449 [MoranF]
- Change the getDashboardUrl to use the device UUID #449 [Thodoris Greasidis]
- Fix tag updating when the build get's minified #451 [Thodoris Greasidis]
- Include resin-request typings too #448 [Tim Perry]
- Expand the type definitions further to cover all remaining methods #448 [Tim Perry]
- Prettify on build, to help run it locally, and ensure it's caught in CI #446 [Tim Perry]
- Make sure types are published correctly #447 [Tim Perry]
- Type lots of extra previously untyped methods & features #447 [Tim Perry]
- Include SDK typescript types in the SDK itself #445 [Tim Perry]
- Add Application & Device Tag methods #433 [Thodoris Greasidis]
- Start using Typescript #438 [Thodoris Greasidis]
- Stop requiring tests to be configured with the test user id #437 [Tim Perry]
- Ensure browser console.logs appear in test output, to help debugging #437 [Tim Perry]
- Ensure os.getMaxSatisfyingVersion returns exact results for exact matches #423 [Tim Perry]
- 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]
- Add application.generateProvisioningKey() #419 [Tim Perry]
- Stop requests that don't need auth from failing if you have an invalid token #414 [Tim Perry]
- Change GLOBAL to global to avoid deprecation warning with shared options #406 [Tim Perry]
- Ensure that npm published files are always built afresh first #404 [Tim Perry]
- Explicitly include build output in packaged releases #403 [Tim Perry]
- Uncommit (though still publish) generated browser files #401 [Tim Perry]
- Fix command PING to work properly #387 [Horia Delicoti]
- Improve performance by select only the fields required where possible #396 [Tim Perry]
- Update tests to use
v2
instead ofewa
#360 [Pagan Gazzard]
- Add lastOnline() method to device model #373 [Lucian Buzzo]
- Add methods for generating an sdk instance using shared options #370 [Lucian Buzzo]
- Update to resin-errors v2.9.0 #386 [Thodoris Greasidis]
- Add reboot, shutdown and purge methods to application model and throw ResinSupervisorLockedError #379 [MoranF]
- Change the Free tier plan title to Personal #375 [Thodoris Greasidis]
- Detect Resin OS v1.0.0-pre devices and fill the os_version field #368 [Thodoris Greasidis]
- Limit AppVeyor on npm v5.3 #381 [Thodoris Greasidis]
- Expose resin-errors directly from the SDK as
.errors
#366 [Tim Perry]
- Add function to allow looking up app based on name and owner username #352 [Cameron Diver]
- Add self-billing related methods [Thodoris Greasidis]
- Fix keys test after API update [Thodoris Greasidis]
- Add the source property to builds [Thodoris Greasidis]
- Validate env var names [Tim Perry]
- 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.
- 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.
- Don't include .env when publishing to npm
- Fix condition for travis to publish to npm
- Document log subscriptions in detail
- Always choose a production image as the recommended version.
- Consistently order image versions.
- Don't refresh tokens when making requests to the image maker
- Fix documentation for device.getDashboardUrl()
- Stop config.* methods from refreshing the token (as they don't use it)
- The method
models.os.getConfig()
now accepts image configuration options.
- 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.
- Travis now runs builds against commits on master, in addition to PRs, to solve #309
- Added a
device.generateDeviceKey
that can generate a device specific key for use by a device
- Tagged commits are now automatically published to npm
- Sort OS versions taking their
rev
into account, if present
imageMakerUrl
is now set by default when used in the browser
- Ensure all environmentVariables.device methods return names as
.name
, never.env_var_name
- Removed the (already deprecated)
resin.models.device.restart()
method, in favor ofresin.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()
togenerateUniqueKey()
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).
- Add
device.setCustomLocation
anddevice.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 theversion
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 fromresin.models.build.getAllByApplication()
- Add
resin.models.build.get()
to load individual build data - Allow arbitrary extra pinejs options in
key.getAll
, and allbuild.get*
,application.get*
anddevice.get*
methods. - Update the logs module to provide
historySinceLastClear
andclear
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
andbuild/resin-browser.min.js
- 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
- Encode plus symbols in version numbers when estimating the size of OS images
- Encode plus symbols in version numbers when downloading OS images
- 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
anddevice.unsetCustomLocation
- Expose
.pine
to more easily allow requests to unsupported resources
- 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 theversion
param.- Add
resin.models.os.getDownloadSize
. - Fix potential issue with invalid dependencies by requiring resin-pine 5.0.2
- Fix bug that broke
device.reboot
anddevice.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 fromresin.models.build.getAllByApplication()
- Add
resin.models.build.get()
to load individual build data - Allow arbitrary extra pinejs options in
key.getAll
, and allbuild.get*
,application.get*
anddevice.get*
methods. - Ensure passwords are always submitted as strings when authenticating
- Update the logs module to provide
historySinceLastClear
andclear
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
- Add
resin.models.environmentVariables.device.getAllByApplication
- Breaking! Ensure all environmentVariables.device methods return names as
.name
, never.env_var_name
- 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 ofresin.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.
- 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.
- 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()
togenerateUniqueKey()
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
andbuild/resin-browser.min.js
- Allow passing an optional
force
option toresin.models.device.reboot()
andresin.models.device.shutdown()
.
- Update pine filter expressions to avoid deprecation warnings.
- Return full uuid in
resin.models.device.getDeviceUrl()
.
- Upgrade
resin-device-logs
to v3.0.0.
- Make sure device functions expand shorter UUIDs before passing then to
pine
.
- Fix bug that caused
resin.models.device.move()
to not move devices referenced with shorter uuids.
- Increase HTTP timeout for requests that result in container actions.
- Fix a semver issue when checking the supervisor version on supervisor endpoints.
- 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()
.
- Rename
resin.models.device.restart()
toresin.models.device.restartApplication()
. - Deprecate
resin.models.device.restart()
.
- Support device type aliases.
- Implement
resin.models.build.getAllByApplication()
. - Implement
resin.models.device.reboot()
.
- Upgraded oudated dependencies.
- Implement
resin.models.os.getLastModified()
. - Implement
resin.models.device.getStatus()
.
- 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.
- Upgrade
resin-request
to v4.0.0.
- Implement integration tests.
- Support shorter uuids in all device functions.
- Only return applications that belong to current user.
- Change license to Apache 2.0.
- Serve static unconfigured images.
- Ensure environment variable values are strings.
- Upgrade
resin-device-logs
to v2.0.1.
- Fix bug in
resin.settings.getAll()
that caused the function to throw an error.
- Validate application device type before moving a device.
- Implement
resin.models.device.move()
.
- Port all documentation examples to JavaScript.
- Implement
resin.auth.twoFactor.isEnabled()
. - Implement
resin.auth.twoFactor.isPassed()
. - Implement
resin.auth.twoFactor.challenge()
.
- Require an
email
instead ofusername
inresin.auth.login()
andresin.auth.authenticate()
. - Support searching a device type slug by a slug.
- Make
resin.models.device.generateUUID()
async.
- Make
resin.models.config.getPubNubKeys()
andresin.models.config.getMixpanelToken()
private. - Fix
resin.models.device.generateUUID()
examples.
- Implement
resin.models.device.restart()
.
- Upgrade Resin Settings Client to v3.1.0.
- Upgrade Resin Token to v2.4.2.
- Upgrade Resin Settings Client to v3.0.0.
- Implement
resin.models.config.getMixpanelToken()
.
- Reuse
resin-register-device
to provide device registration and uuid generation.
- Update Resin Request to v2.3.1.
- Fix bug that caused
authenticate()
to fail even with valid credentials.
- Update Resin Request to v2.3.0.
- Implement
resin.models.config.getDeviceOptions()
.
- Improve
resin.models.application.create()
documentation.
- Set
RESIN
andUSER
as system environment variables. - Make use of
@fulfil
and@reject
JSDoc tags to document promises.
- Upgrade Resin Request to v2.2.4.
- 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.
- Implement
resin.models.device.getManifestByApplication()
. - Implement
resin.models.device.register()
. - Check that device/application exists before attempting to remove.
- 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.
- Fix undefined Authorization header issue.
- Fix HTTP request body issue in auth module.
- Refresh token in an interval.
- Remove deprecated
device.register()
.
- Implement
resin.models.device.getLocalIPAddresses()
.
- Upgrade
resin-settings-client
to v1.4.0.
- 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
.
- 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.
- Remove HTML generated JSDoc documentation.