Skip to content

boost-backend: Add download proxy route for git-sourced AI assets #4033

Description

@rohitkrai03

Problem

Context: RHIDP-15167 tasks 3.6-3.7. AdoptionCard links directly to GitHub zipball API for git assets. This fails for private repos. The spec requires a backend proxy using Backstage SCM integration credentials. PR #3747 deferred this.

Expected behavior

New route: GET /api/boost/catalog/download?entityRef=... that resolves entity via catalogApi, authenticates via @backstage/integration ScmIntegrations, streams ZIP archive back. Permission check via httpAuth + permissions.authorize(). Error handling: 403/404/502.

Scope

Workspace: workspaces/boost, Package: boost-backend

Files: plugins/boost-backend/src/routes/catalogDownload.ts (new handler), plugins/boost-backend/src/service/router.ts (register route), router.test.ts (tests)

Tests

  1. Successful download (200), 2. Missing entity (404), 3. Missing location (404), 4. Permission denied (403), 5. Upstream error (502), 6. Unsupported host (400)

Notes

Only git downloads. OCI/MCP are frontend-only. Frontend follow-up to wire AdoptionCard to proxy is a separate issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions