Skip to content

docs(test-plans): add DCM CLI OIDC auth e2e test plan (FLPATH-4477) - #34

Merged
chadcrum merged 8 commits into
dcm-project:mainfrom
chadcrum:flpath-4477-move-cli-oidc-test-plan
Aug 11, 2026
Merged

docs(test-plans): add DCM CLI OIDC auth e2e test plan (FLPATH-4477)#34
chadcrum merged 8 commits into
dcm-project:mainfrom
chadcrum:flpath-4477-move-cli-oidc-test-plan

Conversation

@chadcrum

@chadcrum chadcrum commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add the FLPATH-4477 DCM CLI OIDC authentication e2e test plan under test-plans/
  • Relocate it from dcm-project/cli because the cases need a live Keycloak/control-plane stack

Related PRs

Move the e2e-oriented OIDC login/logout plan into utilities alongside other
DCM stack test plans. Includes TC-19 refresh-failure setup fix (invalidate
JWT access_token), TC-17 login steps, and FileStore inaccessible-path unit
coverage notes from sealusa12 execution.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

@gabriel-farache gabriel-farache left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you maybe reorganize by priority order? Or what this order chose for a particular reason?

Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md

@gciavarrini gciavarrini left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is a markdown test plan written for AI agents, I used AI to help review it too.


### References

- [DCM CLI OIDC Authentication Spec](https://github.com/dcm-project/cli/blob/main/.ai/specs/dcm-cli-oidc-auth.spec.md) - requirements and acceptance criteria validated by this plan (lives in dcm-project/cli)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: This link 404s today (spec is still in cli#30)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gciavarrini yeah, that 404s until cli#30 merges. I'd rather leave the main link so it stays correct once that lands — ok with you?

Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md Outdated
Comment thread test-plans/FLPATH-4477-dcm-cli-oidc-auth-test-plan.md
chadcrum and others added 7 commits August 10, 2026 11:56
Match the CLI login success message and force access-token expiry in TC-03 instead of sleeping for Keycloak's 5m TTL.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Rewrite TC-07 so a bad static token failing after a successful stored-token call asserts precedence hard.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the clear commands as prereq how-to and start steps at the actual policy list call.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Move token-store clear how-to under Prerequisites and start steps at logout.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Assert flags beat env and env beats config for DCM_ISSUER_URL / --issuer-url.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify that the empty env prefix forces Linux keyring probe failure and file-store fallback.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
login now saves via ConfigPath, so --config / DCM_CONFIG are respected.

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@chadcrum

Copy link
Copy Markdown
Contributor Author

could you maybe reorganize by priority order? Or what this order chose for a particular reason?

@gabriel-farache order is dependency / execution flow (see the dependency graph), not priority. Priority tags are for AC severity. Left the TC order as-is so Requires chains stay readable.

@chadcrum chadcrum self-assigned this Aug 10, 2026
vkolodny added a commit that referenced this pull request Aug 11, 2026
## Summary
- Trim auth test plan E2E gaps to **TC-36 – TC-42** (CLI and
JWT-negative cases removed from this plan)
- Block SP / instance happy path on
[FLPATH-4622](https://redhat.atlassian.net/browse/FLPATH-4622); UI path
on [FLPATH-4645](https://redhat.atlassian.net/browse/FLPATH-4645)
- Fix `POST /catalog-item-instances` (HTTP 201), provider
`health_status`, port convention (`:8080` local / `:9080` Ecosystem
Jenkins)
- Add subsystem + E2E checklist tables with ❗ markers; document Jenkins
dead `--auth-enabled` on `run-e2e.sh`
- Clarify TC-08 as control-plane API only

## Out of scope here
- CLI auth →
[utilities#34](#34) /
[cli#29](dcm-project/cli#29)
- Wrong audience / `alg:none` → ❗ should cover on TC-14/TC-15
(subsystem)

## Test plan
- [x] Review feedback addressed (Gloria / Chad)
- [ ] Confirm sanitization notice still holds
- [ ] Optional: pipeline fix for dead `--auth-enabled`; subsystem
wrong-aud / alg:none follow-ups

Signed-off-by: Vladislav Kolodny <vkolodny@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@chadcrum
chadcrum merged commit e6d80ad into dcm-project:main Aug 11, 2026
2 checks passed
chadcrum added a commit to dcm-project/cli that referenced this pull request Aug 13, 2026
…#29)

## Summary

OIDC device authorization for the DCM CLI - `dcm login` / `dcm logout`,
token storage (keyring with file fallback), authenticated HTTP transport
with refresh, and a `DCM_TOKEN` / `--token` bypass for CI.

Split into three commits for easier review:

1. `feat(auth):` core code - auth / commands / config
2. `test(auth):` all test files
3. `chore(auth):` go.mod / go.sum + CLAUDE.md / README.md

## Related PRs
- Spec: #30
- E2E test plan: dcm-project/utilities#34

Closes https://issues.redhat.com/browse/FLPATH-4477

---------

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude <noreply@anthropic.com>
chadcrum added a commit to dcm-project/cli that referenced this pull request Aug 13, 2026
## Summary
- Add FLPATH-4477 OIDC auth `.ai` spec and design decisions
- Point `dcm-cli.spec.md` at the new OIDC auth spec and remove auth from
out-of-scope
- Split docs from the CLI implementation so review can land
independently

## Related PRs
- Implementation: #29
- E2E test plan: dcm-project/utilities#34

---------

Signed-off-by: Chad Crum <ccrum@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants