Fix release API proxy routes + wire pipeline to real data

- Add nginx proxy blocks for /api/v1/release-orchestrator/,
  /api/v1/release-control/, /api/v2/releases/, /api/v1/releases/,
  /api/v1/registries/ in Dockerfile.console
- All release UI calls now reach JobEngine (401 not 404)
- Registry search reaches Scanner service
- Pipeline page uses ReleaseManagementStore (real API, no mock data)
- Deployment wizard uses BundleOrganizerApi for create/seal
- Inline version/hotfix creation in deployment wizard wired to API
- Version detail shows "not found" error instead of blank screen
- Version wizard has promotion lane + duplicate component detection
- Sprint plan for 41 missing backend endpoints created

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-03-23 15:38:16 +02:00
parent 66d84fb17a
commit d3353e9d16
10 changed files with 658 additions and 126 deletions

View File

@@ -49,6 +49,65 @@ server {
# --- API reverse proxy (eliminates CORS for same-origin requests) ---
# Release Orchestrator (JobEngine service) — must precede the /api/ catch-all
location /api/v1/release-orchestrator/ {
set \$orchestrator_upstream http://orchestrator.stella-ops.local;
proxy_pass \$orchestrator_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Release Control bundles (JobEngine service)
location /api/v1/release-control/ {
set \$orchestrator_upstream http://orchestrator.stella-ops.local;
proxy_pass \$orchestrator_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Release v2 read-model (JobEngine service) — rewrites /api/v2/releases/ to orchestrator
location /api/v2/releases/ {
set \$orchestrator_upstream http://orchestrator.stella-ops.local;
proxy_pass \$orchestrator_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Legacy v1 releases (JobEngine service)
location /api/v1/releases/ {
set \$orchestrator_upstream http://orchestrator.stella-ops.local;
proxy_pass \$orchestrator_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Registry image search (Scanner service)
location /api/v1/registries/ {
set \$scanner_upstream http://scanner.stella-ops.local;
proxy_pass \$scanner_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Release v2 security endpoints (Platform proxies these)
location /api/v2/security/ {
proxy_pass http://platform.stella-ops.local/api/v2/security/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Platform API (direct /api/ prefix for clients using environment.apiBaseUrl)
location /api/ {
proxy_pass http://platform.stella-ops.local/api/;
@@ -227,6 +286,17 @@ server {
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Orchestrator service (key: orchestrator, strips /orchestrator/ prefix)
location /orchestrator/ {
set \$orchestrator_upstream http://orchestrator.stella-ops.local;
rewrite ^/orchestrator/(.*)\$ /\$1 break;
proxy_pass \$orchestrator_upstream;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Environment settings — SPA fetches /platform/envsettings.json at startup.
# sub_filter rewrites Docker-internal hostnames to relative paths so the
# browser routes all API calls through this nginx reverse proxy (CORS fix).