Summary
Refactor the Flagsmith Backstage plugin from backend plugin to proxy-based architecture, following the pattern used by LaunchDarkly, Harness, and other community plugins.
Parent Epic: Flagsmith/flagsmith-backstage-plugin#10
Spike: #6359
Current Architecture
Frontend → Backend Plugin → Flagsmith API
(src/service/)
(35 API calls for 17 flags)
Target Architecture
Frontend → Backstage Proxy → Flagsmith API
(/proxy/flagsmith)
(1 call + lazy load on expand)
Benefits
| Aspect |
Before |
After |
| Installation |
2 packages (frontend + backend) |
1 package (frontend only) |
| Initial API calls |
35 (for 17 flags) |
1 |
| Configuration |
Custom backend config |
Standard proxy config |
| Pattern |
Custom |
Matches LaunchDarkly, Harness |
Implementation Tasks
Proxy Configuration
Users will configure in app-config.yaml:
proxy:
endpoints:
'/flagsmith':
target: 'https://api.flagsmith.com/api/v1'
headers:
Authorization: Api-Key ${FLAGSMITH_API_TOKEN}
Acceptance Criteria
Summary
Refactor the Flagsmith Backstage plugin from backend plugin to proxy-based architecture, following the pattern used by LaunchDarkly, Harness, and other community plugins.
Parent Epic: Flagsmith/flagsmith-backstage-plugin#10
Spike: #6359
Current Architecture
Target Architecture
Benefits
Implementation Tasks
FlagsmithClient.tsto use proxy (/proxy/flagsmith)getFeatureVersions,getFeatureStates)FlagsTab.tsxwith lazy loading on accordion expandFlagsmithOverviewCard.tsxfor new clientsrc/service/directory (backend plugin)src/index.tsto remove backend exportpackage.jsonto remove backend dependenciesREADME.mdwith proxy configurationProxy Configuration
Users will configure in
app-config.yaml:Acceptance Criteria