All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Allow a larger set of permissions for configuration files and folders.
cluster instance
{deploy
|destroy
|show
} are deprecated and will be removed from v24.11.
- Create configuration files and folders if required, instead of just crashing.
- Fixed empty array sent as empty string for array payload.
- Allow the management of triggers containing Mustache templates.
cluster instance deploy
: add profiles for astarte v1.2.
- Use Go 1.21 for releases.
cluster instance deploy
: remove profiles for Astarte v0.10 and v0.11.
realm-management {interfaces, triggers} sync
: do not show a wrong curl command when using--to-curl
. Reference individual commands instead.appengine publish-datastream
: fix the decoding of longinteger and longintegerarray before sending to astarte.
- Backport addition of
realm-management interfaces {sync, save}
to batch install or download triggers. - Backport addition of
appengine device {publish-datastream, set-property, unset-property}
to send data to Astarte.
- Backport deprecation of
appengine device send-data
, use{publish-datastream, set-property, unset-property}
instead.
appengine send-data
: fix the encoding of longinteger and longintegerarray data.
- Add fish shell completions generator command
realm-management interfaces save
allows to save interfaces to disk.
realm-management interfaces {install,upgrade}
commands are run synchronously.- Use Go 1.20 for releases.
appengine send-data
: fix the encoding of binaryblob and binaryblobarray data.
cluster instance deploy
: Allow real burst instances to be deployed for Astarte >=v1.1.0
.
cluster instance deploy
: Allow to deploy Astarte >=v1.1.0
.
appengine device send-data
: fix--to-curl
representation to return a valid command.housekeeping realms create
: allow the creation of a realm when explicitly setting a topology strategy.
appengine device
: print a parametric command rather than a partial one with--to-curl
when multiple API calls are involved (e.g.send-data
).appengine device send-data
returns a clear error when an interface is not found. See #132.
appengine data-snapshot
properly gathers and shows data snapshots from a device.- context: do not warn when config is missing. Users will have to provide parameters by hand.
appengine get-samples
properly gathers and show samples from a device.
- Add support for ignoring SSL errors while interacting with the Astarte APIs.
- Add the
--to-curl
flag to print a command-line equivalent of a command instead of running it.
cluster instance deploy
: Astarte >=v1.0.0
is deployed using theapi.astarte-platform.org/v1alpha2
API.- Require at least Go 1.18 (due to astarte-go dep).
- Use Go 1.18 for releases.
appengine devices send-data
correctly parses integers as int32 instead of in64. Fix #176.
cluster instances migrate storage-version
allows to migrate CRDs with[v1alpha1, v1alpha2]
stored versions to just[v1alpha2]
.
cluster instance deploy
: add--burst
flag to deploy a burst Astarte instance. It should be used only in resource-constrained environments, such as CI. Only Astarte 0.11.x and 1.0.x are supported.
- context: do not warn when config is missing. Users will have to provide parameters by hand.
cluster instances migrate replace-voyager
allows to migrate a deprecated AstarteVoyagerIngress to an AstarteDefaultIngress resource.utils show-jwt-claims
to display claims of an Astarte token.
cluster show
: add operator-name and operator-namespace flagsutils interfaces validate
allows validating Astarte Interfaces
cluster instance deploy
: remove profile choice, only deploy a basic Astarte instance.cluster instance
: remove outdatedchange-profile
subcommmand.cluster instance
: remove outdatedupgrade
subcommmand.
- realm/interfaces/sync: Add non-interactive mode
- housekeeping/realms: Add non-interactive mode
- config: Allow querying for current cluster
- pairing/agent: Allow registering a device with a machine-friendly output
utils gen-jwt
will now use the private keys specified in the context, if any, to generate the tokens without asking for a private key explicitly.
- deploy: burst profile for 1.0 should not specify a set amount of CPU for Verne
- deploy: Support for VerneMQ SSL Listener (1.0.1+)
- deploy: Support for custom Broker port
- deploy: Support non-interactive scenarios
- deploy: Allow up to 2 minutes for housekeeping to come up after deployment
- Support for 1.0 profiles
- Generate new keypairs using elliptic curves instead of RSA.
- Updated Kubernetes APIs to 1.23
- Require at least Go 1.17 (due to Kubernetes deps)
- Use Go 1.17 for releases
- Device metadata have been renamed to attributes.
- Default jwt expiration time to 8 hours (instead of 5 minutes).
cluster instance get-cluster-config
allows getting a cluster configuration out of the current cluster
- astartectl configuration now works through a context system, kubectl-style
cluster instance deploy
now creates a new cluster config context upon successful cluster creationhousekeeping realms create
has completely different (and incompatible) semantics: it now allows supplying either a public, private or no key, and will create a new config context accordinglycluster {install,upgrade,uninstall}-operator
commands are deprecated, print instructions to perform the same tasks using Helm.
- Add support for printing device details in
appengine devices list
- Add support for filtering recently active devices in
appengine devices list
- Add support for filtering connected/disconnected devices in
appengine devices list
- Add support for EC keys for JWT generation.
- Bump Go version requirement to >= 1.13.
- appengine send-data: fix object aggregated with nested arrays handling
appengine devices send-data
now parses integer values correctly for server-owned datastream aggregate interfacesappengine devices data-snapshot
now handles partial failures in a better way without compromising the full results
- Add
realm-management interfaces sync
subcommand - Add
appengine devices send-data
subcommand
- appengine: Fix crash when retrieving nil values out of device interfaces
- appengine: Fix panic when passing appengine-url without realmmanagement-url (#73)
- appengine: data-snapshot should not fail entirely when an interface is not fetched from Realm Management
- Moved the codebase to use astarte-go instead of the internal replicated tree
appengine devices get-samples
now handles aggregates with an explicit invocation rather than guessing it from the path
- Add appengine group subcommand
- Add support for credentials inhibition
- Add support for interfaces stats in device describe subcommand
- Add appengine stats subcommand
- Add support to database retention policy and database retention TTL
- Added "cluster instance fetch-housekeeping-key", to fetch the Housekeeping Private key from a Cluster
- Added multiple API set support in utils gen-jwt
- Removed explicit delimiters in default token regex: they were redundant
- Added "cluster instance upgrade", to upgrade Astarte instances
- Added "cluster instance change-profile", to change an existing Astarte instance's deployment profile
- Fixed Cluster Resource parsing in some corner case situations
- Do not take into account prereleases when looking for latest versions
- Added the new cluster command, to manage remote, Kubernetes-based, clusters
- pairing: add unregister subcommand, allowing to register again a device that already requested its credentials
- Avoid flaky parsing when "value" is a path token (#48)
- appengine: Aggregates are correctly supported in get-samples
- appengine: get-samples performs path validation against the requested interface
- utils: add command to convert a Device ID to its UUID representation and viceversa
- Added common aliases for all commands where this is applicable
- appengine: devices data-snapshot now accepts an additional argument to print the snapshot of a specific interface only
- "appengine device describe" has been renamed into "appengine device show"
- appengine: Add an option to skip Realm Management checks, where possible
- Add possibility to use a token instead of the private key
- Add commands to generate Device IDs and authentication JWTs
- Add gobuild.sh script
- Add shell completion generator command
- Add CI
- Add appengine command and subcommands
- Fix keypair generation
- Fix Datacenter Replication checks in realm creation command
- Fix a bug that prevented realm key to be set from the command line
- utils gen-jwt accepts the private key through -k rather than through -p, just like all other commands
- Initial release