brewblox / brewblox-service Goto Github PK
View Code? Open in Web Editor NEWGeneric functionality and scaffolding for all brewblox service implementations.
License: GNU General Public License v3.0
Generic functionality and scaffolding for all brewblox service implementations.
License: GNU General Public License v3.0
Throughout the various services, there is a generic pattern of modules having setup(app)
and get_<handler>(app)
functions.
Individual handlers use a setup(app)
to register startup an cleanup functions.
They may include other handlers by using get_handler(app)
functions.
The ServiceHandler class already exists, but does not pass app, only loop.
Not all handlers use it yet either.
The pattern of using get_handler(app)
functions also could use a review, as it has the potential to make the dependency tree very fragile and opaque.
Currently, all services assume they and everyone else are on localhost. This needs to be configurable.
Brewpi-service should be split into separate API framework and Plugin repositories.
This is the API repository. It is responsible for:
Backend code (controllerbox or legacy) will be added to a separate repository.
For now the old code will be moved to a separate directory, until it can be removed completely.
Cross compiled Raspberry Pi docker images are currently supported on brewblox-devcon-spark. This functionality should also be ported to brewblox-service
Whenever a new commit is pushed to an open PR, we should run our automated test in for example Travis and report test results and coverage.
Swagger attempts to run the local spec through the online validator, and fails because that can't access the 192.168.0.5 address.
resin/raspberry-pi-python is both not supported, and intended for Raspberry Pi 1 and Zero.
Correct should be resin/raspberrypi3-python
Create boilerplate configuration that can be copied for any new plugin project.
Should not include production code, but management boilerplate from things like setup.py
, MANIFEST.in
, tox.ini
etc etc.
brewblox_logger was implemented in brewblox-devcon-spark to preserve readable formatting in log messages when __name__
exceeded column width.
This is a generic feature best suited for implementation in service itself.
The service should accept new configuration
The service should return randomized values for each leaf node in the configuration when queried.
During docker image build, each child image of brewblox-service correctly inherits a filled /wheels directory, but does not skip building already-present wheels.
Configuration was simplified in brewblox-devcon-spark by introducing the .env file, and moving coveragerc to tox.ini
This should be ported to the other repositories
Docker + docker compose deployment of a service cloud
Use Registrator / Consul to look up url of features
We are interested in the following data points:
We want to filter on the following data points / properties:
We want to simultaneously display data from (including all members):
Use docker manifests to deploy multiple images for the same tag.
Both AMD and ARM pull brewblox/brewblox-service:latest
, and both get the correct image.
Docker containers on raspberry
Service features often use values placed in app['config']
by commandline arguments.
It is not transparent which keys are used by which features. The ServiceFeature class should allow registering config keys in order to generate clear and concise error messages when config is not provided.
Many features start long-running background tasks, and have to close them in their shutdown() function.
Centrally managing these tasks would reduce boilerplate code.
Not all services need both - don't start both when calling events.setup(app)
If RabbitMQ is not online, the reconnect logs an error every second. This message should be prevented.
push new events to clients
Using old/ as a source, reimplement the Flask framework in new/.
Includes plugin manager, does not include SSE or InfluxDB.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.