Skip to content

DAT-21268: Add vulnerability scanning docs and Liquibase Security links#513

Merged
jandroav merged 6 commits intomainfrom
DAT-21268
Mar 19, 2026
Merged

DAT-21268: Add vulnerability scanning docs and Liquibase Security links#513
jandroav merged 6 commits intomainfrom
DAT-21268

Conversation

@jandroav
Copy link
Copy Markdown
Contributor

Summary

  • Add Vulnerability Scanning section to README.md documenting the three scan types (Trivy surface, Trivy deep, Grype SBOM) and how to view results via Liquibase Security
  • Expand SECURITY.md with scan-results branch structure, manifest format, component classification (OS/JRE/JAR/Driver/Other), and new FAQ entries about version comparison and upgrade recommendations
  • Replace all references to "Security Hub" with "Liquibase Security" and use security.liquibase.com URLs
  • Fix broken link to scripts/README.md

Test plan

  • README.md renders correctly on GitHub — Vulnerability Scanning section visible between "Verifying Secure Images" and "Dockerfile"
  • SECURITY.md renders correctly — new sections, FAQ entries, and code blocks display properly
  • All links to security.liquibase.com use correct paths

🤖 Generated with Claude Code

Document the scan-results branch structure, component classification,
and link to Liquibase Security (security.liquibase.com) for interactive
vulnerability reports, version comparison, and export capabilities.

DAT-21268

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 10, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0dfec65e-9b9f-46db-a2c3-3f529263cb58

📥 Commits

Reviewing files that changed from the base of the PR and between 2f893de and 05de44f.

📒 Files selected for processing (2)
  • README.md
  • scripts/README.md

Disabled knowledge base sources:

  • Jira integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Walkthrough

Documentation updates: README.md gains a new Vulnerability Scanning section; SECURITY.md adds detailed scan-data/docs and Q&A about scan results and upgrade guidance; scripts/README.md is substantially trimmed to document only generate-dockerhub-matrix.sh and its output schema.

Changes

Cohort / File(s) Summary
Top-level README
README.md
Inserted a new "🛡️ Vulnerability Scanning" section describing scheduled scans, scope (OS/libs/JARs/SBOM), viewing results (security dashboard, GH Actions artifacts), and added an HR separation (+30/-0 lines).
Security documentation
SECURITY.md
Expanded Common Questions to reference the Liquibase Security dashboard, added Vulnerability Scan Data docs (on-branch scan-results layout, manifest.json index, component-type classification), version-comparison Q&A, and updated related doc links (+56/-2 lines).
Scripts README trimmed
scripts/README.md
Removed extensive per-script docs and workflow integration content; re-scoped to GitHub Actions scanning scripts and focused documentation for generate-dockerhub-matrix.sh (matrix JSON now includes published field), trimmed tooling list and adjusted SECURITY link (-359/+15 lines).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • sayaliM0412
  • jnewton03
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly summarizes the main changes: adding vulnerability scanning documentation and updating Liquibase Security links across multiple files.
Description check ✅ Passed The description is well-related to the changeset, providing specific details about what was added to each file and the motivation behind the changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch DAT-21268
📝 Coding Plan
  • Generate coding plan for human review comments

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.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Mar 10, 2026

Claude finished @jandroav's task in 51s —— View job


PR Review: DAT-21268 - Vulnerability Scanning Docs

Tasks

  • Gather context
  • Review changed files
  • Post review feedback

LGTM - no significant issues found.

The scripts/README.md link fix is confirmed correct (file exists). Documentation is well-structured, content is accurate, and the new FAQ entries and component classification table add clear value.

Minor note: The manifest.json example in SECURITY.md:143 uses "..." as a placeholder inside a JSON array, which is technically invalid JSON. Consider using a comment or prose to indicate the list is truncated (e.g., "<additional versions>" or a note beneath the block).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates repository documentation to describe the automated container vulnerability scanning process and standardize links/terminology around Liquibase Security for viewing results.

Changes:

  • Add a “Vulnerability Scanning” section to README.md, including scan types and where to view results.
  • Expand SECURITY.md with scan-results branch structure, manifest/schema examples, component classification, and new FAQs.
  • Update documentation links/terminology to use “Liquibase Security” and fix the scripts documentation link.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
