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: 94105e9779b0519a635f0846f801bfb0 creationTimestamp: "2026-09-05T05:59:32Z" generation: 7 labels: branch: main build: "215" context: release created-by-lighthouse: "true" event-GUID: f2462ee0-a8ee-11f1-804e-80ca4a8e54ec lighthouse.jenkins-x.io/baseSHA: fadd539a5bc1f5e3c9966b14daebaa4bb303c5f7 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1788587971942" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-bifrost-main-release-4gzwz lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: fadd539a5bc1f5e3c9966b14daebaa4bb303c5f7 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-c2lw2-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-05T06:04:27Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:completedTimestamp: {} f:status: {} manager: jx-promote-0.6.45 operation: Update time: "2026-09-05T06:05:56Z" - 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:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-09-05T06:06:57Z" name: greencapitaltrade-bifrost-main-215 namespace: jx resourceVersion: "324682406" uid: 10cf7fb7-8f07-4bc7-af7a-864cfc9eb513 spec: baseSHA: fadd539a5bc1f5e3c9966b14daebaa4bb303c5f7 batchPipelineActivity: {} build: "215" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/bifrost/main/215.log completedTimestamp: "2026-09-05T06:05:25Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: bifrost gitUrl: https://github.com/greencapitaltrade/bifrost.git lastCommitMessage: | fix(asset): let contracts decide feature access, not the enabled flag `check_asset_feature_access` refused before it ever consulted contracts: if not self.asset_management_enabled: raise UserError("Asset management is not enabled for your company...") That contradicts `get_enabled_features`, whose own docstring says features are derived from contracts "regardless of the asset_management_enabled boolean". The two disagreed about the same company: HGnG held a live asset_team_management contract line, `has_asset_feature` returned True for it, and creating a team still raised. Entitled by one path, refused by the other — which is what blocked provisioning their operator teams, and cost an hour to find because the error names neither the contract nor the flag. The boolean survives as a *grant* inside `get_enabled_features` (a company with it set but no contract still gets asset_base). Two live companies run exactly that way, so removing it outright would have cut them off; it simply no longer blocks a company the contracts already entitle. Tests cover both directions and the two regressions available here: a contract-entitled company with the flag off is admitted, a company with neither is still refused, a flag-only company keeps asset_base, and holding one feature does not grant another. Two things the tests surfaced that are worth knowing: asset_team_management declares asset_rider_management as a prerequisite (it is a paid upgrade from it), and `get_enabled_features` is @ormcache'd, so `invalidate_recordset` leaves a freshly entitled company reading as unentitled. Co-Authored-By: Claude Opus 5 lastCommitSHA: 1f020ec9845f18d647500ca6fecdebed2be50297 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/bifrost/main releaseNotesURL: https://github.com/greencapitaltrade/bifrost/releases/tag/v6.95.11 startedTimestamp: "2026-09-05T05:59:32Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-09-05T06:05:25Z" name: Release startedTimestamp: "2026-09-05T06:04:25Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5656 startedTimestamp: "2026-09-05T06:05:25Z" status: Succeeded startedTimestamp: "2026-09-05T06:05:25Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-09-05T06:06:49Z" name: from build pack startedTimestamp: "2026-09-05T05:59:36Z" status: Succeeded steps: - completedTimestamp: "2026-09-05T05:59:58Z" name: Git Clone startedTimestamp: "2026-09-05T05:59:36Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:05Z" name: Next Version startedTimestamp: "2026-09-05T05:59:59Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:11Z" name: Jx Variables startedTimestamp: "2026-09-05T06:00:06Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:14Z" name: Setup Pip Cache startedTimestamp: "2026-09-05T06:00:11Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:15Z" name: Process Config Templates startedTimestamp: "2026-09-05T06:00:15Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:16Z" name: Update Asset Management Version startedTimestamp: "2026-09-05T06:00:16Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:18Z" name: Check Registry startedTimestamp: "2026-09-05T06:00:16Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:16Z" name: Build Container Build startedTimestamp: "2026-09-05T06:00:19Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:27Z" name: Promote Changelog startedTimestamp: "2026-09-05T06:04:17Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:31Z" name: Promote Helm Release startedTimestamp: "2026-09-05T06:04:27Z" status: Succeeded - completedTimestamp: "2026-09-05T06:05:59Z" name: Promote Jx Promote startedTimestamp: "2026-09-05T06:04:31Z" status: Succeeded - completedTimestamp: "2026-09-05T06:06:49Z" name: Publish Org Kb startedTimestamp: "2026-09-05T06:06:00Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-09-05T06:06:49Z" name: from build pack startedTimestamp: "2026-09-05T05:59:36Z" status: Succeeded steps: - completedTimestamp: "2026-09-05T05:59:58Z" name: Git Clone startedTimestamp: "2026-09-05T05:59:36Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:05Z" name: Next Version startedTimestamp: "2026-09-05T05:59:59Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:11Z" name: Jx Variables startedTimestamp: "2026-09-05T06:00:06Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:14Z" name: Setup Pip Cache startedTimestamp: "2026-09-05T06:00:11Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:15Z" name: Process Config Templates startedTimestamp: "2026-09-05T06:00:15Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:16Z" name: Update Asset Management Version startedTimestamp: "2026-09-05T06:00:16Z" status: Succeeded - completedTimestamp: "2026-09-05T06:00:18Z" name: Check Registry startedTimestamp: "2026-09-05T06:00:16Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:16Z" name: Build Container Build startedTimestamp: "2026-09-05T06:00:19Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:27Z" name: Promote Changelog startedTimestamp: "2026-09-05T06:04:17Z" status: Succeeded - completedTimestamp: "2026-09-05T06:04:31Z" name: Promote Helm Release startedTimestamp: "2026-09-05T06:04:27Z" status: Succeeded - completedTimestamp: "2026-09-05T06:05:59Z" name: Promote Jx Promote startedTimestamp: "2026-09-05T06:04:31Z" status: Succeeded - completedTimestamp: "2026-09-05T06:06:49Z" name: Publish Org Kb startedTimestamp: "2026-09-05T06:06:00Z" status: Succeeded version: 6.95.11 status: {}