Skip to main content

No project description provided

Project description

gooseBit


A simplistic, opinionated remote update server implementing hawkBit™'s DDI API.

Setup

To set up, install the dependencies in pyproject.toml with poetry install. Then you can run gooseBit by running main.py.

Initial Startup

The first time you start gooseBit, you should change the default username and password inside settings.yaml. The default login credentials for testing are admin@goosebit.local, admin.

Assumptions

Current Feature Set

Firmware repository

Uploading firmware images through frontend. All files should follow the format {model}_{revision}_{version}, where version is either a semantic version or a datetime version in the format YYYYMMDD-HHmmSS.

Automatic device registration

First time a new device connects, its configuration data is requested. hw_model and hw_revision are captured from the configuration data (both fall back to default if not provided) which allows to distinguish different device types and their revisions.

Automatically update device to newest firmware

Once a device is registered it will get the newest available firmware from the repository based on model and revision.

Manually update device to specific firmware

Frontend allows to assign specific firmware to be rolled out.

Firmware rollout

Rollouts allow a fine-grained assignment of firmwares to devices. The reported device model and revision is combined with the manually set feed and flavor values on a device to determine a matching rollout.

The feed is meant to model either different environments (like: dev, qa, live) or update channels (like. candidate, fast, stable).

The flavor can be used for different type of builds (like: debug, prod).

Pause updates

Device can be pinned to its current firmware.

Realtime update logs

While an update is running, the update logs are captured and visualized in the frontend.

Development

Code formatting and linting

Code is formatted using different tools

  • black and isort for *.py
  • biomejs for *.js, *.json
  • prettier for *.html, *.md, *.yml, *.yaml

Code is linted using different tools as well

  • flake8 for *.py
  • biomejs for *.js

Best to have pre-commit install git hooks that run all those tools before a commit:

poetry run pre-commit install

To manually apply the hooks to all files use:

pre-commit run --all-files

Testing

Tests are implemented using pytest. To run all tests

poetry run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goosebit-0.1.2.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

goosebit-0.1.2-py3-none-any.whl (51.9 kB view details)

Uploaded Python 3

File details

Details for the file goosebit-0.1.2.tar.gz.

File metadata

  • Download URL: goosebit-0.1.2.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for goosebit-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4c7e6b538671bbb497b486e197345b707eedf0d58d85e072cacd8fe6eb43805c
MD5 4789a9b1cf129a039db82629fe913ef5
BLAKE2b-256 ebb8347c3e58847d830cb03e80329f70db1e5f71c49c85950f027650fb8775b5

See more details on using hashes here.

File details

Details for the file goosebit-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: goosebit-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 51.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for goosebit-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 90322365ecd3ac5a6530d9c265d3cdf7fa51183ef2b7967dc697358c6a017130
MD5 91da04914d0d73f0e79325e4b77d9d9a
BLAKE2b-256 8514661a294c3b8709ed6dc3b75895de83a8f41c197d11937ad5e822ef8bb163

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page