Skip to content

fix(docs): pin quickstart to pre-PQC platform image and config#337

Merged
marythought merged 5 commits into
mainfrom
fix/quickstart-use-dev-config
Jun 5, 2026
Merged

fix(docs): pin quickstart to pre-PQC platform image and config#337
marythought merged 5 commits into
mainfrom
fix/quickstart-use-dev-config

Conversation

@marythought
Copy link
Copy Markdown
Contributor

@marythought marythought commented Jun 5, 2026

Problem

The quickstart docker-compose downloads opentdf-example.yaml from platform/main, which now includes hybrid PQC keyring entries (hpqt:xwing, hpqt:secp256r1-mlkem768, hpqt:secp384r1-mlkem1024) added in opentdf/platform#3276. The quickstart's generate-keys service only creates RSA and EC keys via openssl — no PQC key files are generated. The platform crashes at startup:

failed to read private key file [/keys/kas-xwing-private.pem]: no such file or directory

Confirmed main is broken: https://github.com/opentdf/docs/actions/runs/27036624683

Stopgap fix

Pin the platform image (nightly-a29f108) and config download to the last main commit before PQC landed. Image and config stay in sync, no PQC keys needed.

Long-term fix (add PQC key generation to the quickstart) will follow in a separate PR.

Fixes #336

Test plan

  • BATS quickstart tests pass locally (23/23)
  • CI docker-compose stack test passes on this branch
  • CI docker-compose stack test fails on main (run)

🤖 Generated with Claude Code

@marythought marythought requested review from a team as code owners June 5, 2026 19:47
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 5, 2026

Need the big picture first? Review this PR in Change Stack to see what changed before going file by file.

Review Change Stack

📝 Walkthrough

Walkthrough

The docker-compose quickstart downloads a platform configuration file via wget. This change updates the source from opentdf-example.yaml to opentdf-dev.yaml to align the configuration with the key generation capabilities of the quickstart's inline keygen service.

Changes

Quickstart Config Alignment

Layer / File(s) Summary
Docker-compose platform config source
docs/getting-started/docker-compose.yaml
The download-platform-config service fetches opentdf-dev.yaml instead of opentdf-example.yaml. The dev config excludes PQC keyring entries, preventing key-not-found errors when the quickstart's RSA/EC-only keygen service runs.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

A config so small, yet fixes the way,
Dev config chosen to save the day,
No PQC files to chase or to find,
RSA and EC leave trouble behind,
The quickstart hops forward with joy and delight! 🐰

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title mentions 'pin quickstart to pre-PQC platform image and config', but the actual change only updates the config source file from opentdf-example.yaml to opentdf-dev.yaml. There is no image change in this PR. Update the title to accurately reflect that only the config file source is changed, e.g. 'fix(docs): use opentdf-dev.yaml for quickstart config'.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR fully implements the chosen solution from issue #336: switching to opentdf-dev.yaml to resolve the missing PQC key generation problem in the quickstart.
Out of Scope Changes check ✅ Passed The single-line change is directly scoped to the linked issue—updating the config source URL in docker-compose.yaml with no extraneous modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/quickstart-use-dev-config

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the docker-compose.yaml file in the getting-started documentation to download the opentdf-dev.yaml configuration file instead of opentdf-example.yaml. There are no review comments, and I have no additional feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/getting-started/docker-compose.yaml (1)

332-340: ⚖️ Poor tradeoff

Consider pinning downloads to stable release tags for long-term stability.

All external file downloads currently reference the main branch (lines 339, 371, 415, 430), which makes the quickstart vulnerable to future breaking changes upstream. While the current change correctly fixes the immediate PQC key mismatch, a future enhancement could pin these downloads to stable release tags instead.

This would provide:

  • Predictable, tested configurations
  • Protection against breaking changes on main
  • Easier rollback if issues arise

However, this is a broader architectural decision beyond the scope of fixing the current PQC key issue, and the current approach is consistent across all downloads.

