apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/destiny.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: 3ed719ad191643e10dee098d41880555 creationTimestamp: "2026-06-03T18:08:04Z" generation: 6 labels: branch: main build: "42" context: release created-by-lighthouse: "true" event-GUID: 27a91fbe-5f77-11f1-9e32-57358d16fa4e lighthouse.jenkins-x.io/baseSHA: 77e818192a905792f9d43aec0b5a920ca37d6a17 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1780510084211" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-destiny-main-release-8hrn5 lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 77e818192a905792f9d43aec0b5a920ca37d6a17 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: destiny lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-destiny-main-release-jkr57-from-build-pack-pod provider: github repository: destiny tekton.dev/pipeline: apitaltrade-destiny-main-release-jkr57 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-06-03T18:10:25Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:completedTimestamp: {} f:status: {} manager: jx-promote-0.6.31 operation: Update time: "2026-06-03T18:11:26Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} 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: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-06-03T18:11:30Z" name: greencapitaltrade-destiny-main-42 namespace: jx resourceVersion: "74913271" uid: 3170f226-36c5-4e28-8ce1-c5101b46a9e1 spec: baseSHA: 77e818192a905792f9d43aec0b5a920ca37d6a17 batchPipelineActivity: {} build: "42" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/destiny/main/42.log completedTimestamp: "2026-06-03T18:11:03Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: destiny gitUrl: https://github.com/greencapitaltrade/destiny.git lastCommitMessage: | feat: digio digikyc as replacement for direct digilocker Implements PR2 of the per-org Digio rollout. Destiny now pulls identity documents through Digios DigiKYC workflow templates instead of talking to government DigiLocker directly. Per-org credentials are resolved via the existing integration_credentials infra. Hard cut on the legacy direct path. provider/digio_kyc.js exposes createRequest, getStatus, downloadMedia and gatewayUrl. The provider reads the per-org template_name from extra_config so each NBFC can point at its own DigiStudio workflow without code changes. generate_access_token defaults to true so callers always get a GWT id for the gateway URL. createRequest also accepts a per-call template_name override. routes/documents.js exposes POST fetch/digikyc which calls the provider and returns the gateway URL plus the kyc request id. This replaces the GET fetch/digilocker endpoint that drove the old OAuth handshake. routes/callbacks.js is restructured as a multi-entity Digio webhook router. The digio vendor case now dispatches by payload entity: document for eSign, mandate for eNACH, KYC_REQUEST or DIGILOCKER_REQUEST or KYC_ACTION for DigiKYC. The KYC handler acts only on terminal events, reads the application_id back from the reference_id we stamped at create time, calls Get Status to get the structured per-document data, and writes each fetched document into application_user_documents with the relevant execution_request_id stamped in extra_data. Migration 20260603160000-replace-digilocker-with-digio-kyc reads every active digilocker row from document_type_providers, marks them inactive, and inserts mirror rows with provider digio that keep the same provider_doc_code and provider_org_id. The same migration rewrites every flows definition JSONB so step configs that referenced provider digilocker now reference provider digio. Existing in-flight applications keep working without manual flow rewrites. Deletes provider/digilocker.js, the JWKS endpoint in app.js, the DIGILOCKER_BASE_URL key and the digilocker block in chart values, and all six DIGILOCKER secret template entries. tests/unit/digio_kyc_provider.test.js covers createRequest with per-org template_name from extra_config, caller override, missing template name, missing credentials, getStatus, downloadMedia for PDF and XML, invalid doc_type rejection, and per-org frontend_url in gatewayUrl. tests/unit/document_collection.test.js is updated to use provider digio everywhere and the new POST fetch/digikyc route. The new route test seeds an integration_credentials row for org 1 and mocks the Digio Create Request response with nock. VN Credits prod credentials and the Digilocker Only template were verified against the live Digio production endpoint during build. After this PR deploys an operator must POST those credentials to v1 integration_credentials for organization_id 185 with extra config base_url api.digio.in and template_name Digilocker Only. lastCommitSHA: 9fc6aa692c6202ec4d514ed9e9300d23ff641753 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/destiny/main releaseNotesURL: https://github.com/greencapitaltrade/destiny/releases/tag/v1.54.3 startedTimestamp: "2026-06-03T18:08:04Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-06-03T18:11:03Z" name: Release startedTimestamp: "2026-06-03T18:10:03Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4117 startedTimestamp: "2026-06-03T18:11:03Z" status: Succeeded startedTimestamp: "2026-06-03T18:11:03Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-06-03T18:11:29Z" name: from build pack startedTimestamp: "2026-06-03T18:08:08Z" status: Succeeded steps: - completedTimestamp: "2026-06-03T18:08:17Z" name: Git Clone startedTimestamp: "2026-06-03T18:08:08Z" status: Succeeded - completedTimestamp: "2026-06-03T18:08:20Z" name: Next Version startedTimestamp: "2026-06-03T18:08:18Z" status: Succeeded - completedTimestamp: "2026-06-03T18:08:23Z" name: Jx Variables startedTimestamp: "2026-06-03T18:08:21Z" status: Succeeded - completedTimestamp: "2026-06-03T18:09:05Z" name: Build Npm Install startedTimestamp: "2026-06-03T18:08:24Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:06Z" name: Build Container Build startedTimestamp: "2026-06-03T18:09:05Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:25Z" name: Promote Changelog startedTimestamp: "2026-06-03T18:10:07Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:29Z" name: Promote Helm Release startedTimestamp: "2026-06-03T18:10:25Z" status: Succeeded - completedTimestamp: "2026-06-03T18:11:29Z" name: Promote Jx Promote startedTimestamp: "2026-06-03T18:10:30Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-06-03T18:11:29Z" name: from build pack startedTimestamp: "2026-06-03T18:08:08Z" status: Succeeded steps: - completedTimestamp: "2026-06-03T18:08:17Z" name: Git Clone startedTimestamp: "2026-06-03T18:08:08Z" status: Succeeded - completedTimestamp: "2026-06-03T18:08:20Z" name: Next Version startedTimestamp: "2026-06-03T18:08:18Z" status: Succeeded - completedTimestamp: "2026-06-03T18:08:23Z" name: Jx Variables startedTimestamp: "2026-06-03T18:08:21Z" status: Succeeded - completedTimestamp: "2026-06-03T18:09:05Z" name: Build Npm Install startedTimestamp: "2026-06-03T18:08:24Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:06Z" name: Build Container Build startedTimestamp: "2026-06-03T18:09:05Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:25Z" name: Promote Changelog startedTimestamp: "2026-06-03T18:10:07Z" status: Succeeded - completedTimestamp: "2026-06-03T18:10:29Z" name: Promote Helm Release startedTimestamp: "2026-06-03T18:10:25Z" status: Succeeded - completedTimestamp: "2026-06-03T18:11:29Z" name: Promote Jx Promote startedTimestamp: "2026-06-03T18:10:30Z" status: Succeeded version: 1.54.3 status: {}