View Source Changelog

unreleased

v2.0.1

  • Updated
    • You can now use a single URI for defining the NervesHub instance you are connecting.
    • CAStore is now an optional dep. If you have included CAStore in your Nerves project it will be used, otherwise :public_key will be the fallback.
    • Firmware uploads will default to using HTTP1 as HTTP2 streaming issues exist with the Tesla usage of Mint

v2.0.0

Update for compatibility with NervesHub 2.0

  • Removed

    • Remove signing devices (and users) by NervesHub. It is now expected that users manage their own device signer certificates. Device certificates can still be created locally with mix nerves_hub.device cert create --signer-cert /path/signer-cert.pem --signer-key /path/signer-key.pem
    • Remove resolving public keys for fwup. This must now be explicitly set
  • Updated

    • Swap to the Mint adapter instead of :hackney
  • Added

    • :nerves_hub_user_api has now been merged into this lib

v0.12.0

  • Enhancements

    • Support token authentication with NervesHub - This should be backwards compatible but does emit a warning when the user peer client cert is used for authentication. Use mix nerves_hub.user auth to generate a token if your NervesHub instance supports it, or create in the user settings of the web.
  • Bug Fixes

    • Fixes a variable mismatch (thanks @pojiro)

v0.11.1

  • Bug Fixes
    • Fixes issue using a :ca_store module from the root project by forcing a full compile of the project, which implicitly loads the needed module.

v0.11.0

  • Breaking Changes
    • This release includes a change to how CA certificates are used in the connection to NervesHub. If you are connecting to the publicly hosted https://nerves-hub.org, then no changes are required. If you are manually supplying :ca_certs config value to connect to another instance of NervesHub, then you will need to update you config following the new instructions for Configuration in the NervesHubUserAPI README.

v0.10.5

  • Bug Fixes

    • Fixes issue rendering devices when the device does not have any tags
  • Enhancements

    • Certificate serials are now also displayed as a hex value to match OpenSSL output
    • Add cert description to ca_certificate list
    • More specific location output when creating user auth cert

v0.10.4

  • Enhancements
    • Added mix nerves_hub.device cert import DEVICE_ID CERT_PATH for adding trusted device certificates.
    • Changed Deployment is_active true/false to state on/off to match wording on the server.

v0.10.3

  • Bug fixes
    • Fix deprecation warnings for nerves_hub_user_api calls

v0.10.2

  • Enhancements
    • More results printout in the nerves_hub.device bulk_create task which reports errors, malformed lines, and successful creates.

v0.10.1

  • Bug fixes
    • Ignore whitepace in base64-encoded string input

v0.10.0

  • Breaking changes

    • Decouples deprecated :nerves_hub config values and will fail compilation if used. To set your organization for the CLI, use :nerves_hub_cli key:
      config :nerves_hub_cli, org: "my-org"
  • Enhancements

    • mix nerves_hub.device bulk_create --csv path/to/file.csv - Support bulk upload from CSV definitions
    • Add ability to use your own signer CA and key locally when creating device certificate mix nerves_hub.device cert create --signer-cert path/to/cert --signer-key path/to/key

v0.9.1

  • Enhancements
    • Updated user auth to support logging in with username or email.
    • Improved error message formatting.

v0.9.0

Backwards incompatible changes:

The NervesHubUserAPI.Device and NervesHubUserAPI.DeviceCertificate endpoints have moved to include product as part of its path.

