apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/fury.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: cc1d2b8395d8179556d4572e4d1bdf6e creationTimestamp: "2026-05-31T09:47:26Z" generation: 7 labels: branch: main build: "80" context: release created-by-lighthouse: "true" event-GUID: b7242228-5cd5-11f1-8405-a4c7cc0ea378 lighthouse.jenkins-x.io/baseSHA: 11b10daee210a79fabc10c8d9eeabe151c6154f1 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1780220846426" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: encapitaltrade-fury-main-release-rp45p lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 11b10daee210a79fabc10c8d9eeabe151c6154f1 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: fury lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: encapitaltrade-fury-main-release-gs8cv-from-build-pack-pod provider: github repository: fury tekton.dev/pipeline: encapitaltrade-fury-main-release-gs8cv 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.18 operation: Update time: "2026-05-31T09:48:54Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:completedTimestamp: {} f:status: {} manager: jx-promote-0.6.31 operation: Update time: "2026-05-31T09:49:34Z" - 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-05-31T09:49:47Z" name: greencapitaltrade-fury-main-80 namespace: jx resourceVersion: "65384556" uid: a5f2211a-5362-4f28-b53a-8f3c3d3e9faa spec: baseSHA: 11b10daee210a79fabc10c8d9eeabe151c6154f1 batchPipelineActivity: {} build: "80" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/fury/main/80.log completedTimestamp: "2026-05-31T09:49:20Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: fury gitUrl: https://github.com/greencapitaltrade/fury.git lastCommitMessage: | feat(asset): SIM-tracking customer fields + drop dead assetContracts back-office surface Customer-facing addition (3 fields on the Asset GraphQL type): - subscription_state active | lapsing | lapsed | none - active_subscription_end_date drives 'renew before X' badge - first_delivered_on 'owned since X' display All three are populated by the Bifrost asset.asset stored computed fields landed in #177 (asset_subscription_state.py walks the contract_sale chain unit lot -> stock.move -> sale.order.line -> contract.line). When Bifrost is on a pre-18.0.2.4.0 deployment the fields come back null and the resolver passes that through, so older deploys keep working. Back-office cleanup (matches the user direction — onboarding, activating, and deactivating SIMs/devices live in Hulk/Appsmith talking to Bifrost asset_management APIs directly, NOT in Fury): - assetContracts query REMOVED - createAssetContract mutation REMOVED - updateAssetContract mutation REMOVED - terminateAssetContract mutation REMOVED - AssetContract type REMOVED - ContractType / ContractStatus enums REMOVED - ContractTerms / ContractFinancials types REMOVED from generated types (kept in src/ schema/asset/types.ts because BusinessModel Config still uses them) - bifrost-client methods getAssetContracts / createAssetContract / updateAssetContract / terminateAssetContract REMOVED The entire assetContracts surface was dead — Bifrost had no controller at /api/asset/contracts (or its /create / /update / /terminate siblings), and grep confirmed neither Flash nor Sparq references the query or its hook. Removing it shrinks Fury by ~520 lines and removes a confusing dead path that the recent vehicle_id -> asset_id hard rename had to also touch needlessly. Customer-facing asset subscription tracking now flows through contract.contract + contract_sale (see Bifrost asset_subscription_state.py from #177). Back-office operations on those contracts (creating, terminating, suspending) live in Hulk/Appsmith, not Fury. Tests: - src/__tests__/asset-contracts-removed.test.ts pins both directions: the dead surface stays removed, the 3 new SIM subscription fields stay on Asset. - All 75 existing tests still pass. - tsc --noEmit clean. - npm run generate regenerated src/schema/types.ts (zero remaining AssetContract / Contract* references). lastCommitSHA: 3c2711daefe86a355c6e50f1d0f55facff7b063c message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/fury/main releaseNotesURL: https://github.com/greencapitaltrade/fury/releases/tag/v2.27.0 startedTimestamp: "2026-05-31T09:47:26Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-05-31T09:49:20Z" name: Release startedTimestamp: "2026-05-31T09:48:20Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4039 startedTimestamp: "2026-05-31T09:49:20Z" status: Succeeded startedTimestamp: "2026-05-31T09:49:20Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-05-31T09:49:37Z" name: from build pack startedTimestamp: "2026-05-31T09:47:30Z" status: Succeeded steps: - completedTimestamp: "2026-05-31T09:47:33Z" name: Git Clone startedTimestamp: "2026-05-31T09:47:30Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:36Z" name: Next Version startedTimestamp: "2026-05-31T09:47:33Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:39Z" name: Jx Variables startedTimestamp: "2026-05-31T09:47:36Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:59Z" name: Build Npm Install startedTimestamp: "2026-05-31T09:47:40Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:00Z" name: Build Npm Test startedTimestamp: "2026-05-31T09:47:59Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:04Z" name: Check Registry startedTimestamp: "2026-05-31T09:48:01Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:43Z" name: Build Container Build startedTimestamp: "2026-05-31T09:48:05Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:54Z" name: Promote Changelog startedTimestamp: "2026-05-31T09:48:43Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:58Z" name: Promote Helm Release startedTimestamp: "2026-05-31T09:48:55Z" status: Succeeded - completedTimestamp: "2026-05-31T09:49:37Z" name: Promote Jx Promote startedTimestamp: "2026-05-31T09:48:59Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-05-31T09:49:37Z" name: from build pack startedTimestamp: "2026-05-31T09:47:30Z" status: Succeeded steps: - completedTimestamp: "2026-05-31T09:47:33Z" name: Git Clone startedTimestamp: "2026-05-31T09:47:30Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:36Z" name: Next Version startedTimestamp: "2026-05-31T09:47:33Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:39Z" name: Jx Variables startedTimestamp: "2026-05-31T09:47:36Z" status: Succeeded - completedTimestamp: "2026-05-31T09:47:59Z" name: Build Npm Install startedTimestamp: "2026-05-31T09:47:40Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:00Z" name: Build Npm Test startedTimestamp: "2026-05-31T09:47:59Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:04Z" name: Check Registry startedTimestamp: "2026-05-31T09:48:01Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:43Z" name: Build Container Build startedTimestamp: "2026-05-31T09:48:05Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:54Z" name: Promote Changelog startedTimestamp: "2026-05-31T09:48:43Z" status: Succeeded - completedTimestamp: "2026-05-31T09:48:58Z" name: Promote Helm Release startedTimestamp: "2026-05-31T09:48:55Z" status: Succeeded - completedTimestamp: "2026-05-31T09:49:37Z" name: Promote Jx Promote startedTimestamp: "2026-05-31T09:48:59Z" status: Succeeded version: 2.27.0 status: {}