From 7ced6106aa231f3a57071ef8a9775841b264eb8c Mon Sep 17 00:00:00 2001 From: zaragoza444 Date: Fri, 3 Jul 2026 04:12:28 -0700 Subject: [PATCH] fix(portal): restart LXC services on port bind; register gazette routes before API key gate Co-authored-by: Cursor --- .../deployment/start-omnl-banking-portal.sh | 16 ++++++--- .../token-aggregation/src/api/routes/omnl.ts | 36 ++++++++----------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/scripts/deployment/start-omnl-banking-portal.sh b/scripts/deployment/start-omnl-banking-portal.sh index 7952939..66df740 100644 --- a/scripts/deployment/start-omnl-banking-portal.sh +++ b/scripts/deployment/start-omnl-banking-portal.sh @@ -50,12 +50,20 @@ export OMNL_BANK_ROOT="$ROOT" start() { - local name="$1" dir="$2" cmd="$3" + local name="$1" dir="$2" cmd="$3" port="${4:-}" cd "${ROOT}/${dir}" pkill -f "${ROOT}/${dir}" 2>/dev/null || true + if [[ -n "$port" ]]; then + + fuser -k "${port}/tcp" 2>/dev/null || true + + sleep 1 + + fi + nohup env \ SETTLEMENT_MIDDLEWARE_CONFIG="$SETTLEMENT_MIDDLEWARE_CONFIG" \ @@ -128,15 +136,15 @@ start() { -start token-aggregation services/token-aggregation "npm run start" +start token-aggregation services/token-aggregation "npm run start" 3000 sleep 2 -start settlement-middleware services/settlement-middleware "npm run start" +start settlement-middleware services/settlement-middleware "npm run start" 3011 sleep 2 -start dbis-exchange services/dbis-exchange "npm run start" +start dbis-exchange services/dbis-exchange "npm run start" 3012 sleep 2 diff --git a/services/token-aggregation/src/api/routes/omnl.ts b/services/token-aggregation/src/api/routes/omnl.ts index 22acd28..5358767 100644 --- a/services/token-aggregation/src/api/routes/omnl.ts +++ b/services/token-aggregation/src/api/routes/omnl.ts @@ -54,36 +54,18 @@ function resolveMintTokenAddress(lineId: string, symbol?: string, tokenAddress?: const router = Router(); router.use(omnlRateLimiter); router.use(omnlAuditMiddleware); -router.use(omnlRequireApiKeyInProduction); - -const REGISTRY_ABI: InterfaceAbi = [ - 'function allLineIds() view returns (bytes32[])', - 'function getLine(bytes32 lineId) view returns (tuple(address tokenM0,address tokenM1,uint8 decimals,uint16 iso4217Numeric,bool isXAU,bool active))', -]; - -const COORDINATOR_ABI: InterfaceAbi = [ - 'function mirrorChainSelector() view returns (uint64)', - 'function mirrorReceiver() view returns (address)', - 'function feeToken() view returns (address)', -]; /** - * GET /omnl/openapi.json — OpenAPI 3.0 document for Swagger UI / codegen. + * Public discovery + gazette (registered before production API key gate). */ router.get('/omnl/openapi.json', (_req: Request, res: Response) => { res.type('application/json').json(omnlOpenApi as Record); }); -/** - * GET /omnl/catalog — machine-readable list of OMNL HTTP integrations. - */ router.get('/omnl/catalog', (_req: Request, res: Response) => { res.json(getOmnlApiCatalog()); }); -/** - * GET /omnl/integration-status — which env-backed integrations are present (no secrets). - */ router.get('/omnl/integration-status', (_req: Request, res: Response) => { res.json({ generatedAt: new Date().toISOString(), @@ -91,9 +73,6 @@ router.get('/omnl/integration-status', (_req: Request, res: Response) => { }); }); -/** - * GET /omnl/gazette/notices — GUOSMM official gazette registry (public disclosure). - */ router.get('/omnl/gazette/notices', (_req: Request, res: Response) => { const reg = loadGuosmmNotices(); res.json({ @@ -114,6 +93,19 @@ router.get('/omnl/gazette/notices/:documentId', (req: Request, res: Response) => res.json(notice); }); +router.use(omnlRequireApiKeyInProduction); + +const REGISTRY_ABI: InterfaceAbi = [ + 'function allLineIds() view returns (bytes32[])', + 'function getLine(bytes32 lineId) view returns (tuple(address tokenM0,address tokenM1,uint8 decimals,uint16 iso4217Numeric,bool isXAU,bool active))', +]; + +const COORDINATOR_ABI: InterfaceAbi = [ + 'function mirrorChainSelector() view returns (uint64)', + 'function mirrorReceiver() view returns (address)', + 'function feeToken() view returns (address)', +]; + /** * GET /omnl/reconcile-anchor — same SHA-256 as omnl-reconcile-report.mjs (IPSAS + matrix files). */