v0.8.0

  • Enhancements
    • Added mix tasks
      • mix nerves_hub.org user list - List the users and their role for the organization.
      • mix nerves_hub.org user add USERNAME ROLE - Add an existing user to an org with a role.
      • mix nerves_hub.org user update USERNAME ROLE- Update an existing user in your org with a new role.
      • mix nerves_hub.org user remove USERNAME - Remove an existing user from having a role in your organization.
      • mix nerves_hub.product user list PRODUCT_NAME - List the users and their role for the product.
      • mix nerves_hub.product user add PRODUCT_NAME USERNAME ROLE - Add an existing user to a product with a role.
      • mix nerves_hub.product user update PRODUCT_NAME USERNAME ROLE- Update an existing user for your product with a new role.
      • mix nerves_hub.product user remove PRODUCT_NAME USERNAME - Remove an existing user from having a role for your product.
    • Added filtering for mix nerves_hub.device list
      • --identifier - (Optional) Only show device matching an identifier
      • --description - (Optional) Only show devices matching a description
      • --tag - (Optional) Only show devices matching tags. Multiple tags can be supplied.
      • --status - (Optional) Only show devices matching status
      • --version - (Optional) Only show devices matching version

v0.7.2

  • Bug fixes
    • Fixed error when running mix nerves_hub.device list and there weren't any devices

v0.7.1

  • Enhancements
    • Added device deletion support
    • Improved formatting when listing devices
    • Tag entry is always comma-separated now (it previously was space delimited, but that was inconsistent with the GUI)

v0.7.0

  • Enhancements
    • Change dependency nerves_hub_core to nerves_hub_user_api
    • Updated prompts for deployment and device tags

v0.6.0

This release makes a backwards incompatible API change that affects how fwup public keys are shared with other projects. This should only affect the nerves_hub library and should be handled by mix dependency constraints.

  • Backwards incompatible changes

    • The API to share fwup public keys has changed. This should only affect the nerves_hub library and should be handled by mix dependency constraints.
    • mix nerves_hub.ca_certificate create is now register. (It never created a certificate.
  • Enhancements

    • Show API endpoint when running commands - this makes it more obvious when you're running against api.nerves-hub.org vs. your own instance

v0.5.1

  • Enhancements

    • Added mix task mix nerves_hub.device list - List all devices for an org.
    • Document --ttl option in mix nerves_hub.firmware publish.
    • Expect :nerves_hub in application config instead of mix project config.
    • Bump nerves_hub_core dep to 0.2.0.
  • Bug Fixes

    • Failed mix tasks exit with non-zero status code to facilitate CI.
    • Rework how a password is obtained when calling mix nerves_hub.user auth.

v0.5.0

  • Enhancements

    • Added mix tasks
      • mix nerves_hub.ca_certificate list - List all CA certificates for an org.
      • mix nerves_hub.ca_certificate create CERT_PATH - Add a CA certificate.
      • mix nerves_hub.ca_certificate delete CERT_SERIAL- Delete a CA certificate.
    • The API modules have been moved to nerves_hub_core for runtime reusability.
  • Bug Fixes

    • Improved error handling when uploading unsigned firmware.

v0.4.0

  • Enhancements
    • Updated mix tasks
      • mix nerves_hub.product create - Will take the product name from the Mix project config by default.
      • mix nerves_hub.device burn - Will now call mix burn instead of mix firmware.burn.
    • Certificate functions are performed in Erlang and no longer call out to openssl.
    • Updated Docs and CLI prompts.

v0.3.0

  • Enhancements
    • Added mix tasks
      • mix nerves_hub.key export KEY_NAME - Export a firmware signing key
      • mix nerves_hub.user cert export - Export the current user certificate
    • Updated mix tasks
      • mix nerves_hub.firmware publish - Added ability to set firmware TTL by passing --ttl seconds.
    • Added environment variable NERVES_HUB_NON_INTERACTIVE for use with running nerves_hub_cli from non-interactive terminals such as CI. This answers y to all y/n prompts.
    • Allow passing binary public keys to config :nerves_hub, public_keys: [].

v0.2.0

  • Enhancements
    • Update account name to username.
    • Added mix task for importing existing fwup keys. mix nerves_hub.key import KEY_NAME PUBLIC_KEY_FILE PRIVATE_KEY_FILE
    • Updated documentation to list environment variables needed to running CI.
    • Added support for setting firmware signing keys in the environment.

v0.1.0

Initial release