Giter VIP home page Giter VIP logo

edgehog-device-manager / edgehog Goto Github PK

View Code? Open in Web Editor NEW
32.0 5.0 18.0 6.76 MB

Easily manage your IoT device fleet with Edgehog at once. Get information on device status, deploy updates, geolocate your devices and much more!

License: Apache License 2.0

Elixir 65.32% Dockerfile 0.20% Shell 0.02% JavaScript 0.12% HTML 0.19% TypeScript 33.39% SCSS 0.47% Python 0.14% Batchfile 0.01% Nix 0.14%
iot iot-device iot-platform ota-update ota-server hacktoberfest

edgehog's Introduction

Edgehog

Edgehog is an Open Source software focused on the management of the whole life-cycle of IoT devices, written in Elixir. It is based on Astarte, the Open Source IoT platform.

It packs in convenient features such as OTA updates, device status information management, geolocation and everything you need for IoT fleet management.

See also Edgehog documentation for more information.

Where do I find binaries?

Edgehog is designed from the ground up to be run in containers, with Kubernetes as a first-class citizen when it comes to deployment. Edgehog's images can be found at Docker Hub.

Contributing

Edgehog is open to any contribution.

Pull requests, bug reports and feature requests are welcome.

License

Edgehog source code is released under the Apache 2.0 License.

Read the LICENSE file for more information.

edgehog's People

Contributors

annopaolo avatar bettio avatar davidebriani avatar harisbikovic avatar harlem88 avatar noaccos avatar pavinati avatar rbino avatar safeta87 avatar sorru94 avatar szakhlypa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

edgehog's Issues

Add ApplianceModel to Backend

Defines a physical object model with a certain purpose that embeds a certain hardware in order to provide functionalities.

  • name
  • handle
  • model-id
  • part-numbers
  • hardware-type

Define Supported Search Queries

It should be possible to find devices using following keys:

  • device id
  • location (formatted_address, country, locality, postal_code, street_address, gps_area?)
  • appliance part number
  • appliance handle
  • appliance name
  • hardware type part number
  • hardware handle
  • hardware name

Add HardwareType to Backend

It is the type of connected device hardware, it has a CPU with a certain architecture where the device manager agent runs.

From a practical point of view, the hardware type defines a set of capabilities (e.g. MCU system, ARM CPU system, x86 CPU system, etc...)

  • name
  • handle
  • (manufacturer) part-numbers

Discuss, Define and Document Auth Strategy

In order to make Edgehog ready for prodution, we should define the Auth strategy.
Defining a JWT special claim for global admin access, such as "*" would be a good first start, while defining a comprensive solution.

Automatically Associate Device to its Appliance Model Using Appliance Part Number

Device should be associated to the correct Appliance Model using io.edgehog.devicemanager.ApplianceInfo interface.

Following scenarios should be also supported:

  • Device Appliance Model is changed to a different one after a part number change (when using a valid part number)
  • Device Appliance Model is unset after a part number unset
  • Device Appliance Model is unset after an invalid part number is set

Add Support to Backend for Appliance Model Image(s)

It should be possible to upload one or more (optional) images for a given appliance model.
This image should be displayed when opening the Appliance Model page and the Device page, furthermore it should be possible to fetch this image using an easy-to-use API (that can be used from 3rd party frontends).

It should be evaluated if it might make sense to provide support to different sizes or image purposes (e.g. icon / small appliance photo / full size appliance photo).

Handle Missing Interfaces

Edgehog should work also when some interfaces (or most of them) are not implemented on the device side.
The frontend should show less tabs in that case.

Add Support to Backend for Appliance Model Description

It should be possible to input a description text for each appliance, that is displayed on the Appliance Model page, on the Device page, and that can be fetched using an easy-to-use API.
It should be possible to input different descriptions for different locales, and to default to english one when the translation is missing.

Add Button to Frontend for Blinking the Indicator Led

Add a button that makes the onboard indicator led blink. The button should be hidden or not visible when the led interface is not available.
The purpose of this feature is to allow finding/identify a specific board among a number of boards using a visual feedback, and to perform a quick connectivity test.

Add Support to Back-end for Storing User Uploaded Assets

It required to add all functions and configuration options in order to handle user uploads and downloads, that will be used when dealing with assets such as Appliance Model image.
It required to enable support for an external storage bucket.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.