fix(project): validate billingReference for standalone public projects#1456
fix(project): validate billingReference for standalone public projects#1456eloiberlinger1 wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds client-side validation to stackit project create so that creating a standalone PUBLIC project (i.e., without a Network Area) fails early with a clear error when the required billingReference label is missing, aligning CLI behavior with the governance requirements described in #1452.
Changes:
- Parse
--network-area-idearly during input parsing to support conditional label validation. - Add validation: if
scope=PUBLICand no network area is provided, require abillingReferencelabel.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if scope, hasScope := (*labels)["scope"]; hasScope && scope == "PUBLIC" { | ||
| _, hasBilling := (*labels)["billingReference"] | ||
|
|
||
| if networkAreaId == nil && !hasBilling { | ||
| return nil, &errors.FlagValidationError{ | ||
| Flag: labelFlag, | ||
| Details: "creating a standalone public project (without a network area) requires a 'billingReference' label (e.g., --label billingReference=<value>)", | ||
| } | ||
| } | ||
| } |
| if scope, hasScope := (*labels)["scope"]; hasScope && scope == "PUBLIC" { | ||
| _, hasBilling := (*labels)["billingReference"] | ||
|
|
||
| if networkAreaId == nil && !hasBilling { | ||
| return nil, &errors.FlagValidationError{ | ||
| Flag: labelFlag, | ||
| Details: "creating a standalone public project (without a network area) requires a 'billingReference' label (e.g., --label billingReference=<value>)", | ||
| } | ||
| } | ||
| } |
|
This PR was marked as stale after 7 days of inactivity and will be closed after another 7 days of further inactivity. If this PR should be kept open, just add a comment, remove the stale label or push new commits to it. |
|
This PR was closed automatically because it has been stalled for 7 days with no activity. Feel free to re-open it at any time. |
Description
relates to #1452
Before the fix:
After the fix:
Note on Testing
Unfortunately because I only have a French phone number, I was unable to complete the project creation process to access the STACKIT Portal to check the payload validation conditions.
Checklist
make fmtmake generate-docs(will be checked by CI)make test(will be checked by CI)make lint(will be checked by CI)