Conversation
️✅ There are no secrets present in this pull request anymore.If these secrets were true positive and are still valid, we highly recommend you to revoke them. 🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request. |
|
@BlueManCZ proč jste si vybrali Orval? Nelíbil se vám výstup z @hey-api? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ContWatch v2 is a ground-up rewrite of both the backend and frontend. The core domain — IoT data aggregation, real-time monitoring, and device control — remains the same, but the entire stack has been replaced and features that were incomplete or backend-only in v1 are now fully realized.
Backend
Frontend
What Changed
Dashboard — v1 had a basic overview page with handler status tiles rendered via Jinja2 templates. v2 has a fully interactive dashboard with live-updating tiles, switches, sliders, buttons, and sparklines in a responsive grid, plus a widget wizard for bulk-adding widgets from auto-detected devices.
Workflow editor — v1 had the workflow engine in the backend (event listeners, routines with conditions, barriers, payload modifiers, actions) configured through server-rendered HTML dialogs. v2 replaces this with a visual ReactFlow node graph editor with 9 node types (handler listener, attribute reader/listener, evaluator, condition, aggregator, negation, logger, display, action performer), cycle validation, and auto-save.
Analytics — v1 had an inspector page with Chart.js charts and a date selector, rendered as a Flask template. v2 rebuilds this as a React SPA with daily stats views powered by TimescaleDB continuous aggregates, multi-attribute comparison, configurable time ranges, and out-of-range data detection with bulk cleanup.
Handler types — v1 had 4 types (Serial, HTTP, Shelly Plug, Jiabaida BMS). The Must PV/PH Inverter was added shortly before v2. v2 carries all forward, splits Shelly into Gen1/Gen2 variants, and adds a Shelly Duo handler. New device auto-detection wizard, per-handler action confirmation, and live status indicators with trend detection.
User management — v1 had no authentication. v2 adds multi-user JWT auth with admin/user roles, refresh tokens, account lockout, rate limiting on login, and optional Turnstile CAPTCHA.
System stats — New page showing server uptime, CPU/memory usage, database size, data ingestion rate, and connected Socket.IO clients.
Logs — v1 had a backend logger. v2 adds a frontend log viewer with level/source filtering and bulk clear.
Deployment — v1 had no containerization — just a
run.pyentry point and an nginx.conf sample. v2 has a full Docker Compose setup with TimescaleDB, healthchecks, device passthrough for serial ports, a build-stage frontend container, and Nginx reverse proxy with WebSocket support. Security headers (CSP, HSTS, X-Frame-Options) are enforced via FastAPI middleware.i18n — v1 was English-only with no i18n framework. v2 has full i18next integration with English and Czech translations, including proper plural forms.