Feat : Update PR as comment

This commit is contained in:
Manendra Pal Singh
2026-02-26 14:45:35 +05:30
parent 18303eb1b5
commit 9d57d3b8f1
31 changed files with 1212 additions and 478 deletions

89
config/audit-fields.yaml Normal file
View File

@@ -0,0 +1,89 @@
auditRules:
default:
- context.transaction_id
- context.message_id
- context.action
- context.domain
- context.bap_id
- context.bpp_id
discover:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.filters
- message.spatial
select:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:buyer.beckn:id
- message.order.beckn:seller
- message.order.beckn:orderItems.beckn:acceptedOffer.beckn:id
- message.order.beckn:orderAttributes
init:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:id
- message.order.beckn:buyer.beckn:id
- message.order.beckn:orderValue.value
- message.order.beckn:payment.beckn:paymentStatus
confirm:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:id
- message.order.beckn:orderStatus
- message.order.beckn:buyer.beckn:id
- message.order.beckn:payment.beckn:txnRef
- message.order.beckn:payment.beckn:paymentStatus
update:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:id
- message.order.beckn:orderStatus
- message.order.beckn:fulfillment.beckn:deliveryAttributes.sessionStatus
track:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:id
cancel:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:id
- message.order.beckn:orderStatus
- message.order.beckn:buyer.beckn:id
rating:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.id
- message.value
- message.category
support:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.ref_id
- message.ref_type

View File

@@ -16,6 +16,25 @@ http:
idle: 30
pluginManager:
root: ./plugins
# OpenTelemetry (OTLP) - metrics and traces sent to OTEL collector
plugins:
otelsetup:
id: otelsetup
config:
serviceName: "beckn-one-bap"
serviceVersion: "1.0.0"
environment: "development"
domain: "ev_charging"
otlpEndpoint: "otel-collector-bap:4317"
enableMetrics: "true"
networkMetricsGranularity: "2min"
networkMetricsFrequency: "4min"
enableTracing: "true"
enableLogs: "true"
timeInterval: "5"
auditFieldsConfig: "/app/config/audit-fields.yaml"
modules:
- name: bapTxnReceiver
path: /bap/receiver/

View File

@@ -16,6 +16,23 @@ http:
idle: 30
pluginManager:
root: ./plugins
# OpenTelemetry (OTLP) - metrics and traces sent to OTEL collector, then to Loki/backend
plugins:
otelsetup:
id: otelsetup
config:
serviceName: "beckn-one-bpp"
serviceVersion: "1.0.0"
environment: "development"
domain: "ev_charging"
otlpEndpoint: "otel-collector-bpp:4317"
enableMetrics: "true"
networkMetricsGranularity: "2min"
networkMetricsFrequency: "4min"
enableTracing: "true"
enableLogs: "true"
timeInterval: "5"
auditFieldsConfig: "/app/config/audit-fields.yaml"
modules:
- name: bppTxnReceiver
path: /bpp/receiver/

View File

@@ -1,221 +0,0 @@
appName: "onix"
log:
level: debug
destinations:
- type: stdout
contextKeys:
- transaction_id
- message_id
- subscriber_id
- module_id
http:
port: 8080
timeout:
read: 30
write: 30
idle: 30
pluginManager:
root: ./plugins
remoteRoot: ""
modules:
- name: bapTxnReciever
path: /bap/reciever/
handler:
type: std
role: bap
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 10.81.192.4:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signValidator:
id: signvalidator
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bapTxnReciever-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bap
steps:
- validateSign
- addRoute
- validateSchema
- name: bapTxnCaller
path: /bap/caller/
handler:
type: std
role: bap
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 192.168.1.1:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signer:
id: signer
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bapTxnCaller-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bap
steps:
- validateSchema
- addRoute
- sign
- name: bppTxnReciever
path: /bpp/reciever/
handler:
type: std
role: bpp
subscriberId: bpp1
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 192.168.1.1:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signValidator:
id: signvalidator
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bppTxnReciever-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bpp
steps:
- validateSign
- addRoute
- validateSchema
- name: bppTxnCaller
path: /bpp/caller/
handler:
type: std
role: bpp
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 192.168.1.1:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signer:
id: signer
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bppTxnCaller-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bpp
steps:
- validateSchema
- addRoute
- sign

View File

