package Ġno . nav . sy fo . application Ċ Ċ import Ġcom . auth 0 . j wk . J wk Provider Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . Serialization Feature Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . register Kotlin Module Ċ import Ġio . ktor . application . Application Call Pipeline Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . application . install Ċ import Ġio . ktor . auth . authenticate Ċ import Ġio . ktor . features . Call Id Ċ import Ġio . ktor . features . Content Neg otiation Ċ import Ġio . ktor . features . Status Pages Ċ import Ġio . ktor . http . HttpHeaders Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . jackson . jackson Ċ import Ġio . ktor . response . respond Ċ import Ġio . ktor . routing . routing Ċ import Ġio . ktor . server . engine . Application Engine Ċ import Ġio . ktor . server . engine . embedded Server Ċ import Ġio . ktor . server . netty . Net ty Ċ import Ġio . ktor . util . K tor Experimental API Ċ import Ġjava . util . UUID Ċ import Ġno . nav . sy fo . Environment Ċ import Ġno . nav . sy fo . Vault Secrets Ċ import Ġno . nav . sy fo . application . api . register N ais Api Ċ import Ġno . nav . sy fo . application . api . setup Swagger Doc Api Ċ import Ġno . nav . sy fo . ar be id sg iv ere . api . regist rer Ar be id sg iver Api Ċ import Ġno . nav . sy fo . ar be id sg iv ere . service . Ar be id sg iver Service Ċ import Ġno . nav . sy fo . log Ċ import Ġno . nav . sy fo . metrics . E GEN ME L DT _ SY K ME LD ING _ FAILED _ COUNTER Ċ import Ġno . nav . sy fo . metrics . monitor Http Requests Ċ import Ġno . nav . sy fo . sy k meld ing . api . regist rer E gen meld t Sy k meld ing Api Ċ import Ġno . nav . sy fo . sy k meld ing . error handling . setUp Sy k meld ing ExceptionHandler Ċ import Ġno . nav . sy fo . sy k meld ing . service . E gen meld t Sy k meld ing Service Ċ Ċ @ K tor Experimental API Ċ fun Ġcreate Application Engine ( ĊĠĠĠ Ġenv : ĠEnvironment , ĊĠĠĠ Ġapplication State : ĠApplication State , ĊĠĠĠ Ġvault Secrets : ĠVault Secrets , ĊĠĠĠ Ġj wk Provider : ĠJ wk Provider , ĊĠĠĠ Ġissuer : ĠString , ĊĠĠĠ Ġar be id sg iver Service : ĠAr be id sg iver Service , ĊĠĠĠ Ġe gen meld t Sy k meld ing Service : ĠE gen meld t Sy k meld ing Service Ċ ): ĠApplication Engine Ġ= ĊĠĠĠ Ġembedded Server ( Net ty , Ġenv . application Port ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinstall ( Content Neg otiation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ack son Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Kotlin Module () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( Serialization Feature . WRITE _ DAT ES _ AS _ TIMESTAMP S , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Auth ( vault Secrets , Ġj wk Provider , Ġissuer ) ĊĊĠĠĠĠĠĠĠ Ġinstall ( Call Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Ġ{ ĠUUID . randomUUID (). toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ Ġcall Id : ĠString Ġ-> Ġcall Id . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . X Correlation Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinstall ( Status Pages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Sy k meld ing ExceptionHandler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception < Throwable > Ġ{ Ġcause Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Ca ught Ġexception ", Ġcause ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE GEN ME L DT _ SY K ME LD ING _ FAILED _ COUNTER . inc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . InternalServerError , Ġcause . message Ġ?: Ġ" Unknown Ġerror ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister N ais Api ( application State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Swagger Doc Api () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthenticate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregist rer E gen meld t Sy k meld ing Api ( e gen meld t Sy k meld ing Service ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregist rer Ar be id sg iver Api ( ar be id sg iver Service ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġintercept ( Application Call Pipeline . Monitoring , Ġmonitor Http Requests ()) ĊĠĠĠ Ġ} Ċ