#Issues with Multi-Radar Implementation in Backstage

2 messages · Page 1 of 1 (latest)

gloomy mango
#

Problem Description

We are implementing multiple Tech Radars in our Backstage instance, with the goal of displaying 23 different radar views from our GitLab repository. Each radar represents a different technology domain within our organisation, and we're trying to create a cohesive navigation experience from a landing page grid to individual radar views.

Implementation Journey and Challenges

Initially, we successfully implemented the Tech Radar plugin and could display a single radar. However, when extending this to support multiple radars, we've encountered several challenges:

  1. Landing Page Implementation

    • Successfully created a grid view showing all 23 radar options
    • Implemented navigation using radar IDs
    • Landing page renders correctly but struggles with configuration visibility
  2. Configuration Challenges

    • Set up GitLab integration for JSON file retrieval
    • Configured multiple radar entries in app-config.yaml
    • Facing issues with configuration visibility and frontend access
    • Receiving errors about configuration arrays not having visible elements
  3. Routing Issues

    • Landing page (/tech-radar) works as expected
    • Individual radar routes (/tech-radar/:id) fail with routing errors
    • Getting "Routable extension component not discovered" errors
    • Plugin's route mounting seems to conflict with our implementation
  4. Data Loading Problems

    • Custom client implementation for GitLab integration
    • Attempting to load JSON files based on radar IDs
    • Authentication and data fetching setup appears correct
    • Unable to properly render individual radar views

## Current Blockers

The main issues preventing full functionality are:

  1. Route resolution errors when accessing individual radars
  2. Configuration visibility issues despite proper YAML structure
  3. Uncertainty about the correct approach for multiple radar implementation
  4. Problems with the Tech Radar plugin's routing expectations
#

Project Structure and Integration

Our setup involves two separate GitLab projects within our organisation's group structure:

  1. Tech Radar Content Repository

    • *Location: gitlab.com/organisation/department/backstage/components/technology-radar
    • Contains all 23 radar JSON files
    • Organised in a radars/ directory
    • Each radar represents a different technology domain
  2. Backstage Application Repository

    • *Location: gitlab.com/organisation/department/backstage/backstage
    • Contains our Backstage implementation
    • Attempting to integrate with the radar repository
    • Using GitLab API to fetch radar data
  • Details anonymised.

Further Info

Environment

  • Backstage Developer Portal Version: 1.5.2
  • Tech Radar Plugin Versions:
    • Frontend: @backstage-community/plugin-tech-radar: ^1.0.0
    • Backend: @backstage-community/plugin-tech-radar-backend: ^1.0.0

Current Implementation

  1. Configuration (app-config.yaml)
techRadar:
  url: 'https://gitlab.com/api/v4/projects/PROJECT_ID/repository/files/radars'
  radars:
    - id: 'architecture-tooling-technologies'
      name: 'Architecture Tooling Technologies'
      url: 'https://gitlab.com/organisation/department/backstage/components/technology-radar/-/raw/main/radars/Architecture_Tooling_Technologies_Radar.json'
    # ... (23 radar configurations in total)