@@ -1,114 +1,113 @@
appName: "onix-ev-charging"
log:
level: debug
destinations:
- type: stdout
contextKeys:
- transaction_id
- message_id
- subscriber_id
- module_id
- parent_id
# OpenTelemetry (OTLP) - metrics and traces sent to OTEL collector, then to Loki/backend
plugins:
otelsetup:
id: otelsetup
config:
serviceName: "onix-ev-charging-bap"
serviceVersion: "1.0.0"
environment: "development"
domain: "ev_charging"
otlpEndpoint: "otel-collector:4317"
enableMetrics: "true"
networkMetricsGranularity: "2min"
networkMetricsFrequency: "4min"
enableTracing: "true"
enableLogs: "true"
timeInterval: "5"
auditFieldsConfig: "/app/config/audit-fields.yaml"
# this is the port for the bap plugin where bap app can dump the requests to the plugin
http:
port: 8001
port: 8080
timeout:
read: 30
write: 30
idle: 30
pluginManager:
root: /app/plugins
remoteRoot: /mnt/gcs/plugins/plugins_bundle.zip
modules:
# BAP Receiver - Receives callbacks from CDS (Phase 1) and BPPs (Phase 2+)
# Phase 1: Receives on_search from CDS with aggregated catalog
# Phase 2+: Receives callbacks from BPPs (on_select, on_init, on_confirm, etc.)
- name: bapTxnReceiver
path: /bap/receiver/
- name: bapTxnReciever
path: /bap/reciever/
handler:
type: std
role: bap
subscriberId: ev-charging.sandbox1.com
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://mock-registry:3030
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: simplekeymanager
id: secretskeymanager
config:
networkParticipant: example-bap.com
keyId: bap-key-1
signingPrivateKey: xnKF3BIg3Ei+ZEvxBtK0Mm4GRG1Mr0+K9IrxT6CnHEE=
signingPublicKey: MKA6fln8vmU2Qn80Y7dLzagpaPNqQWOlvGglMo5s0IU=
encrPrivateKey: xnKF3BIg3Ei+ZEvxBtK0Mm4GRG1Mr0+K9IrxT6CnHEE=
encrPublicKey: MKA6fln8vmU2Qn80Y7dLzagpaPNqQWOlvGglMo5s0IU=
projectID: ${projectID}
cache:
id: cache
id: redis
config:
addr: redis-bap:6379
addr: 10.81.192.4:6379
schemaValidator:
id: schemav2validator
id: schemavalidator
config:
type: url
location: https://raw.githubusercontent.com/beckn/protocol-specifications-new/refs/heads/main/api/beckn.yaml
cacheTTL: "3600"
schemaDir: /mnt/gcs/configs/schemas
signValidator:
id: signvalidator
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfig: /app/config/bapTxnReciever-routing.yaml
routingConfigPath: /mnt/gcs/configs/bapTxnReciever-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id,parent_id
contextKeys: transaction_id,message_id
role: bap
steps:
- validateSign
- addRoute
- validateSchema
# BAP Caller - Entry point for all requests from BAP
# Phase 1: Routes search to external CDS for aggregation
# Phase 2+: Routes other requests directly to BPP (bypasses CDS)
# Uses bpp_uri from context for dynamic routing in Phase 2+
- name: bapTxnCaller
path: /bap/caller/
handler:
type: std
role: bap
subscriberId: ev-charging.sandbox1.com
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 192.168.1.1:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signer:
id: signer
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bapTxnCaller-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bap
steps:
- validateSchema
- addRoute
- sign
- name: bppTxnReciever
path: /bpp/reciever/
handler:
type: std
role: bpp
subscriberId: bpp1
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
@@ -118,41 +117,88 @@ modules:
registry:
id: registry
config:
url: http://mock-registry:3030
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: simplekeymanager
id: secretskeymanager
config:
networkParticipant: example-bap.com
keyId: bap-key-1
signingPrivateKey: xnKF3BIg3Ei+ZEvxBtK0Mm4GRG1Mr0+K9IrxT6CnHEE=
signingPublicKey: MKA6fln8vmU2Qn80Y7dLzagpaPNqQWOlvGglMo5s0IU=
encrPrivateKey: xnKF3BIg3Ei+ZEvxBtK0Mm4GRG1Mr0+K9IrxT6CnHEE=
encrPublicKey: MKA6fln8vmU2Qn80Y7dLzagpaPNqQWOlvGglMo5s0IU=
projectID: ${projectID}
cache:
id: cache
id: redis
config:
addr: redis-bap:6379
addr: 192.168.1.1:6379
schemaValidator:
id: schemav2validator
id: schemavalidator
config:
type: url
location: https://raw.githubusercontent.com/beckn/protocol-specifications-new/refs/heads/main/api/beckn.yaml
cacheTTL: "3600"
schemaDir: /mnt/gcs/configs/schemas
signValidator:
id: signvalidator
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfig: /app/config/bapTxnCaller-routing.yaml
signer:
id: signer
routingConfigPath: /mnt/gcs/configs/bppTxnReciever-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id,parent_id
role: bap
contextKeys: transaction_id,message_id
role: bpp
steps:
- validateSign
- addRoute
- validateSchema
- name: bppTxnCaller
path: /bpp/caller/
handler:
type: std
role: bpp
httpClientConfig:
maxIdleConns: 1000
maxIdleConnsPerHost: 200
idleConnTimeout: 300s
responseHeaderTimeout: 5s
plugins:
registry:
id: registry
config:
url: http://localhost:8080/reg
retry_max: 3
retry_wait_min: 100ms
retry_wait_max: 500ms
keyManager:
id: secretskeymanager
config:
projectID: ${projectID}
cache:
id: redis
config:
addr: 192.168.1.1:6379
schemaValidator:
id: schemavalidator
config:
schemaDir: /mnt/gcs/configs/schemas
signer:
id: signer
publisher:
id: publisher
config:
project: ${projectID}
topic: bapNetworkReciever
router:
id: router
config:
routingConfigPath: /mnt/gcs/configs/bppTxnCaller-routing.yaml
middleware:
- id: reqpreprocessor
config:
contextKeys: transaction_id,message_id
role: bpp
steps:
- validateSchema
- addRoute