README.md Adds end-user documentation for scan coverage and how to view results in Liquibase Security and GitHub Actions.
SECURITY.md Adds detailed guidance on persisted scan data layout/manifest and expands FAQs; fixes link to scripts/README.md.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Around line 281-282: The README currently claims "Every published" image is
scanned which is inaccurate; update the sentence to state that scans run
Monday–Friday at 10 AM UTC and cover only the most recent tags rather than all
published images, and reference the configuration that controls this
(max_tags_to_scan in .github/workflows/trivy-scan-published-images.yml) and the
trimming logic in scripts/generate-dockerhub-matrix.sh so readers know the scan
window is limited to recent tags.

In `@SECURITY.md`:
- Line 170: The "Vulnerability Scanning Scripts" link in SECURITY.md points to a
stale document (scripts/README.md); either update scripts/README.md to
accurately list the current scripts and their usage or change the link in
SECURITY.md to a maintained document; locate the reference "Vulnerability
Scanning Scripts" in SECURITY.md and then either edit scripts/README.md to
remove/replace outdated script entries and add current commands/examples, or
update the link target to the correct, up-to-date developer documentation.
- Around line 123-133: The fenced code block that shows the scan-results
directory tree triggers markdownlint MD040 because it lacks a language; update
the fenced block (the block containing "scan-results/ manifest.json ...
liquibase/liquibase-secure/<version>/") to use a language token like ```text (or
```plaintext) so the snippet becomes fenced as ```text ... ``` to satisfy the
linter.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0e541d71-2d33-4cd7-8257-7a9ec750d59a

📥 Commits

Reviewing files that changed from the base of the PR and between 821fe47 and 5a1e3f9.

📒 Files selected for processing (2)
  • README.md
  • SECURITY.md

Comment thread README.md Outdated
Comment thread SECURITY.md Outdated
Comment thread SECURITY.md
After vulnerability scans complete, a new persist-results job downloads
all scan artifacts and commits them to a scan-results branch. This gives
the Liquibase Security dashboard persistent access to historical scan
data via GitHub Contents API, replacing the 7-day artifact retention.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Mar 10, 2026

Claude finished @jandroav's task in 1m 58s —— View job


PR Review: DAT-21268 - Vulnerability Scanning Docs

Tasks

  • Gather context
  • Review changed files
  • Post review feedback

Issues Found

  • Overly broad workflow permissions (.github/workflows/trivy-scan-published-images.yml:22): contents: write is set at the workflow level, granting write access to all jobs including generate-matrix and the reusable vulnerability-scan call. Only persist-results actually needs it — this should be a job-level permission on that job, with the top-level kept at contents: read.

  • scripts/README.md is stale (SECURITY.md:170 links to it): The README documents 7 scripts (extract-nested-deps.sh, analyze-scan-results.sh, convert-scan-results.sh, create-enhanced-report.sh, append-github-summary.sh, save-grype-results.sh, check-file-exists.sh) that do not exist in the scripts/ directory. Only generate-dockerhub-matrix.sh and the newly-added persist-scan-results.sh are actually present.

  • Invalid JSON in manifest example (SECURITY.md:143): "..." is not valid JSON — an inline comment was posted with a fix suggestion.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Mar 10, 2026

Claude finished @jandroav's task in 1m 33s —— View job


PR Review: DAT-21268 - Vulnerability Scanning Docs

Tasks

  • Gather context
  • Review changed files
  • Post review feedback

The documentation additions are clear and well-structured. Three issues found:

  1. SECURITY.md:123 — Fenced code block is missing a language specifier (text/plaintext), triggering markdownlint MD040. (inline comment posted with fix)

  2. SECURITY.md:143 — The manifest JSON example contains "..." as a placeholder, which is invalid JSON and could break tooling that parses it literally. (inline comment posted with fix)

  3. SECURITY.md:170 — The link points to scripts/README.md, which documents 7 scripts that don't exist in the repo (extract-nested-deps.sh, analyze-scan-results.sh, convert-scan-results.sh, create-enhanced-report.sh, append-github-summary.sh, save-grype-results.sh, check-file-exists.sh). Only generate-dockerhub-matrix.sh is present. The linked doc is significantly stale and will mislead developers who follow it. This should be resolved before merging. (inline comment posted)

Comment thread SECURITY.md Outdated
{
"lastUpdated": "2026-03-10T10:00:00Z",
"images": {
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0", "..."],
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.

The "..." placeholder is not valid JSON — parsers will reject this. Use a note below the block or a comment-style placeholder instead:

Suggested change
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0", "..."],
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0"],
"liquibase/liquibase-secure": ["5.0.1", "5.0.0"]

(Or add a prose note: "Additional versions are listed in chronological order.")

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.

@jandroav : minor, but could we commit this?

Comment thread SECURITY.md Outdated

The `scan-results` branch contains:

```
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.

Missing language specifier on fenced code block (markdownlint MD040). Use ```text to fix:

Suggested change
```
```text

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.

@jandroav :minor, but could we commit this?

Comment thread SECURITY.md Outdated
{
"lastUpdated": "2026-03-10T10:00:00Z",
"images": {
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0", "..."],
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.

"..." is not valid JSON — it will break any tool that parses this example literally. Replace with a valid placeholder string or add a comment after the block noting the list is truncated.

Suggested change
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0", "..."],
"liquibase/liquibase": ["5.0.1", "5.0.0", "4.31.0"],

Comment thread SECURITY.md
## Related Documentation

- [Vulnerability Scanning Scripts](README.md) - Technical documentation for developers
- [Vulnerability Scanning Scripts](scripts/README.md) - Technical documentation for developers
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.

scripts/README.md documents 7 scripts (extract-nested-deps.sh, analyze-scan-results.sh, convert-scan-results.sh, create-enhanced-report.sh, append-github-summary.sh, save-grype-results.sh, check-file-exists.sh) that do not exist in the scripts/ directory — only generate-dockerhub-matrix.sh is present. The linked document is stale and will mislead developers. Either remove scripts that no longer exist from scripts/README.md, or update this link to point to a maintained document. Fix this →

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.

@jandroav : minor, but could we commit this?

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Mar 19, 2026

Claude finished @jandroav's task in 1m 44s —— View job


PR Review: DAT-21268 - Vulnerability Scanning Docs

Tasks

Summary

Committed and pushed three fixes to address reviewer feedback:

  1. SECURITY.md:123 — Added text language specifier to the directory tree fenced code block (fixes markdownlint MD040).
  2. SECURITY.md:143 — Removed invalid "..." JSON placeholder strings from the manifest.json example; the arrays now end cleanly without placeholders.
  3. scripts/README.md — Rewrote to only document the one script that actually exists (generate-dockerhub-matrix.sh), removing documentation for 7 scripts that were never created.

github-actions Bot and others added 2 commits March 19, 2026 05:52
…te scripts README

- Add 'text' language specifier to directory tree code block (markdownlint MD040)
- Remove invalid '"..."' JSON placeholders from manifest.json example
- Rewrite scripts/README.md to only document existing scripts (remove 7 non-existent script entries, keep only generate-dockerhub-matrix.sh)

Co-authored-by: Alejandro Alvarez <undefined@users.noreply.github.com>
- Clarify scan coverage scope in README (recent tags, not all images)
- Add language specifier to fenced code block in SECURITY.md (MD040)
- Remove invalid JSON placeholder from manifest example
- Rewrite scripts/README.md to document only existing scripts
@jandroav
Copy link
Copy Markdown
Contributor Author

Addressed all review feedback in 05de44f:

  1. README.md — Fixed inaccurate scan coverage claim. Changed "Every published" to "Published... (up to 10 per repository by default)" to reflect the MAX_TAGS default.
  2. SECURITY.md — Added text language specifier to fenced code block (MD040 fix).
  3. SECURITY.md — Removed invalid "..." JSON placeholders from manifest example.
  4. scripts/README.md — Rewrote to document only generate-dockerhub-matrix.sh (the only script that exists). Removed docs for 7 non-existent scripts. Fixed relative link to ../SECURITY.md.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Mar 19, 2026

Claude finished @jandroav's task in 1m 3s —— View job


PR Review: DAT-21268 - Vulnerability Scanning Docs

Tasks

  • Gather context
  • Read changed files
  • Post review feedback

LGTM — all previously raised issues are resolved in commit 05de44f:

  • README.md — Scan coverage claim is now accurate: "most recent tags (up to 10 per repository by default)"
  • SECURITY.md:123 — Fenced code block now has text language specifier (MD040 fix)
  • SECURITY.md:143 — JSON manifest example is valid — no more "..." placeholders
  • SECURITY.md:170 — Link correctly points to scripts/README.md
  • scripts/README.md — Stale docs for 7 non-existent scripts removed; only generate-dockerhub-matrix.sh (which actually exists) is documented, with fixed relative link to ../SECURITY.md

No new issues found. PR is good to merge.

@jandroav jandroav merged commit b6a7c91 into main Mar 19, 2026
7 of 8 checks passed
@jandroav jandroav deleted the DAT-21268 branch March 19, 2026 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants