apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/bifrost.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: 779eebc5bc285d5d0e5740f28189742d creationTimestamp: "2026-09-10T15:14:19Z" generation: 8 labels: branch: main build: "239" context: release created-by-lighthouse: "true" event-GUID: 30054f92-ad2a-11f1-9bc0-a5f683880e0f lighthouse.jenkins-x.io/baseSHA: 324977f901ebab840b44f950d5a4b244c3162062 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1789053258993" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-bifrost-main-release-sntg7 lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 324977f901ebab840b44f950d5a4b244c3162062 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: bifrost lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-bifrost-main-release-vzvsm-from-build-pack-pod provider: github repository: bifrost tekton.dev/pipeline: apitaltrade-bifrost-main-release managedFields: - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:branch: {} f:context: {} f:owner: {} f:provider: {} f:repository: {} f:spec: f:lastCommitMessage: {} f:lastCommitSHA: {} f:releaseNotesURL: {} f:version: {} manager: jx-changelog-0.10.29 operation: Update time: "2026-09-10T15:18:53Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} f:pipeline.jenkins-x.io/traceID: {} f:labels: .: {} f:build: {} f:created-by-lighthouse: {} f:event-GUID: {} f:lighthouse.jenkins-x.io/baseSHA: {} f:lighthouse.jenkins-x.io/branch: {} f:lighthouse.jenkins-x.io/buildNum: {} f:lighthouse.jenkins-x.io/context: {} f:lighthouse.jenkins-x.io/id: {} f:lighthouse.jenkins-x.io/job: {} f:lighthouse.jenkins-x.io/lastCommitSHA: {} f:lighthouse.jenkins-x.io/refs.org: {} f:lighthouse.jenkins-x.io/refs.repo: {} f:lighthouse.jenkins-x.io/type: {} f:podName: {} f:tekton.dev/pipeline: {} f:spec: .: {} f:baseSHA: {} f:batchPipelineActivity: {} f:build: {} f:buildLogsUrl: {} f:completedTimestamp: {} f:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:status: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-09-10T15:21:28Z" name: greencapitaltrade-bifrost-main-239 namespace: jx resourceVersion: "338542483" uid: 5c784522-90f9-47c6-ae30-fed7389dfef2 spec: baseSHA: 324977f901ebab840b44f950d5a4b244c3162062 batchPipelineActivity: {} build: "239" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/bifrost/main/239.log completedTimestamp: "2026-09-10T15:21:22Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: bifrost gitUrl: https://github.com/greencapitaltrade/bifrost.git lastCommitMessage: | fix(asset): sudo the ingestion device lookups Deadpool forwards telemetry as the Bifrost service user (uid 2). The four device lookups in asset_iot_data ran without sudo, so Odoo's group-scoped record rule "IoT Device: Company Manager Full Access" -- domain ['|', ('company_id','=',False), ('company_id','in',company_ids)], granted via group_asset_manager, which uid 2 carries -- narrowed them to that user's company_ids. A company missing from that list made every one of its devices invisible to ingestion: Bifrost answered DEVICE_NOT_FOUND for a device that plainly existed, and the consumer negative-cached it for an hour and discarded the frames. Nothing errored. The device authenticated over TCP, its frames reached Kafka, last_seen moved, and not one row was stored. TNT EV (company 17) was onboarded with 40 trackers and stored ZERO telemetry rows for a day, while Optimotion and Finayo ingested normally, purely because 17 had never been added to uid 2. Adding the company unblocked it in production; this makes the lookup stop depending on that list being maintained by hand. Ingestion is a system path -- see ASSET_MANAGEMENT.md 7, admin and system jobs use service credentials by design. _mark_device_seen and _update_device_last_gps already sudo'd their WRITE but not their SEARCH, so they returned early and silently skipped the last_seen bump and the current-location pointer -- which is why lat/lon also sat at 0. Tests cover: a device in a company the service user does not carry must ingest; a genuinely unknown device must still return DEVICE_NOT_FOUND, so sudo cannot mask a real miss; and a canary asserting the unscoped search still returns nothing, so removing the sudo fails loudly. The canary needs group_asset_manager on the fixture user -- every ir.rule on asset.iot.device is group-scoped, so a user in none of those groups is restricted by nothing and the fixture would prove nothing. Tests: 1068 pass, 0 failures (full post_install suite). Co-Authored-By: Claude Opus 5 (1M context) lastCommitSHA: 505a37ddc17d494bc66d4e80b9acdedb5a9c1f60 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/bifrost/main releaseNotesURL: https://github.com/greencapitaltrade/bifrost/releases/tag/v7.8.3 startedTimestamp: "2026-09-10T15:14:19Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-09-10T15:21:22Z" name: from build pack startedTimestamp: "2026-09-10T15:14:23Z" status: Succeeded steps: - completedTimestamp: "2026-09-10T15:14:45Z" name: Git Clone startedTimestamp: "2026-09-10T15:14:23Z" status: Succeeded - completedTimestamp: "2026-09-10T15:14:52Z" name: Next Version startedTimestamp: "2026-09-10T15:14:45Z" status: Succeeded - completedTimestamp: "2026-09-10T15:14:57Z" name: Jx Variables startedTimestamp: "2026-09-10T15:14:52Z" status: Succeeded - completedTimestamp: "2026-09-10T15:15:00Z" name: Setup Pip Cache startedTimestamp: "2026-09-10T15:14:57Z" status: Succeeded - completedTimestamp: "2026-09-10T15:15:02Z" name: Process Config Templates startedTimestamp: "2026-09-10T15:15:01Z" status: Succeeded - completedTimestamp: "2026-09-10T15:15:02Z" name: Update Asset Management Version startedTimestamp: "2026-09-10T15:15:02Z" status: Succeeded - completedTimestamp: "2026-09-10T15:15:05Z" name: Check Registry startedTimestamp: "2026-09-10T15:15:03Z" status: Succeeded - completedTimestamp: "2026-09-10T15:18:42Z" name: Build Container Build startedTimestamp: "2026-09-10T15:15:06Z" status: Succeeded - completedTimestamp: "2026-09-10T15:18:53Z" name: Promote Changelog startedTimestamp: "2026-09-10T15:18:43Z" status: Succeeded - completedTimestamp: "2026-09-10T15:18:58Z" name: Promote Helm Release startedTimestamp: "2026-09-10T15:18:54Z" status: Succeeded - completedTimestamp: "2026-09-10T15:20:32Z" name: Promote Jx Promote startedTimestamp: "2026-09-10T15:18:59Z" status: Succeeded - completedTimestamp: "2026-09-10T15:21:22Z" name: Publish Org Kb startedTimestamp: "2026-09-10T15:20:33Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5729 startedTimestamp: "2026-09-10T15:19:55Z" status: Succeeded startedTimestamp: "2026-09-10T15:19:55Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5730 startedTimestamp: "2026-09-10T15:20:29Z" status: Succeeded startedTimestamp: "2026-09-10T15:20:29Z" status: Succeeded version: 7.8.3 status: {}