Kuadrant / Kuadrant/developer-portal-controller
Enhance APIProduct status to provide discovered policy names in structured format
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2
- Forks
- 12
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 5
Description
Problem
Currently, the frontend (backstage plugin) must parse the AuthPolicy name from the human-readable AuthPolicyDiscovered condition message string. This is fragile and error-prone.
- lastTransitionTime: "2026-02-27T14:30:22Z"
message: Discovered AuthPolicy toystore targeting HTTPRoute toystore
reason: Found
status:"True"
type: AuthPolicyDiscovered
The function used in frontend:
const parseNameFromMessage = (value: string) => {
const parts = value.split(' ');
return parts.length >= 3 ? parts[2] : '';
};
The ask is to enhance the APIProduct status to include discovered policy names in a structured format. Preferably this should be implemented without breaking backwards compatibility, though this is not a strong requirement. Since we're working with v1alpha1 APIs, breaking changes are acceptable according to Kubernetes API conventions.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Go APIProduct status type and the code that sets the AuthPolicyDiscovered condition. Review how Kubernetes status fields are represented and how the Backstage plugin currently parses the condition message. Done means discovered policy names are exposed in a structured status field and the frontend no longer needs to parse human-readable text, with compatibility handled according to the chosen API change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100