Skip to content

Naming Conventions

Public Alias

All public-facing documentation uses CanEast as the sanitized alias. No real IPs, hostnames, or ports in the public docs tree. sanitize.py enforces this on every pipeline run.

Node Naming Pattern

Pattern: {region}{site}{type}{n}

Segment Meaning Values
region Geographic region cae (Canada East), caw (Canada West), cac (Canada Central)
site Site number 1, 2, 3...
type Device type node, mqtt, fw, jmp, ot
n Sequential number 1, 2, 3...

Region codes

Code Region Current sites
cae Canada East cae1 (primary home), cae2 (future), cae3 (future)
caw Canada West caw1 (future)
cac Canada Central future

Examples: - site1node3 -- site 1, compute node 3 - site1mqtt1 -- site 1, MQTT broker 1 - site1fw1 -- site 1, firewall 1 - site1jmp1 -- site 1, jump box 1

See ADR-0024 for full rationale.

OT Sensor Naming Pattern

Pattern: site{cluster}ot{zone}{type}{nn}

Where {type} is a 3-char function code (see ADR OT-0001 for full registry) and {nn} is 2-digit zero-padded.

Code Full Name
snr Sensor node (multi-sensor, ESP32 or equivalent)
cam Vision/camera node
gwy Gateway node (protocol bridge, MQTT broker)
ctr Controller node (actuator, relays, valves)
dsp Display node
pwr Power monitor node
hvc HVAC node
mtr Motor/mechanical node
aud Audio node
net Network node
sec Security node
env Environmental node
Zone Location
ot-zone Basement
ot-zone Main floor / garage
ot-zone Outdoor
ot-zone Rack monitoring

Example: site1ot1snr01 -- cluster 1, basement zone, sensor node 01

See ADR OT-0001 for full rationale and type code registry.

MQTT Topic Structure

Pattern: site1/ot{zone}/{type}{nn}/{measurement}

Node-name to topic mapping is deterministic: strip site digit from region prefix, keep zone and type+sequence, join with slashes. Example: site1ot1snr01 โ†’ topic prefix site1/ot-zone/snr01/

Topic Description
site1/ot-zone/snr01/level Sump pit level in mm (HC-SR04)
site1/ot-zone/snr01/flood Float switch state (0/1)
site1/ot-zone/snr01/status Firmware heartbeat
site1/ot-zone/snr01/rssi WiFi signal strength

Phase 6 planned (manufacturing QC):

Topic Description
site1/ot/manufacturing/qc/pass QC pass event
site1/ot/manufacturing/qc/fail QC fail event

ADR Numbering

Series Scope Current count
0001+ Platform-wide decisions 0001-0030
OT-0001+ OT-specific decisions OT-0001-OT-0006

Total: 36 ADRs

Branch Naming

Pattern Use
feature/short-description New functionality
fix/short-description Bug or config fix
docs/short-description Documentation only
hotfix/short-description Urgent fix -- 24h max lifetime
release/ot-x.y.z OT GitFlow release branches only

Commit Message Format (Conventional Commits)

Pattern: <type>(<scope>): <description>

Types: feat, fix, docs, chore, refactor, test, ci

Examples: - feat(ansible): add common role with NTP and timezone config - fix(esp32): correct HC-SR04 trigger pin assignment - docs(adr): add ADR-0022 ADO consolidation - ci(pipeline): add generate-context step to pipeline