SP03 grant enums, device type rank and catalogue lookup
IotDeviceType (SP01's copy) gains HEALTH_VITALS, storedType and a position map; SP01's tests are kept beside SP03's.
SP12 enum appends — PhiAccessKind.CREATE, RPM_ENROLLMENT, three EHR rights, RPM_ALERT
SubscribeQueueBatch binds a WorkQueue stream with DeliverPolicy.All
IOT_EVENTS is a WorkQueue stream (IoT SP00-D6) and NATS refuses any other deliver policy there (10101), so iot-service crashlooped at boot. The policy is read f...
A resume whose bytes are already stored records the key they were stored under
Same rule as the other content-addressed attach paths (shared library abaec95b): fileExt is part of the storage key, so a resume already held under another name...
Every attachment of stored content records the key it was stored under, via the library
The chat-only StoredContentExtension (299a911) becomes ImageService.storageExtension in the shared library, and the other MediaService paths that attach content...
An Img keeps the extension its content is stored under — on dedup and on rename
fileExt is part of the storage key (<imgDatId>.<ext>) every reader builds, but dedup matches on the BYTES. Content already held arriving under another name (a ....
The lit Settings row follows the page's own tab
The rail lit the row the member last clicked, so switching tabs inside a settings page (Docs -> General from the page's tab strip) left the light on the old row...
Label nav and settings entries "Devices (IoT)" (owner, master R5) [skip ci]
Scrape kamowsiot-service on /actuator/prometheus
IoT SP01 Task 34: the kamo-actuator job keeps kamowsiot-service beside kamowssecurity-service, so the four IoT alerts (iot-service's own PrometheusRule) have da...
Daemon jobs for the IoTService tick (every 60 s) and nightly retention purge
IoT SP01 Task 30. Landed after SP02's 75007b2, which already mounts iot-internal-auth, sets iot.service.url and creates IotJobClient with a generic post(job, pa...
Network-backed STOMP authorisation, subscription registry and revocation for the IoT topics
IoT SP01 Task 33. k8s/deployment.yaml gains the iot-internal-auth envFrom (after mlos-internal-auth): origin/main did not mount it yet (Step 1 gate fallback).
Append STREAM_OPENED, STREAM_CLOSED, STREAM_REFUSED activity kinds
Iot.live.> to STOMP relay and the static guards for the IoT topics
IoT SP01 Task 32. The IoT SEND refusals sit just above the voicemail comment so that comment stays attached to its own line.
Task 16 ledger completeness (both test orgs) and Task 17 Luna untouched
Task 16 (A15): sp00verify complete (gatedCalls 74 = eventsMatched 74; outsideToolPlane ESCALATE 12, SEND 7; 51 SI chat lines paired 1:1 with their events, 44 To...
SP01 enums, safety rules, command transitions, event ids, geohash, device-type rank
IoT SP01 Task 2, on SP02's vocabulary and catalogue (a2cc3154, 36cc42b6).
SP01 value columns, org settings, connection, site, space entities and repositories
IoT SP01 Task 3. A whole number reads back at scale 0 (210, not 210.0) so a stored value round-trips equal.
SP01 device, function, state, activity and write-once command entities
IoT SP01 Task 4. IotDevice.providerDeviceType is the provider's suggested primary capability KEY (String): SP02 ships no device-type enum and DiscoveredDevice c...
The SP01 IoT entities map on Hibernate 6.2.13, the line SecurityService runs
IoT SP01 Task 7 (mapping half). EmbeddedAttributeMapping is not in org.hibernate.metamodel.mapping on 6.2; the test reads the address through EmbeddableValuedMo...
An SI that sends a note with no level the internal default back changes nothing
CP97 Task 17's Luna compare found a live SI's own My Master Note, written before KamoCollab, carrying sensitivity MEMBER after one of her own appends in an AUDI...
An AUDIT org's SI is shown the record-link kinds every SI saw before KamoCollab
CP97 Task 17's Luna compare found her tools/list changed by KamoCollab: CP05 Task 7 appended TASK, DOCUMENT, KB_ARTICLE, MEMBER, AI_RUN and SMS_THREAD to Record...
Verify-password records a session re-check marker and limits wrong attempts
IoT SP01 Task 7 (marker half). KREAUTH<***Id> = member id for 3600 s after a correct password; five wrong passwords per session in 15 minutes answer 429 too_man...
Provider vocabulary, registry types 18-24 and the IoT callback path
Pin com.kamo.z.shared.iot in KamoInitializer's repository list
IoT SP01 Task 6. SP00 already added the entry; only the pin is new.
ReauthMarkers and **************** (delayed naks, exhausted callback)
IoT SP01 Task 5. The plan's test used AssertJ fail() without importing it; import added.
Reopening a field shows the settings just saved
The stack's sorted field list was memoized on each field's id and order only, so a change from Save Field (Display on Intake, title, required…) never rebuilt it...
SP00 adopted-deviation rows (master §10 D8-D12, KamoAI §11 D4) and the execution ledger (IoT SP00)
The eight IoT kinds — gated like EmailService with the owner rule, one order, their own marks (IoT SP00)
The /api/iot BFF route; a guard that every notification kind has its label and hint (IoT SP00)
IotRights.ts, the browser mirror of IotRights, parity-checked against the Java set (IoT SP00)
The IoT Devices rights mirrored, their tree, and the IoT Devices permission group (IoT SP00)
TOUR_PENDING lets an app group exist before its tour ships; IOT until IoT SP05 (master SP05-D7)
IoT Devices in the app mirrors, Organization.isIot and its app icon (IoT SP00)
IoT vendor deliveries are not judged by an organization's IP and country rules (IoT SP00-D5)
IoT Devices in every paid plan, never Free; scan com.kamo.z.shared.iot (IoT SP00)
Gate the eight IoT kinds on their rights with the owner rule, in one display order (IoT SP00)
IOT_EVENTS max-bytes in binary units — nats CLI 0.5 refuses the bare 10737418240 (IoT SP00)
Seed the IoT administration rights to CONFIGURE_SYSTEM holders on the boot that introduces them (IoT SP00)
The IoT tour needs no lineage: every Show Tour right is already on for every role (fefd98c2).
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
