Necessary to prevent automatic bricking of devices due to unreliable firmware updates. I have a couple issues, via the Core and Firmware projects, to address this but the root cause stems from unreliable and inconsistent firmware version releases.
Milestone: minor
This is a partial revert of d470a36 (Removed device friendly ID and API implementation) and is also why all of these changes are in a single commit since they are related and represent the revert of the original commit (for the most part). These changes allow us to restore use of the device API key because the Firmware fails to process Setup API requests when the `status` key is missing from the JSON payload body despite using a proper HTTP status code in the API response. By using the API key, we solve the following:
* Can use both the HTTP ID and ACCESS_TOKEN headers to identify, provision, and authenticate a device (more will be supported soon).
* Can transition devices between our Core server and this server more easily.
* Can support TRMNL Viewer and TRMNL Lib projects.
* Can finally stop devices from constantly hitting the Setup API before each Display API request.
As for the database migration, a unique index is used for the API Key but only when the API key is not `nil`.
Issue: 347
Milestone: minor
Necessary to simplify the configuration so you can tweak individual environment variables instead of a single environment variable which required a hash value. This will allow us to remove the more complicated `BROWSER` environment variable in favor of this change.
This is a _breaking change_ and will require some folks to update their environment settings accordingly.
Milestone: minor
While disablement is not recommended, this can be useful when running on a local network with no outside access.
This will soon be used to enable or disable within Rodauth when the session expiration feature is loaded and configured.
Issue: 327
Milestone: minor
These attributes were originally used for the Core proxy feature (and device provisioning) but are no longer needed. These changes completely remove these attributes (including the migration for removing from the `device` table).
Issue: 326
Milestone: minor
Necessary to documenat the new headers and API responses. Not all of the battery headers are fully supported, though, that will be added later.
Milestone: minor
Necessary to adhere to link:https://datatracker.ietf.org/doc/html/rfc3339[RFC 3339] which corrects the RSpec matcher, time transformer, and associated specs.
Issue: 312
Milestone: patch