View File

@@ -1,24 +0,0 @@
auditRules:
default:
- context.transaction_id
- context.message_id
- context.action
- context.domain
- context.bap_id
- context.bpp_id
search:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.intent
select:
- context.transaction_id
- context.message_id
- context.action
- context.timestamp
- message.order.beckn:buyer.beckn:id
- message.order.beckn:orderItems.beckn:acceptedOffer.beckn:id

View File

@@ -1,47 +1,25 @@
# ONIX BAP Receiver Routing Configuration
# Supports Phase 1 (Discover Aggregation) and Phase 2+ (Direct BPP Callbacks)
# Phase 1: Discover Aggregation
# Phase 2+: Other Callbacks (Direct from BPPs to BAP, NO CDS involvement)
# These routes use bap_uri from context to route callbacks back to originating BAP
routingRules:
# Phase 1: on_discover callback to BAP (routed to mock-bap for testing)
- domain: ev_charging_network
version: "1.0.0"
targetType: url
- domain: "ONDC:TRV10"
version: "2.0.0"
routingType: "bpp"
target:
url: http://mock-bap:9001
excludeAction: false
url: "https://gateway.example.com"
endpoints:
- on_discover
# Phase 2+: Other callbacks to BAP (routed to mock-bap for testing)
- domain: ev_charging_network
version: "1.0.0"
targetType: url
target:
url: http://mock-bap:9001
excludeAction: false
- search
- domain: "ONDC:TRV10"
version: "2.0.0"
routingType: "bpp"
endpoints:
- on_select
- on_init
- on_confirm
- on_status
- on_track
- on_cancel
- on_update
- on_rating
- on_support
- select
- init
- confirm
- status
- cancel
- domain: "ONDC:TRV12"
version: "2.0.0"
routingType: "bpp"
endpoints:
- select
- init
- confirm
- status

View File

@@ -1,23 +1,20 @@
routingRules:
- domain: "ONDC:TRV10"
version: "2.0.0"
routingType: "bap"
routingType: "url"
target:
url: "https://services-backend/trv/v1"
endpoints:
- on_search
- on_select
- on_init
- on_confirm
- on_status
- on_update
- on_cancel
- domain: "ONDC:TRV11"
- domain: "ONDC:TRV10"
version: "2.0.0"
routingType: "bap"
routingType: "msgq"
target:
topic_id: "trv_topic_id1"
endpoints:
- on_search
- on_select
- on_init
- on_confirm
- on_status
- on_update
- on_cancel
- on_search