Child Onboarding
Onboarding turns a local candidate into an authorized, associated AirNgin Child.
Canonical flow
Mobile: Add via Gateway
→ select an authorized Gateway
→ open HTML onboarding session
→ discovery or manual native configuration
→ Device lookup / Device definition
→ compatibility check
→ collect gatewayConfig
→ up/onboard/req/AES
→ Backend authorization + Project rules
→ create/activate association
→ dn/onboard/rsp/{reqId}/AES
→ local activation + sync
Discovery is not onboarding
Discovery only finds a candidate. None of these create association authority:
- observing a BLE advertisement
- finding a Modbus slave
- learning an IP or MAC address
- Device lookup
- an HTML temporary session
Association becomes authoritative only after Backend onboarding succeeds.
Same-Master rules
If the Child is in another Project:
- unassigned → may enter the target Project
- same Master + no active association → Backend may move Project membership, then bind
- same Master + active association → explicit unbind is required first
- different Master → reject
Reassociation
Gateway A active association
→ explicit unbind
→ old row becomes historical
→ authorize/onboard Gateway B
→ create new active association
The Child DeviceSerial and history are preserved.
gatewayConfig
Per-Operation native configuration may be stored under parameterJson.gatewayConfig, for example driverKey, transport, protocol, busId, slaveId, or register.
The Backend stores this configuration but does not execute native protocol semantics; the Gateway Driver interprets it.