From 17ee715b4632911cef81766bb1d934ed52c04413 Mon Sep 17 00:00:00 2001 From: TekH Date: Sat, 6 Jun 2026 18:05:53 +0200 Subject: [PATCH] Expand and restructure ReverseProxy routes Added new routes to the `ReverseProxy` configuration, including `receiver-ui-login`, `receiver-ui-sender`, `receiver-ui-envelope`, and others to handle specific paths, HTTP methods, and transformations. Removed outdated routes such as `receiver-ui-static-assets` and `receiver-ui-annotation-fake` to streamline the configuration. Introduced transformations for response headers (e.g., `Cache-Control`) and updated `auth-login` and `auth-envelope-receiver-login` routes with new path patterns and query parameters. Reorganized `receiver-ui` cluster routes to better handle static assets (CSS, JS, Blazor framework, and content) and fake data. --- EnvelopeGenerator.API/yarp.json | 210 +++++++++++++++++--------------- 1 file changed, 114 insertions(+), 96 deletions(-) diff --git a/EnvelopeGenerator.API/yarp.json b/EnvelopeGenerator.API/yarp.json index 840d1932..bf942975 100644 --- a/EnvelopeGenerator.API/yarp.json +++ b/EnvelopeGenerator.API/yarp.json @@ -1,102 +1,120 @@ { - "ReverseProxy": { - "Routes": { - "receiver-ui-receiver": { - "ClusterId": "receiver-ui", - "Order": 100, - "Match": { - "Path": "/receiver/{**catch-all}", - "Methods": [ "GET", "HEAD" ] - } - }, - "receiver-ui-login": { - "ClusterId": "receiver-ui", - "Order": 100, - "Match": { - "Path": "/login/{**catch-all}", - "Methods": [ "GET", "HEAD" ] - } - }, - "receiver-ui-sender": { - "ClusterId": "receiver-ui", - "Order": 100, - "Match": { - "Path": "/sender/{**catch-all}", - "Methods": [ "GET", "HEAD" ] - } - }, - "receiver-ui-envelope": { - "ClusterId": "receiver-ui", - "Order": 100, - "Match": { - "Path": "/envelope/{EnvelopeKey}", - "Methods": [ "GET", "HEAD" ] - }, - "Transforms": [ - { "PathSet": "/index.html" } - ] - }, - "receiver-ui-static-assets": { - "ClusterId": "receiver-ui", - "Order": 999, - "Match": { - "Path": "{**catch-all}", - "Methods": [ "GET", "HEAD" ] - }, - "Transforms": [ - { - "ResponseHeader": "Cache-Control", - "Set": "no-cache, no-store, must-revalidate", - "When": "Always" - }, - { - "ResponseHeader": "Pragma", - "Set": "no-cache", - "When": "Always" - }, - { - "ResponseHeader": "Expires", - "Set": "0", - "When": "Always" - } - ] - }, - "receiver-ui-annotation-fake": { - "ClusterId": "receiver-ui", - "Order": 10, - "Match": { - "Path": "/api/Annotation/{envelopeKey}", - "Methods": [ "GET", "HEAD" ] - }, - "Transforms": [ - { "PathSet": "/fake-data/annotations.json" } - ] - }, - "auth-login": { - "ClusterId": "auth-hub", - "Match": { - "Path": "/api/auth", - "Methods": [ "POST" ] - }, - "Transforms": [ - { "PathSet": "/api/auth/sign-flow" } - ] - }, - "auth-envelope-receiver-login": { - "ClusterId": "auth-hub", - "Match": { - "Path": "/api/Auth/envelope-receiver/{key}", - "Methods": [ "POST" ] - }, - "Transforms": [ - { "PathPattern": "/api/auth/envelope-receiver/{key}" }, - { - "QueryValueParameter": "cookie", - "Set": "true" - } - ] +"ReverseProxy": { + "Routes": { + "receiver-ui-receiver": { + "ClusterId": "receiver-ui", + "Order": 100, + "Match": { + "Path": "/receiver/{**catch-all}", + "Methods": [ "GET", "HEAD" ] } }, + "receiver-ui-login": { + "ClusterId": "receiver-ui", + "Order": 100, + "Match": { + "Path": "/login/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + } + }, + "receiver-ui-sender": { + "ClusterId": "receiver-ui", + "Order": 100, + "Match": { + "Path": "/sender/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + } + }, + "receiver-ui-envelope": { + "ClusterId": "receiver-ui", + "Order": 100, + "Match": { + "Path": "/envelope/{EnvelopeKey}", + "Methods": [ "GET", "HEAD" ] + }, + "Transforms": [ + { "PathSet": "/index.html" } + ] + }, + "receiver-ui-blazor-framework": { + "ClusterId": "receiver-ui", + "Order": 50, + "Match": { + "Path": "/_framework/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + } + }, + "receiver-ui-blazor-content": { + "ClusterId": "receiver-ui", + "Order": 50, + "Match": { + "Path": "/_content/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + } + }, + "receiver-ui-static-css": { + "ClusterId": "receiver-ui", + "Order": 200, + "Match": { + "Path": "/css/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + }, + "Transforms": [ + { + "ResponseHeader": "Cache-Control", + "Set": "no-cache, no-store, must-revalidate", + "When": "Always" + } + ] + }, + "receiver-ui-static-js": { + "ClusterId": "receiver-ui", + "Order": 200, + "Match": { + "Path": "/js/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + }, + "Transforms": [ + { + "ResponseHeader": "Cache-Control", + "Set": "no-cache, no-store, must-revalidate", + "When": "Always" + } + ] + }, + "receiver-ui-fake-data": { + "ClusterId": "receiver-ui", + "Order": 200, + "Match": { + "Path": "/fake-data/{**catch-all}", + "Methods": [ "GET", "HEAD" ] + } + }, + "auth-login": { + "ClusterId": "auth-hub", + "Match": { + "Path": "/api/auth", + "Methods": [ "POST" ] + }, + "Transforms": [ + { "PathSet": "/api/auth/sign-flow" } + ] + }, + "auth-envelope-receiver-login": { + "ClusterId": "auth-hub", + "Match": { + "Path": "/api/Auth/envelope-receiver/{key}", + "Methods": [ "POST" ] + }, + "Transforms": [ + { "PathPattern": "/api/auth/envelope-receiver/{key}" }, + { + "QueryValueParameter": "cookie", + "Set": "true" + } + ] + } + }, "Clusters": { "receiver-ui": { "Destinations": {