Skip to content

🐛 fix(ci): use admin:admin in DAST auth to match qa-compose hash#403

Merged
s-b-e-n-s-o-n merged 1 commit into
mainfrom
fix/dast-credentials
May 29, 2026
Merged

🐛 fix(ci): use admin:admin in DAST auth to match qa-compose hash#403
s-b-e-n-s-o-n merged 1 commit into
mainfrom
fix/dast-credentials

Conversation

@s-b-e-n-s-o-n
Copy link
Copy Markdown
Contributor

Summary

The recurring DAST 401 we've been chasing was caused by invalid credentials, not the readiness race PR #402 fixed.

  • test/qa-compose.yml DD_AUTH_BASIC_ADMIN_HASH verifies the plaintext `admin`, not `password`
  • test/ci-compose.yml (used by Load Tests) uses a different hash that verifies `password`
  • Playwright already defaults to `admin:admin` via `e2e/playwright/helpers/test-helpers.ts:19-22` and passes against the same qa-compose
  • Only DAST hardcoded `admin:password` against qa-compose — only DAST failed with 401

PR #402's readiness gate is still correct and required: the CI log for run 26611307727 shows `Wait for QA health` passed at 01:13:10.207Z and Basic strategy registered at 01:13:09.763Z — strategies were registered before the failed request. The 401 was just bad credentials.

Changes

  • `.github/workflows/ci-verify.yml:587,703` — change `admin:password` → `admin:admin` in both DAST auth steps
  • Inline comment explains the qa-compose vs ci-compose hash divergence

Test plan

  • CI Verify runs green, DAST job succeeds
  • Load Tests still pass (they use ci-compose, unrelated)
  • Playwright still passes (already used admin:admin)

Root cause of the recurring DAST 401: the two "Create ZAP/Nuclei
authenticated session" steps hardcoded admin:password, but
test/qa-compose.yml's DD_AUTH_BASIC_ADMIN_HASH verifies the plaintext
'admin' (not 'password'). The previous fix in #402 (health readiness
gate) was real and is still needed, but the 401 we kept chasing was
simpler: invalid credentials.

Why this was confusing:
- test/ci-compose.yml (used by Load Tests) uses a different hash that
  DOES verify 'password', so the load tests passed with admin:password
- test/qa-compose.yml (used by DAST AND Playwright) uses a hash that
  verifies 'admin', and Playwright already defaults to admin:admin via
  e2e/playwright/helpers/test-helpers.ts:19-22, so Playwright passed
- Only DAST was sending the wrong credential, and only DAST failed

Fix changes both auth steps from admin:password to admin:admin and
documents the divergence between qa-compose and ci-compose hashes
inline so this doesn't trip the next person.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-demo Ready Ready Preview, Comment May 29, 2026 1:40am
drydock-website Ready Ready Preview, Comment May 29, 2026 1:40am

@codecov
Copy link
Copy Markdown

codecov Bot commented May 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Member

@biggest-littlest biggest-littlest left a comment

Choose a reason for hiding this comment

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

LGTM — minimal credential fix, well-documented. Matches Playwright's existing admin:admin convention against the same qa-compose.

Copy link
Copy Markdown
Member

@ALARGECOMPANY ALARGECOMPANY left a comment

Choose a reason for hiding this comment

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

Approved. Confirmed qa-compose vs ci-compose hash divergence is real; this aligns DAST with the qa-compose contract.

@s-b-e-n-s-o-n s-b-e-n-s-o-n merged commit 60fcffa into main May 29, 2026
24 checks passed
@s-b-e-n-s-o-n s-b-e-n-s-o-n deleted the fix/dast-credentials branch May 29, 2026 01:55
s-b-e-n-s-o-n added a commit that referenced this pull request May 29, 2026
… scanning (#404)

Final piece of the DAST fix chain. After #402 (auth readiness) and #403 (correct credentials), the SARIF upload was the last failing step.
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.

3 participants