🍗 PCK ZRA Middleware Wiki

Configuration Reference

Every application.yml property, grouped by area. Secrets are shown as placeholders — real values live only in server-side configuration.

Server

PropertyDefaultDescription
server.port8181HTTP port
server.servlet.context-path/pckzraBase URL path
server.address0.0.0.0Listen on all interfaces
server.forward-headers-strategynativeTrust X-Forwarded-* from Nginx
server.error.include-messagealwaysInclude error messages in responses
server.error.include-stacktraceneverNever leak stack traces

Database & JPA

PropertyDefaultDescription
spring.datasource.urljdbc:mariadb://192.168.0.50:3306/pckmiddle?useSSL=false&&characterEncoding=utf8&createDatabaseIfNotExist=trueJDBC URL
spring.datasource.username / password<secret>Database credentials
spring.datasource.hikari.maximum-pool-size20Max connections
spring.datasource.hikari.minimum-idle5Idle connections
spring.datasource.hikari.leak-detection-threshold60000Connection leak warning (ms)
spring.jpa.hibernate.ddl-autovalidateEntities must match migrated schema
spring.flyway.enabledtrueRun migrations on startup
spring.flyway.baseline-on-migrate / validate-on-migratetrueBaseline and validate the schema history

Authentication (Oracle IDM & JWT)

PropertyDefaultDescription
auth.server.urlhttps://ors-idm.msaf.oraclerestaurants.comOracle IDM base
auth.server.jwk-set-endpoint/oauth2/jwksJWKS path
auth.client.id / secret<secret>Oracle client credentials
auth.jwt.validation-enabledfalseON/OFF switch for JWKS validation — currently off for UAT
auth.jwt.issuerOracle IDM URLExpected token issuer
auth.jwt.audienceserver.zra.co.zmExpected audience
auth.jwt.clock-skew300Seconds of tolerance
auth.jwt.jwks-cache-duration3600JWKS cache seconds

External APIs

PropertyDefaultDescription
external.chrilan.base-urlhttps://zra.abc.co.zm/smartinvChrilan Smart API base
external.chrilan.timeout30000Call timeout (ms)
external.chrilan.retry.max-attempts / backoff-delay3 / 1000Retry policy
external.oracle-sts.base-urlhttps://msaf-sts.oraclemicros.com/api/v1Oracle STS base
external.oracle-sts.oidc-authorityOracle IDM URLPKCE authority
external.oracle-sts.client-id / username / password<secret>STS credentials (org PCK)
external.taxint.bearer-token-requiredtrueRequire Bearer header on POS API
No Chrilan API key in configuration Chrilan API keys are stored per store in the database. There is deliberately no chrilan.api.key fallback property.

Menu sync

PropertyDefaultDescription
menu-sync.enabledtrueGlobal sync switch
menu-sync.interval-ms60000Cycle interval (1 minute)

WhatsApp (Whapi)

PropertyDefaultDescription
whapi.api.enabledtrueEnable WhatsApp OTP/notifications
whapi.api.token<secret>Whapi API token
whapi.api.base-urlhttps://gate.whapi.cloudGateway base URL

Frontend & CORS

PropertyDefaultDescription
frontend.base-urlhttps://server.zra.co.zm/pckzraPublic base URL
frontend.cors.allowed-originshttps://server.zra.co.zmPermitted origins
frontend.cors.allowed-methodsGET,POST,PUT,DELETE,OPTIONSPermitted methods
frontend.cors.allow-credentialsfalseNo cross-origin credentials

Middleware behavior

PropertyDefaultDescription
middleware.request-logging.enabled / response-logging.enabledtruePayload capture
middleware.transaction-logging.enabled / conversion-logging.enabledtrueDatabase audit writes
middleware.max-request-size10MBRequest body cap
middleware.timeout.request / response30000 / 60000Timeouts (ms)
rate-limiting.enabledtrueRate limit switch
rate-limiting.requests-per-minute / burst-capacity100 / 200Rate limit policy

Conversion

PropertyDefaultDescription
conversion.fiscal-code-mapping.ASTANDARD_RATEDVAT code mapping
conversion.fiscal-code-mapping.DZERO_RATED_BY_NATURE
conversion.fiscal-code-mapping.EEXEMPT
conversion.fiscal-code-mapping.TSTANDARD_RATED

Monitoring & docs

PropertyDefaultDescription
management.endpoints.web.exposure.includehealth,info,metrics,prometheus,loggersExposed actuator endpoints
management.endpoint.health.show-detailsalwaysDetailed health output
management.metrics.export.prometheus.enabledtruePrometheus metrics
springdoc.swagger-ui.path/swagger-ui.htmlSwagger UI (try-it-out enabled)
springdoc.api-docs.path/v3/api-docsOpenAPI JSON

Async pool

PropertyDefault
spring.task.execution.pool.core-size / max-size / queue-capacity4 / 20 / 200
spring.task.execution.thread-name-prefixTaxint-Chrilan-