Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add opt-in, user-facing acceptance coverage for the service-account RFC in
cloudfoundry/community#1645.
The scenarios exercise the native CF CLI and deployed CAPI, Diego, UAA and
GoRouter together. Existing test selections remain unchanged by default.
Cross-org synthetic WIF (2 scenarios)
prefix. The other org hosts a synthetic STS/protected resource without an account.
environment, alongside explicit issuer/JWKS/audience trust.
independently signed, in-memory STS credential and access the protected resource.
reject UAA assertions directly at the resource and exchanged credentials at CAPI.
Bearer/runtime and representative management (6 scenarios)
a client certificate; explicit space roles govern both shared-account callers.
staging exclusion using a disposable identity-observer buildpack.
entitle a replacement space and launch the same account identity again.
Identity-aware routing (3 account scenarios)
Extend the existing identity-aware routing group with qualified account sources:
shared-account access across spaces, wrong/unbound/spoofed-XFCC denial, missing
certificate rejection, policy removal, certificate-only continuity after disable
and space-domain restrictions. Existing proxy cases can use the configured egress
ASGs on restricted test foundations.
Fixtures and configuration
configured trust, in-memory signing key, bounded responses and verified TLS.
status and authorization results; no raw bearer assertions or exchanged tokens.
wif.enabled,wif.runtime_testsandwif.route_teststoggles. Route cases also require
include_identity_aware_routing.configuration and custom CLI requirements; no global UAA policy mutation by CATs.
deleted-name reservations intentionally remain, as required by the RFC.
Verification
Tested against the integrated lab using source CLI
b489efd50built with its normalversion linker metadata and
GOTOOLCHAIN=go1.27.3:(2 account + 4 existing). After splitting disable into its own case, all 3 account
routing cases pass together with the 6 runtime/management cases: 9 passed,
two randomized workers.
GOTOOLCHAIN=go1.27.3 bash ./bin/run_units: 10 existing unit suites plus fixturerace tests pass.
go vet, gofmt, script ShellCheck and diff checks pass.or domains after the runs. Failed-setup cleanup was also exercised.
Lab component pins: CAPI/routing
0.0.0+dev.20261110100000, Diego0.0.0+dev.20261109170000, UAA0.0.0+dev.20261110112000(UAA #4137 at41d2b4a5c). Setup failures (source CLI version metadata, ASG connectivity,buildpack archive layout and a route/domain fixture-name collision) were corrected.
Intermittent UAA connection refusal was recorded; subsequent parallel runs passed.
Helper/fixture behavior was developed in separate committed RED/GREEN slices.
Acceptance scenarios that passed against the already implemented platform are
recorded as already-green regression coverage; setup failures are not product RED.
Draft status / dependencies / limits
This depends on unreleased service-account support:
RFC-alignment commits through
b489efd50)Supported release/CLI minimum versions need assigning as those changes land.
The synthetic STS documents a federation contract, not AWS/GCP/Azure compatibility
or full RFC8693 support;
azpis informational in this fixture. JWKS loads at STSstartup. Long-running renewal, CA/JWKS rotation, near-expiry leaf-cap edge cases,
retained token behavior after disable, Windows and trusted external proxy SAN
forwarding remain separate integration work. Fixture controls have fixed operations
and destinations but no per-test authentication. A representative broker context
journey remains follow-up; exhaustive API permission/quota/reuse matrices belong
in component suites.