diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000..755df45 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,85 @@ +# git-cliff ~ default configuration file +# https://git-cliff.org/docs/configuration +# +# Lines starting with "#" are comments. +# Configuration options are organized into tables and keys. +# See documentation for more information on available options. + +[changelog] +# template for the changelog header +header = """ +# Changelog\n +All notable changes to this project will be documented in this file.\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %} + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }}\ + {% endfor %} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing s +trim = true +# postprocessors +postprocessors = [ + # { pattern = '', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL +] +# render body even when there are no releases to process +# render_always = true +# output file path +# output = "test.md" + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = true +# process each line of a commit as an individual commit +split_commits = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + # Replace issue numbers + #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, + # Check spelling of the commit with https://github.com/crate-ci/typos + # If the spelling is incorrect, it will be automatically fixed. + #{ pattern = '.*', replace_command = 'typos --write-changes -' }, +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^feat", group = "๐Ÿš€ Features" }, + { message = "^fix", group = "๐Ÿ› Bug Fixes" }, + { message = "^doc", group = "๐Ÿ“š Documentation" }, + { message = "^perf", group = "โšก Performance" }, + { message = "^refactor", group = "๐Ÿšœ Refactor" }, + { message = "^style", group = "๐ŸŽจ Styling" }, + { message = "^test", group = "๐Ÿงช Testing" }, + { message = "^chore\\(release\\): prepare for", skip = true }, + { message = "^chore: update CHANGELOG.md", skip = true }, + { message = "^chore\\(deps.*\\)", skip = true }, + { message = "^chore\\(pr\\)", skip = true }, + { message = "^chore\\(pull\\)", skip = true }, + { message = "^chore|^ci", group = "โš™๏ธ Miscellaneous Tasks" }, + { body = ".*security", group = "๐Ÿ›ก๏ธ Security" }, + { message = "^revert", group = "โ—€๏ธ Revert" }, + { message = ".*", group = "๐Ÿ’ผ Other" }, +] +# filter out the commits that are not matched by commit parsers +filter_commits = false +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "oldest" diff --git a/db/CHANGELOG.md b/db/CHANGELOG.md new file mode 100644 index 0000000..4256e34 --- /dev/null +++ b/db/CHANGELOG.md @@ -0,0 +1,89 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [db-gateway-v1.0.0] - 2026-06-04 + +### ๐Ÿš€ Features + +- *(db)* Add influx in db stack +- *(db)* Add traefik config example with actual server +- *(db)* Add rabittmq as mqtt stack +- *(db)* Add influx gateway from previous project +- *(db)* Add mqtt gateway from previous project +- *(db)* Merge datapoint and message +- *(db)* Add SubscribeTyped function and refactor DataPoint structure +- *(db)* Add initial main implementation +- *(db)* Add rest gateway +- *(db)* Add GET current value endpoint +- *(db)* Add GET history endpoint +- *(db)* Add mapping +- *(db)* Add swagger doc +- *(db)* Add parameter for time window in history endpoint +- *(db)* Add basic auth +- *(db)* Add deploiement stack +- *(db)* Add node tag for influx +- *(db)* Remove CO2PPM data over 1'000'000'000 +- *(db)* Add battery field +- *(db)* Add battery REST endpoint +- *(db)* Get mapping dynamically from file +- *(db)* Add endpoint to export influx data to csv +- *(server)* Add traefik entry for ui dashboard +- *(db)* Add co2 watchdog on each room +- *(db)* Add co2-status endpoint in REST API + +### ๐Ÿ› Bug Fixes + +- *(db)* Add missing entrypoint for influx explorer +- *(db)* Add missing hostname for influx access in traefik +- *(db)* Wrong mqtt port +- *(db)* Typo in certResolver +- *(db)* Fail if now defaut user / password for mqtt +- *(db)* Allow gRPC proxy in traefik +- *(db)* Proper api url instead of using swagger doc url +- *(db)* CORS request +- *(db)* Url for api start with https +- *(db)* Get rooms from mapping file +- *(db)* Set time interval for influx limitations +- *(db)* Set higher file limit for influx limitations +- *(db)* Remove authorization for battery status endpoint +- *(db)* Window -> window_open +- *(db)* Push data with partial mapping +- *(db)* Filter random value +- *(db)* Mqtt hostname to keep internal config identique in case of rebuild +- *(db)* Add the room in the returned json +- *(db)* Return time in RFC3339 to avoid breakchange +- *(db)* Return window tag in room status +- *(db)* Return only high co2 room for co2-status endpoint +- *(db)* Return error directly + +### ๐Ÿšœ Refactor + +- *(db)* Move package +- *(db)* Unify env getters +- *(db)* Split campus and room mapping error detection +- *(db)* Map room and node on REST API +- *(db)* Add flag to run without MQTT part +- *(db)* Adapt SQL query for 5 min average +- *(db)* Round averages in SQL queries +- *(db)* Using moving average for room history +- *(db)* Change order for history +- *(db)* Add constante for max QOS +- *(db)* Add constante for defaultTimeout + +### ๐Ÿ“š Documentation + +- *(db)* Add deployement documentation +- *(db)* Fix typo in doc + +### โš™๏ธ Miscellaneous Tasks + +- Init +- *(db)* Typo and respect go guidelines +- *(db)* Get InfluxDB token by secrets +- *(db)* Update critical dependancy +- *(db)* Add pre-commit for swagger documentation +- *(db)* Add local gitignore +- *(db)* Set 30min before offline for battery endpoint + + diff --git a/gateway/CHANGELOG.md b/gateway/CHANGELOG.md new file mode 100644 index 0000000..81a1ac1 --- /dev/null +++ b/gateway/CHANGELOG.md @@ -0,0 +1,55 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [unreleased] + +### โš™๏ธ Miscellaneous Tasks + +- Remove useless gitkeep file + +## [gateway-v1.0.0] - 2026-06-04 + +### ๐Ÿš€ Features + +- Add BLE-to-MQTT gateway implementation +- *(gateway)* Add configuration file +- *(gateway)* Implement BLE-to-MQTT gateway +- *(gateway)* Add MQTTS support with TLS and authentication +- *(gateway)* Add battery level support (key 0x05) +- *(gateway)* Add deduplication and continuous BLE scan + +### ๐Ÿ› Bug Fixes + +- *(gateway)* Fix architecture diagram code block in README +- *(gateway)* Fix architecture diagram code block in README +- *(gateway)* Fix payload decoding endianness and skip preamble Switch temperature and CO2 decoding from little-endian to big-endian to match the Zephyr firmware implementation. Skip the 2-byte company id preamble (0xffff) at the start of the manufacturer data payload. +- *(gateway)* Replace UUID filter with manufacturer data preamble filter +- *(gateway)* Replace UUID filter with manufacturer data preamble filter +- *(gateway)* Fix BLE filtering and MQTT connection validation +- *(gateway)* Use exact payload size filter and improve robustness +- *(gateway)* Revert CO2 range check and add MQTT auto-reconnect + +### ๐Ÿšœ Refactor + +- *(gateway)* Switch from GATT connection to passive BLE advertising + +### ๐Ÿ“š Documentation + +- Add gateway README +- Add overnight test results and measurements graph +- Add overnight test results section to README +- *(gateway)* Add README with architecture and MQTT interface +- *(gateway)* Document MQTT_PASSWORD environment variable in README +- *(gateway)* Add deployment checklist, systemd service and update README +- *(gateway)* Update README with battery field, security fixes and warnings + +### โš™๏ธ Miscellaneous Tasks + +- Init +- *(gateway)* Add Python dependencies file +- *(gateway)* Exclude config.json from repo, add example config +- *(gateway)* Use placeholder values in config.example.json +- *(gateway)* Update config.example.json with TLS and auth fields + + diff --git a/nodes/CHANGELOG.md b/nodes/CHANGELOG.md new file mode 100644 index 0000000..3f7e472 --- /dev/null +++ b/nodes/CHANGELOG.md @@ -0,0 +1,56 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [unreleased] + +### โš™๏ธ Miscellaneous Tasks + +- Remove useless gitkeep file +- Remove zephyr sample file +- Remove release file from repo + +## [nodes-v1.1.0] - 2026-06-04 + +### ๐Ÿš€ Features + +- *(nodes)* Adding management of read error on each values, hence +- *(nodes)* Add the battery level in the ble frame +- *(nodes)* Adding battery percent as new key/value in the BLE frame +- *(nodes)* Using an explicit thread, as it may cause the huge battery usage +- *(nodes)* Setting the fastest BLE advertising frequency to 1 minute instead of 2 + +### ๐Ÿ› Bug Fixes + +- *(nodes)* Changing incorrect comment +- *(nodes)* Using MAC address as BT_ADDR +- *(nodes)* Reduce battery consumption + +### ๐Ÿ“š Documentation + +- *(nodes)* Adding comments in the nodes code + +## [nodes-v1.0.0] - 2026-06-04 + +### ๐Ÿš€ Features + +- *(nodes)* WIP supervisor first implementation +- *(nodes)* Adding thermometer and hygrometer +- *(nodes)* WIP adding first implementation for BLE advertising. +- *(nodes)* Adding co2_level retrieval +- *(nodes)* Adding window status reading +- *(nodes)* Adding nodes firmware v1.0 + +### ๐Ÿ› Bug Fixes + +- *(nodes)* Adjusting broadcasted data to fit definition +- *(nodes)* Fixing switch device tree and wrong ordering of ble values +- *(nodes)* Properly fetching data from temp/hygro sensor +- *(nodes)* Co2 level fetched as desibed in the documentation +- *(nodes)* Changing window status sensor to have unequipped nodes return 'window is closed' status + +### โš™๏ธ Miscellaneous Tasks + +- Init + + diff --git a/notification_service/CHANGELOG.md b/notification_service/CHANGELOG.md new file mode 100644 index 0000000..735d12b --- /dev/null +++ b/notification_service/CHANGELOG.md @@ -0,0 +1,28 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [unreleased] + +### ๐Ÿš€ Features + +- *(notification)* Spring Boot Teams notification service (#19) +- *(notification)* Add mock mode for local testing without backend (#19 #21) +- *(notification-service)* Replace Teams with Telegram notifications +- *(notification-service)* Add Dockerfile, actuator health and alert deduplication +- *(notification-service)* Adapt to Go backend /api/v1/rooms/high-co2 endpoint + +### ๐Ÿ› Bug Fixes + +- *(notification)* Remove non-existent starter-scheduling dep, target Java 17 + +### ๐Ÿงช Testing + +- *(notification-service)* Add unit tests and clean up Co2Level + +### โš™๏ธ Miscellaneous Tasks + +- *(notification-service)* Add CI/CD pipeline with Docker, SSH deploy and API credentials +- *(notification-service)* Add SAST, dependency scan and DAST security gates + + diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md new file mode 100644 index 0000000..c194050 --- /dev/null +++ b/ui/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [unreleased] + +### ๐Ÿš€ Features + +- *(ui)* Initialize Angular 18 dashboard project +- *(ui)* Create organized folder structure for application +- *(ui)* Configure routing with lazy-loaded components +- *(ci)* Add Docker build, push and SSH deploy pipeline +- *(ui)* Implement interactive room map with REST services and unit tests +- *(ui)* Interactive room map, detail panel redesign and polling +- *(ui)* Dynamic room polling, secure credentials and CO2 levels + +### ๐Ÿ› Bug Fixes + +- *(ui)* Add environment.prod.ts for production builds +- *(ui)* Address code review feedback +- *(ui)* Remove hardcoded credentials and make CO2 spec config-driven + +### ๐Ÿšœ Refactor + +- *(ui)* Simplify room names and remove dead code + +### ๐ŸŽจ Styling + +- *(ui)* Apply Prettier formatting +- *(ui)* Apply Prettier formatting + +### โš™๏ธ Miscellaneous Tasks + +- Init +- *(ui)* Setup GitHub Actions CI/CD pipeline +- *(ui)* Remove commented-out gitignore line for environment.prod.ts +- *(ui)* Add plan.svg floor plan asset +- Remove useless gitkeep file + +