Skip to content

docs: add workspace configuration reference with examples for all fields - #843

Open
marcusburghardt wants to merge 4 commits into
complytime:mainfrom
marcusburghardt:docs/workspace-config-reference
Open

docs: add workspace configuration reference with examples for all fields#843
marcusburghardt wants to merge 4 commits into
complytime:mainfrom
marcusburghardt:docs/workspace-config-reference

Conversation

@marcusburghardt

@marcusburghardt marcusburghardt commented Sep 7, 2026

Copy link
Copy Markdown
Member

Summary

Document the complete complytime.yaml workspace configuration schema across all user-facing documentation. Users previously had no way to discover verification options, complypack configuration, or target variable requirements without reading Go source code.

Fixes #712

Man page (docs/man/complyctl.md)

Add a CONFIGURATION section documenting the full config schema:

  • policies: OCI references with url, id, per-entry verification, skip_verify
  • complypacks: provider-specific content bundles with evaluator-id relationship
  • targets: scan target binding with policy references and ${VAR} expansion
  • variables: workspace-scoped constants (no env var expansion)
  • verification: keyless (issuer/identity) and keyed (public key) modes, trusted_root for private Sigstore, per-entry overrides, mutual exclusivity rules
  • Complete annotated example showing all sections together

Quick Start (docs/QUICK_START.md)

  • Rewrite config skeleton with inline comments explaining where each value comes from
  • Add Discovering target variables subsection: complyctl doctor --verbose, one-of groups, provider-specific docs links
  • Add Verification subsection: keyless/keyed examples, per-entry overrides, skip_verify, --skip-verify flag
  • Add complypack entry to the ampel example
  • Expand field table with complypacks and verification

README + init template

  • Expand README YAML example with complypacks and verification blocks
  • Expand field table from 6 to 13 fields
  • Expand emptyConfigTemplate in init.go with commented-out complypacks, variables, verification sections

Ref: #712

@marcusburghardt
marcusburghardt requested a review from a team as a code owner September 7, 2026 13:40
@marcusburghardt marcusburghardt added the documentation Improvements or additions to documentation label Sep 10, 2026
em-redhat
em-redhat previously approved these changes Sep 11, 2026

@em-redhat em-redhat 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.

PR Review: #843 — docs: add workspace configuration reference with examples for all fields

CI Status

All 28 checks passed. No failures.

Walkthrough

File Change Focus
README.md Expand YAML example with complypacks/verification; field table 6→13 fields; cross-references documentation
cmd/complyctl/cli/init.go Expand emptyConfigTemplate with all config sections (complypacks, variables, verification) cli-ux
docs/QUICK_START.md Rewrite config skeleton with inline comments; add variable discovery, verification, complypack sections documentation
docs/man/complyctl.1 Add CONFIGURATION section with full schema reference (generated troff) documentation
docs/man/complyctl.md Add CONFIGURATION section with full schema reference (pandoc source) documentation

Linked Issues

Issue Title Criteria
#712 Complytime workspace config needs examples for variable replacement COVERED — ${VAR} expansion semantics documented in all four surfaces; variable discovery via complyctl doctor --verbose documented

Summary

Comprehensive documentation of the complytime.yaml schema across four surfaces (README, init template, Quick Start, man page). All documented fields, types, validation rules, and behavioral descriptions verified accurate against source code (internal/complytime/config.go structs and validation functions). The ${VAR} expansion scope distinction (targets-only, not workspace variables) directly addresses #712.

Alignment

  • No scope drift. All changes are documentation-only. The init.go template change is inline comments, not behavioral logic.
  • Spec workflow exemption applies (docs-only PR).

Security

  • No issues found. Examples use ${GITHUB_TOKEN} placeholders, not real secrets.

Constitution Compliance

  • No issues found. Documentation-only PR is exempt from spec workflow requirement.

Verdict

APPROVE

Well-structured documentation that accurately reflects the implementation. Two minor suggestions noted in inline comments.

This review was generated by /review-pr (AI-assisted).

Comment thread README.md
Comment thread cmd/complyctl/cli/init.go Outdated
Add a comprehensive CONFIGURATION section to the complyctl(1) man page
documenting the complete complytime.yaml schema:

- policies: OCI references with url, id, per-entry verification,
  skip_verify fields and auto-derived ID behavior
- complypacks: provider-specific content bundles with evaluator-id
  relationship and discovery via `complyctl providers`
- targets: scan target binding with policy references and
  provider-specific variables with ${VAR} expansion
- variables: workspace-scoped constants (no env var expansion)
- verification: keyless (issuer/identity) and keyed (public key)
  modes, trusted_root for private Sigstore, per-entry overrides,
  mutual exclusivity rules
- Complete annotated example showing all sections together
- Note about `complyctl doctor --verbose` for variable discovery

Update FILES entry for complytime.yaml to reference the new section.
Regenerate complyctl.1 via pandoc.

Ref: complytime#712

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
…iable discovery

Rewrite the complytime.yaml skeleton in Step 3 with inline comments
explaining where each value comes from (OCI reference format, ID
derivation, evaluator-id matching, ${VAR} expansion).

Add new subsections:
- Discovering target variables: run `complyctl doctor --verbose` to
  see required/optional variables and one-of groups; links to
  provider-specific configuration docs
- Verification: keyless (Sigstore OIDC) and keyed (cosign public key)
  examples, trusted_root for private Sigstore, per-entry overrides
  and skip_verify, --skip-verify flag for one-time bypass
- Complypack entry added to the ampel example

Expand the field table with complypacks, verification, and improved
descriptions. Add note about unset ${VAR} causing config errors.
Cross-reference man page CONFIGURATION section.

Ref: complytime#712

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
README Workspace Configuration section:
- Add complypacks and verification blocks to the YAML example
- Expand field table with complypacks[].url/id, verification.issuer/
  identity/key, policies[].verification, policies[].skip_verify
- Add cross-references to QUICK_START.md and man page
- Add note about `complyctl doctor --verbose` for variable discovery

Init empty config template:
- Add commented-out complypacks section with format example
- Add commented-out variables section (workspace-scoped, no expansion)
- Add commented-out verification section showing keyless mode
- Add ${VAR} expansion example in target variables
- Add `complyctl doctor --verbose` hint for variable discovery
- Update reference to docs/QUICK_START.md and man page

Ref: complytime#712

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
@marcusburghardt
marcusburghardt force-pushed the docs/workspace-config-reference branch from 5eaa9d8 to b180535 Compare September 11, 2026 14:21
Thanks @em-redhat

Co-authored-by: Em <290096679+em-redhat@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Complytime workspace config needs examples for variable replacement

3 participants