Also applies to: 360-405, 408-416, 419-464

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started/docker-compose.yaml` around lines 332 - 340, Replace
direct downloads that reference the repository "main" branch with URLs pinned to
a stable release tag: update the command in the download-platform-config service
(command that fetches
https://raw.githubusercontent.com/opentdf/platform/main/opentdf-dev.yaml) to use
a specific release tag (e.g., .../opentdf/<RELEASE_TAG>/opentdf-dev.yaml) and
make the same change for the other download commands referenced in the file (the
other wget/curl commands that currently point to .../main/...). Ensure each URL
uses the identical chosen release tag so all fetched configs are deterministic
and documented.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/getting-started/docker-compose.yaml`:
- Around line 332-340: Replace direct downloads that reference the repository
"main" branch with URLs pinned to a stable release tag: update the command in
the download-platform-config service (command that fetches
https://raw.githubusercontent.com/opentdf/platform/main/opentdf-dev.yaml) to use
a specific release tag (e.g., .../opentdf/<RELEASE_TAG>/opentdf-dev.yaml) and
make the same change for the other download commands referenced in the file (the
other wget/curl commands that currently point to .../main/...). Ensure each URL
uses the identical chosen release tag so all fetched configs are deterministic
and documented.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: df22149a-6bcb-46ea-b63b-0313eec85923

📥 Commits

Reviewing files that changed from the base of the PR and between 38b2bcf and 356e5a0.

📒 Files selected for processing (1)
  • docs/getting-started/docker-compose.yaml

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

📄 Preview deployed to https://opentdf-docs-pr-337.surge.sh

@marythought
Copy link
Copy Markdown
Contributor Author

marythought commented Jun 5, 2026

Confirmed main is broken — the stack test times out with the platform returning 502 for 5 minutes (the container crashes on the missing xwing key): https://github.com/opentdf/docs/actions/runs/27036624683

The same test passes here, which indicates that the quickstart guide should work when this is merged.

@marythought marythought changed the title fix(docs): use opentdf-dev.yaml for quickstart config fix(docs): add PQC key generation to quickstart docker-compose Jun 5, 2026
@marythought marythought changed the title fix(docs): add PQC key generation to quickstart docker-compose fix(docs): pin quickstart to pre-PQC platform image and config Jun 5, 2026
marythought and others added 3 commits June 5, 2026 13:17
The quickstart docker-compose downloads opentdf-example.yaml from
platform/main, which now includes hybrid PQC keyring entries
(xwing, ML-KEM) that require key files the quickstart doesn't
generate. Switch to opentdf-dev.yaml which only requires RSA and
EC keys that the existing generate-keys service creates.

Fixes #336

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous commit incorrectly switched to opentdf-dev.yaml, which
uses localhost hostnames instead of Docker service names and would
break the containerized quickstart.

Pin to opentdf-example.yaml at the service/v0.15.0 tag instead —
this has the correct Docker hostnames and no PQC keyring entries
that the quickstart's key generation can't satisfy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pin both the platform container image (nightly-a29f108) and the
config download (opentdf-example.yaml at the same commit) to the
last main commit before hybrid PQC key support was added. The
previous attempt to use opentdf-dev.yaml would have broken because
it uses localhost hostnames instead of Docker service names.

The image and config must stay in sync — a nightly image built
from main expects the config shape from the same commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@marythought marythought force-pushed the fix/quickstart-use-dev-config branch from 18c6915 to e3f1ea7 Compare June 5, 2026 20:17
Add a generate-pqc-keys service that builds the platform's keygen
utility via sparse checkout and generates the hybrid post-quantum
key files (X-Wing, P256+ML-KEM-768, P384+ML-KEM-1024) that
opentdf-example.yaml now requires.

Unpins the platform image and config download back to nightly/main
so the quickstart tracks the latest platform automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@marythought marythought changed the title fix(docs): pin quickstart to pre-PQC platform image and config fix(docs): fix quickstart by adding PQC key generation Jun 5, 2026
@marythought marythought changed the title fix(docs): fix quickstart by adding PQC key generation fix(docs): pin quickstart to pre-PQC platform image and config Jun 5, 2026
@marythought marythought merged commit 6b87138 into main Jun 5, 2026
12 checks passed
@marythought marythought deleted the fix/quickstart-use-dev-config branch June 5, 2026 20:35
marythought added a commit that referenced this pull request Jun 5, 2026
Add a generate-pqc-keys service that sparse-checkouts the platform's
keygen utility and generates hybrid post-quantum key files (X-Wing,
P256+ML-KEM-768, P384+ML-KEM-1024) that opentdf-example.yaml requires
since opentdf/platform#3276.

Supersedes the stopgap pin in #337 — quickstart tracks nightly/main
again.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
marythought added a commit that referenced this pull request Jun 5, 2026
Add a generate-pqc-keys service that sparse-checkouts the platform's
keygen utility and generates hybrid post-quantum key files (X-Wing,
P256+ML-KEM-768, P384+ML-KEM-1024) that opentdf-example.yaml requires
since opentdf/platform#3276.

Supersedes the stopgap pin in #337 — quickstart tracks nightly/main
again.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
marythought added a commit that referenced this pull request Jun 5, 2026
Add a generate-pqc-keys service that sparse-checkouts the platform's
keygen utility and generates hybrid post-quantum key files (X-Wing,
P256+ML-KEM-768, P384+ML-KEM-1024) that opentdf-example.yaml requires
since opentdf/platform#3276.

Supersedes the stopgap pin in #337 — quickstart tracks nightly/main
again.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
marythought added a commit that referenced this pull request Jun 5, 2026
Add a generate-pqc-keys service that sparse-checkouts the platform's
keygen utility and generates hybrid post-quantum key files (X-Wing,
P256+ML-KEM-768, P384+ML-KEM-1024) that opentdf-example.yaml requires
since opentdf/platform#3276.

Supersedes the stopgap pin in #337 — quickstart tracks nightly/main
again.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.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.

Quickstart broken: missing PQC key generation after platform added hybrid key support

2 participants