You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove name field from access rules, add read-only relationships per RFC updates
Update /v3/access_rules API to align with latest RFC changes:
- Remove 'name' field from RouteAccessRule model and API
- Add database migration to drop name column and unique index
- Use labels/annotations for metadata instead of name field
- Add read-only relationships (app, space, organization) to responses
extracted from selector (cf:app:X, cf:space:X, cf:org:X, cf:any)
- Replace 'names' filter with 'guids' filter
- Add 'selector_resource_guids' filter for text-match against selectors
- Update include support: add individual app, space, organization
(in addition to existing selector_resource and route)
- Remove name-based uniqueness validation (keep selector uniqueness)
- Update all tests to remove name references
Breaking changes:
- POST /v3/access_rules no longer accepts 'name' field
- GET /v3/access_rules responses no longer include 'name' field
- Filter parameter 'names' removed, use 'guids' instead
- Access rule responses now include app/space/organization relationships
Copy file name to clipboardExpand all lines: app/controllers/v3/access_rules_controller.rb
+11-4Lines changed: 11 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -52,13 +52,11 @@ def create
52
52
unprocessable!("Cannot add 'cf:any' selector when other access rules already exist for this route.")ifmessage.selector == 'cf:any' && existing_selectors.any?
53
53
unprocessable!("Cannot add selector '#{message.selector}': route already has a 'cf:any' rule.")ifexisting_selectors.include?('cf:any') && message.selector != 'cf:any'
54
54
55
-
# Uniqueness: name and selector must be unique per route
56
-
unprocessable!("An access rule with name '#{message.name}' already exists for this route.")ifroute.access_rules.any?{ |r| r.name == message.name}
55
+
# Uniqueness: selector must be unique per route
57
56
unprocessable!("An access rule with selector '#{message.selector}' already exists for this route.")ifexisting_selectors.include?(message.selector)
0 commit comments