This document covers development rules and conventions specific to AllSpark Edge Server. These rules are mandatory for all contributors, including automated/agentic coding tools.
All operational settings must be stored in python/config.yaml.
- No local JSON: The local server has been refactored away from legacy JSON configurations. Do not write or rely on
.jsonsettings files, prefer.yamlformat locally. JSON formatting is still used for send/receive to/from mobile clients. - Namespaces: Configurations must be split into two explicit namespaces:
mobile_client(for device telemetry and synchronization endpoints) andcontrol_plane(web dashboard and dashboard dependencies). - Auto-generation: The server must automatically handle fallback implementations and auto-generate any missing safe default configuration schemas upon launch.
- Python First: The server backend and GUI are Python-based. Do not use legacy Node.js workflows.
- NiceGUI Control Plane: The Edge server control plane is built using NiceGUI. Routing is natively managed by decorators (e.g.
@ui.page('/route')). When creating pages, add a call inside the main process to initialize them dynamically.
For anomaly event monitoring and signaling, utilize local native directory-watching mechanisms within the Control Plane GUI for tracking events and system logs.
All dependencies must use exact, pegged versions (no ^, ~, or * ranges). This prevents version drift across environments and ensures reproducible builds for security.
- Enforce proper Python styling guides (
flake8/blackwhen applicable). - Keep requirements updated using frozen
requirements.txt.
The allspark-edge-server repository uses Release Please to automate CHANGELOG generation and semantic versioning. Your PR titles must follow Conventional Commit standards (e.g., feat:, fix:, chore:).