Eliminate legacy gateway container (consolidate into router-gateway)

The gateway service was a redundant deployment of the same
StellaOps.Gateway.WebService binary already running as router-gateway.
It served no unique purpose — all traffic is handled by router-gateway
(slot 0). This removes the container, its route table entries, nginx
proxy blocks, health/quota stubs, and redirects STELLAOPS_GATEWAY_URL
to router.stella-ops.local so the Angular frontend resolves API base
URLs through the canonical frontdoor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
master
2026-03-10 03:50:16 +02:00
parent 109f119a65
commit 6578c82602
19 changed files with 15 additions and 94 deletions

View File

@@ -12,7 +12,7 @@
"STELLAOPS_PLATFORM_URL": "https://platform.stella-ops.local",
"STELLAOPS_ROUTER_URL": "https://router.stella-ops.local",
"STELLAOPS_AUTHORITY_URL": "https://authority.stella-ops.local",
"STELLAOPS_GATEWAY_URL": "https://gateway.stella-ops.local",
"STELLAOPS_GATEWAY_URL": "https://router.stella-ops.local",
"STELLAOPS_ATTESTOR_URL": "https://attestor.stella-ops.local",
"STELLAOPS_EVIDENCELOCKER_URL": "https://evidencelocker.stella-ops.local",
"STELLAOPS_SCANNER_URL": "https://scanner.stella-ops.local",

View File

@@ -16,7 +16,6 @@ public sealed class PlatformHealthService
private static readonly string[] ServiceNames =
{
"authority",
"gateway",
"orchestrator",
"policy",
"scanner",

View File

@@ -16,7 +16,6 @@ public sealed class PlatformQuotaService
{
private static readonly PlatformQuotaDefinition[] Quotas =
{
new("gateway.requests", "tenant", "requests", 100000m, 23000m, "month", "gateway"),
new("orchestrator.jobs", "tenant", "jobs", 1000m, 120m, "day", "orchestrator"),
new("storage.evidence", "tenant", "gb", 5000m, 2400m, "month", "storage")
};

View File

@@ -152,7 +152,6 @@
{ "Type": "ReverseProxy", "Path": "/jwks", "TranslatesTo": "http://authority.stella-ops.local/jwks", "PreserveAuthHeaders": true },
{ "Type": "ReverseProxy", "Path": "/authority", "TranslatesTo": "http://authority.stella-ops.local/authority", "PreserveAuthHeaders": true },
{ "Type": "ReverseProxy", "Path": "/console", "TranslatesTo": "http://authority.stella-ops.local/console", "PreserveAuthHeaders": true },
{ "Type": "ReverseProxy", "Path": "/gateway", "TranslatesTo": "http://gateway.stella-ops.local" },
{ "Type": "ReverseProxy", "Path": "/scanner", "TranslatesTo": "http://scanner.stella-ops.local" },
{ "Type": "ReverseProxy", "Path": "/policyGateway", "TranslatesTo": "http://policy-gateway.stella-ops.local" },
{ "Type": "ReverseProxy", "Path": "/policyEngine", "TranslatesTo": "http://policy-engine.stella-ops.local" },

View File

@@ -8,7 +8,7 @@ public sealed class SignalsRouterEventsOptions
/// <summary>
/// Base URL for the StellaOps Router gateway (HTTP ingress).
/// </summary>
public string BaseUrl { get; set; } = "https://gateway.stella-ops.local";
public string BaseUrl { get; set; } = "https://router.stella-ops.local";
/// <summary>
/// Relative path that receives fact update envelopes.

View File

@@ -39,7 +39,7 @@ describe('AppConfigService', () => {
const config: AppConfig = {
...minimalConfig,
apiBaseUrls: {
gateway: 'http://gateway.stella-ops.local',
gateway: 'http://router.stella-ops.local',
scanner: 'http://scanner.stella-ops.local',
policy: 'http://policy-gateway.stella-ops.local',
concelier: 'http://concelier.stella-ops.local',
@@ -51,7 +51,7 @@ describe('AppConfigService', () => {
service.setConfigForTesting(config);
expect(service.config.apiBaseUrls.gateway).toBe('/gateway');
expect(service.config.apiBaseUrls.gateway).toBe('');
expect(service.config.apiBaseUrls.scanner).toBe('/scanner');
expect(service.config.apiBaseUrls.policy).toBe('/policy');
expect(service.config.apiBaseUrls.concelier).toBe('/concelier');