Giter Site home page Giter Site logo

genesis's Introduction

devguard genesis

individual system settings at scale.

cli usage

from the CLI simply call

carrier genesis <identity>
  • your local editor will open (set with the EDITOR environment variable, like git).
  • edit the configuration and then exit your editor.
  • enter a commit message and hit enter
  • the device will attempt to settle on the new configuration or revert if it can no longer connect to the carrier ring

conduit usage

to manage configurations at scale, we recommend some sort of database with sha256 hashed config files. you can also generate configs on the fly, but ensure the output yields predictable hashes.

When a new device publishes in conduit, request its current configuration hash, and match it against your database. On mismatch, push the new config.

Carrier devices are stateless with no history of changes. You must detect when a device reverts to its previous configuration, to avoid pushing a broken configuration in a loop. One way would be to hold a previous_hash in the database, and mark the current configuration as failed, if the device is rediscovered with the same configuration.

the endpoint uses this protobuf https://raw.githubusercontent.com/devguardio/carrier/master/proto/genesis.v1.proto and requires only the :method header:

  • HEAD will return GenesisCurrent but data remaining empty. use this to check if the devices configuration hash matches your conduits database
  • GET will return GenesisCurrent
  • POST expects a GenesisUpdate message and returns nothing, use this to update to a new configuration.

genesis's People

Contributors

aep avatar

Watchers

 avatar

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.