Repository navigation
ci: Dependabot fold-ins, cargo audit + Cargo.lock, one Slack scan report, Scout on releases (PER-15886) - #366
Merged
Merged
Conversation
Bumps golang from 1.26-bookworm to 1.27-bookworm. --- updated-dependencies: - dependency-name: golang dependency-version: 1.27-bookworm dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [reqwest](https://github.com/seanmonstar/reqwest) to permit the latest version. - [Release notes](https://github.com/seanmonstar/reqwest/releases) - [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md) - [Commits](seanmonstar/reqwest@v0.12.15...v0.13.5) --- updated-dependencies: - dependency-name: reqwest dependency-version: 0.13.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version. - [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md) - [Commits](nix-rust/nix@v0.29.0...v0.31.3) --- updated-dependencies: - dependency-name: nix dependency-version: 0.31.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps rust from 1.94-alpine to 1.98-alpine. --- updated-dependencies: - dependency-name: rust dependency-version: 1.98-alpine dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [utoipa-scalar](https://github.com/juhaku/utoipa) to permit the latest version. - [Release notes](https://github.com/juhaku/utoipa/releases) - [Changelog](https://github.com/juhaku/utoipa/blob/master/utoipa-rapidoc/CHANGELOG.md) - [Commits](juhaku/utoipa@utoipa-scalar-0.3.0...utoipa-scalar-0.4.0) --- updated-dependencies: - dependency-name: utoipa-scalar dependency-version: 0.4.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [confique](https://github.com/LukasKalbertodt/confique) to permit the latest version. - [Release notes](https://github.com/LukasKalbertodt/confique/releases) - [Changelog](https://github.com/LukasKalbertodt/confique/blob/main/CHANGELOG.md) - [Commits](LukasKalbertodt/confique@v0.3.0...v0.4.0) --- updated-dependencies: - dependency-name: confique dependency-version: 0.4.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [redis](https://github.com/redis-rs/redis-rs) to permit the latest version. - [Release notes](https://github.com/redis-rs/redis-rs/releases) - [Commits](redis-rs/redis-rs@redis-0.29.2...redis-1.7.1) --- updated-dependencies: - dependency-name: redis dependency-version: 1.7.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the minor-and-patch group with 3 updates: [scalar-fastapi](https://github.com/scalar/scalar), [opal-common](https://github.com/permitio/opal) and [opal-client](https://github.com/permitio/opal). Updates `scalar-fastapi` from 1.0.3 to 1.9.1 - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/docusaurus/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits) Updates `opal-common` from 0.9.6 to 0.9.9 - [Release notes](https://github.com/permitio/opal/releases) - [Commits](permitio/opal@0.9.6...0.9.9) Updates `opal-client` from 0.9.6 to 0.9.9 - [Release notes](https://github.com/permitio/opal/releases) - [Commits](permitio/opal@0.9.6...0.9.9) --- updated-dependencies: - dependency-name: scalar-fastapi dependency-version: 1.9.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: opal-common dependency-version: 0.9.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: opal-client dependency-version: 0.9.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [typer](https://github.com/fastapi/typer) to permit the latest version. - [Release notes](https://github.com/fastapi/typer/releases) - [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md) - [Commits](fastapi/typer@0.4.1...0.27.2) --- updated-dependencies: - dependency-name: typer dependency-version: 0.27.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [urllib3](https://github.com/urllib3/urllib3) to permit the latest version. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](urllib3/urllib3@2.6.3...2.8.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.8.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the minor-and-patch group with 2 updates: [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) and [helm/kind-action](https://github.com/helm/kind-action). Updates `helm/chart-releaser-action` from 1.6.0 to 1.7.0 - [Release notes](https://github.com/helm/chart-releaser-action/releases) - [Commits](helm/chart-releaser-action@a917fd1...cae68fe) Updates `helm/kind-action` from 1.14.0 to 1.15.0 - [Release notes](https://github.com/helm/kind-action/releases) - [Commits](helm/kind-action@ef37e7f...06c1ae1) --- updated-dependencies: - dependency-name: helm/chart-releaser-action dependency-version: 1.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: helm/kind-action dependency-version: 1.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 4.3.1 to 6.3.0. - [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases) - [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md) - [Commits](aws-actions/configure-aws-credentials@7474bc4...e125382) --- updated-dependencies: - dependency-name: aws-actions/configure-aws-credentials dependency-version: 6.3.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.7.0 to 4.4.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](docker/setup-qemu-action@c7c5346...9901266) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-version: 4.4.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 3.0.3 to 4.0.0. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Changelog](https://github.com/slackapi/slack-github-action/blob/main/CHANGELOG.md) - [Commits](slackapi/slack-github-action@45a88b9...dcb1066) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.12.0 to 4.4.1. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](docker/setup-buildx-action@8d2750c...f87e599) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-version: 4.4.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
redis 1.0 renamed ErrorKind::TypeError to ErrorKind::UnexpectedReturnType. redis-test 0.9 depends on redis 0.29, so the dev-dependency moves to 1.0.4 to keep a single redis version in the test build. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The golang 1.27 bump changes no build behaviour (the go1.26.6 floor check still passes), but three comments named 1.26 as the current builder. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
opal-common/opal-client 0.9.9 keep 0.9.6's caps (pydantic<2, tenacity<9, starlette<1, ddtrace<4, aiofiles<1), so: - scalar-fastapi stays on 1.8.2: 1.9.0 and later require pydantic>=2. - check_aiofiles_override.py expects 0.9.9; the aiofiles override is still needed because 0.9.9 still admits only aiofiles 0.8.0. - Comments, waiver statements and docs that named 0.9.6 now name 0.9.9. OpenVEX document version 14 -> 15. - Dependabot ignores pydantic>=2, tenacity>=9 and scalar-fastapi>=1.9.0, next to the existing starlette/ddtrace entries. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The scheduled scan now reports the way permitio/agent-security does: a
headline count, one line per scanner and tag, then one line per advisory
with package, advisory link, fixed version and who has to act, naming
every scanner and tag that saw it. format_security_report.py builds it
from the raw Trivy JSON, the VEX-filtered Scout SARIF and the Dependabot
alerts, reusing the existing classifier and waiver filter.
Findings are reported, not failed. A job goes red only when its scan did
not complete (scanner error, unreadable report or alert feed) or the
report never reached Slack; the report then lists that scanner as "did
not complete". The PR and release gates still block.
- notify-slack.yml takes an optional pre-escaped `message`, sent as-is.
The old path escaped the per-tag lines twice ("->gt;").
- The report lists the whole unwaived backlog every run, so the 73-hour
window and the all_alerts dispatch input are gone.
- security-digest.yml reads the latest run's security-report artifact
for its headline, since a green run no longer means "no findings".
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
v5.4.0 still runs on Node 20, which the runners now force onto Node 24 with a deprecation warning. Every input in use (outputs, context, target, cache-from/to, platforms, push, load, tags, no-cache-filters) is unchanged in v7. v6 added a build-record artifact upload; it is switched off on both build jobs to keep v5's behaviour. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
pre-commit/action v3.0.1 wraps actions/cache@v4, which still runs on Node 20. The job now does the same two things itself - restore the hook cache (actions/cache v6.1.0, same path and key shape) and run `pre-commit run --show-diff-on-failure --all-files` with pre-commit 4.6.2 - and sets python-version, which was unset and warned on every run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
scan-pdp-release ran Trivy only, so linux/arm64 rested on one scanner, and Trivy does not flag every advisory Scout does (it missed two x/crypto HIGHs on a published image). Each platform is now loaded as permitio/pdp-v2:release-scan and scanned by Scout too, through the same pull-only OIDC login as the PR gate. The report merges both; a finding from either, or a missing/unreadable report, blocks the publish. The OpenVEX doc gains a pkg:docker/permitio/pdp-v2@release-scan product on every statement so the five waivers apply there (version 15 -> 16). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The ddtrace waiver called PDP_ENABLE_MONITORING=false an independent reason ddtrace is off the request path. It is not: horizon/pdp.py applies the control plane's remote config before checking the flag, so monitoring can be enabled remotely. The Dockerfile's DD_TRACE_PROPAGATION_STYLE_EXTRACT setting is the mitigation, and the waiver (both files) and the Dockerfile comment now say so. OpenVEX document version 16 -> 17. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
release.yml and the vulnerability doc said the approver must be someone other than whoever triggered the release. The environment allows self-review on purpose; both now say so. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
GitHub moves ubuntu-latest to Ubuntu 26 from 2026-10-19 and annotates every job about it. Pinning keeps the release and scan jobs on the image they are tested on; moving to 26 becomes a deliberate change. release.yml's build, scan and publish jobs were already pinned. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This was referenced Oct 4, 2026
Mirrors permitio/agent-security's cargo audit comment: one comment per PR (marker <!-- pdp-cargo-audit -->), severity badges, a table of high/critical advisories and a fold for the rest, plus unmaintained and yanked crates. format_cargo_audit.py renders it and always writes a body; an unreadable report renders "could not be parsed" and the fail step blocks on it. Any vulnerable crate still fails the job and so a release. The CVSS v3 calculator moves into this script and format_security_report.py imports it from there. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
pre-commit-hooks, ruff-pre-commit and pre-commit-rust were pinned by tag, which the hook repo can move. Each `rev` is now the commit the tag points at, with the tag kept as a `# frozen:` comment that prek, pre-commit and Dependabot all read. Also drops the commented-out mypy hook block. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
✅ Cargo Security AuditNo vulnerable crates in |
--- updated-dependencies: - dependency-name: aiohttp dependency-version: 3.14.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [uvicorn](https://github.com/Kludex/uvicorn) to permit the latest version. - [Release notes](https://github.com/Kludex/uvicorn/releases) - [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md) - [Commits](Kludex/uvicorn@0.17.6...0.54.0) --- updated-dependencies: - dependency-name: uvicorn dependency-version: 0.54.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [protobuf](https://developers.google.com/protocol-buffers/) to permit the latest version. --- updated-dependencies: - dependency-name: protobuf dependency-version: 7.36.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [utoipa](https://github.com/juhaku/utoipa) to permit the latest version. - [Release notes](https://github.com/juhaku/utoipa/releases) - [Changelog](https://github.com/juhaku/utoipa/blob/master/utoipa-rapidoc/CHANGELOG.md) - [Commits](juhaku/utoipa@utoipa-5.3.1...utoipa-6.0.0) --- updated-dependencies: - dependency-name: utoipa dependency-version: 6.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [utoipa-axum](https://github.com/juhaku/utoipa) to permit the latest version. - [Release notes](https://github.com/juhaku/utoipa/releases) - [Changelog](https://github.com/juhaku/utoipa/blob/master/utoipa-rapidoc/CHANGELOG.md) - [Commits](juhaku/utoipa@utoipa-axum-0.2.0...utoipa-axum-0.3.0) --- updated-dependencies: - dependency-name: utoipa-axum dependency-version: 0.3.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [sha2](https://github.com/RustCrypto/hashes) to permit the latest version. - [Commits](RustCrypto/hashes@streebog-v0.11.0-pre.0...sha2-v0.11.0) --- updated-dependencies: - dependency-name: sha2 dependency-version: 0.11.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
sha2 0.11's digest type no longer implements LowerHex, so `{:x}` on
`finalize()` stopped compiling. A small hex_prefix() helper renders the
same first 16 lowercase hex characters, so existing cache keys keep
matching; a test pins it to SHA-256("abc"). Cargo.lock picks up utoipa 6,
utoipa-axum 0.3 and sha2 0.11 from the Dependabot commits before this.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fastapi 0.126.0+ requires pydantic>=2.7, which OPAL's pydantic<2 cap rules out (pip: ResolutionImpossible, as on #374). Ignored alongside the other OPAL-capped packages. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This was referenced Oct 5, 2026
zeevmoney
marked this pull request as ready for review
October 5, 2026 12:58
EliMoshkovich
approved these changes
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: PER-15886 · follow-up to #338
What this changes
Dependency updates (Dependabot)
Folds in the open Dependabot PRs, each as Dependabot's own commit:
#369, #376 and #377 duplicated updates already here and were closed.
Follow-up fixes:
{:x}. Ahex_prefix()helper renders the same 16-character cache-key suffix, so existing cache entries still match, and a test pins it.ErrorKind::TypeErrorwas renamedUnexpectedReturnType.redis-testmoves to 1.0.4 so the test build has a single redis version.Requires-Python <3.13, and the image runs 3.13, so the OPAL half of deps: bump the minor-and-patch group with 3 updates #356 is reverted.requirements.txtexplains this at the pin.scalar-fastapiis held at 1.8.2, because 1.9.0 and later require pydantic 2, which OPAL caps (pydantic<2).Not included, because OPAL caps them:
fastapi>=0.126.0.dependabot.ymlnow ignorespydantic>=2,tenacity>=9andscalar-fastapi>=1.9.0, next to the existing starlette/ddtrace entries.Scheduled security scan: one report, green on findings
New Slack report (
format_security_report.py), modelled on agent-security's. The message is:It reuses the existing Trivy classifier and the Dependabot waiver filter.
Findings no longer fail the run. A job goes red only when its scan did not complete (a scanner error, an unreadable report or alert feed) or when the report never reached Slack. The report then lists that scanner as "did not complete". The PR gate and the release gate still block.
notify-slack.ymltakes an optional pre-escapedmessage, sent as-is. The old path escaped the per-tag lines twice, which is where->gt;came from.The report lists the whole unwaived Dependabot backlog every run. The 73-hour window and the
all_alertsinput are removed.security-digest.ymlreads the last scan'ssecurity-reportartifact, because a green run no longer means "no findings".Releases: Docker Scout as well as Trivy
scan-pdp-releaseloads each platform aspermitio/pdp-v2:release-scanand runs Docker Scout alongside Trivy, using the same pull-only OIDC login as the PR gate. A finding from either scanner, or a report that is missing or unreadable, blocks the publish.@release-scanproduct on every statement, so the waivers apply there. Doc version is now 18.Rust: Cargo.lock and cargo audit
Cargo.lockis committed. It was ignored by both git and Docker, so every build resolved crates.io afresh. The image build (cargo chef cook,cargo zigbuild) and the Rust CI job now run with--locked.cargo auditjob intests.yml. A vulnerable crate fails it, and with it a release. Unmaintained and yanked crates are reported, not failed. It usescargo-audit0.22.2, built from crates.io with--lockedand cached.cargo auditkeeps one sticky comment (<!-- pdp-cargo-audit -->) in agent-security's layout: severity badges, a table of high/critical advisories, a fold for the rest, plus unmaintained and yanked crates. An unreadable report renders "could not be parsed" and fails the check.cargo auditjoins the scheduled report. The formatter computes CVSS v3 scores from the vectors, lists advisories with no score under "Unscored" (they trigger the message too), and merges RustSec aliases with Dependabot alerts.CI hygiene
pre-commitjob, using prek 0.5.4 with a cache. The job name, which is the required check, is unchanged.pre-commitecosystem, weekly, 7-day cooldown).# frozen:comment. The commented-out mypy hook is removed.docker/build-push-action5.4.0 → 7.4.0 (Node 24). Build-record artifact upload is off, which keeps v5's behaviour.pre-commit/action, which bundledactions/cache@v4(Node 20). It now usesactions/cache6.1.0 (Node 24) and Python 3.13.ubuntu-24.04, ahead ofubuntu-latestmoving to Ubuntu 26 on 2026-10-19.Corrections
rust/cleartext-logging): the config tests no longer print the loaded API key or everyPDP_*environment variable.PDP_ENABLE_MONITORING=falseis not an independent mitigation, because remote config can enable monitoring. The waivers and the Dockerfile comment now name the extract-style setting as the mitigation.release.ymlnow state thedockerhub-releaseapproval rule as configured: self-review is allowed.mainentries.Verification
cargo fmt --check,cargo clippy --all --all-targets -D warningsandcargo test --allpass locally with--locked(225 tests).cargo auditfinds no vulnerable crates, and 1 unmaintained-crate warning.--persona regular, online audits) reports no findings. prek passes on every file.Not exercised by this PR's CI:
configure-aws-credentialsv6, first run by the next final release (ECS);#[ignore]and need a Redis server.Required tests before promoting 0.9.17
Run these against the
0.9.17-rc2image (the first release built from this PR) before promoting it.Runtime behaviour changes
PDP_OPA_URLat anhttps://OPA endpoint, once with a publicly trusted certificate and once with a private CA installed in the container's system trust store./allowedshould return decisions, with no TLS errors in the pdp-server log. Repeat with the defaulthttp://localhost:8181as the control.PDP_CACHE_STORE=redisandPDP_CACHE_REDIS_URL=redis://<host>:6379. Check all of these:/allowedcall writes anopa:allowed:*key;/healthreports the cache healthy;PDP_CACHE_STORE=in-memory. Repeated identical queries should hit the cache. Key format is pinned by a unit test, so this is a smoke check.PDP_API_KEY,PDP_PORT,PDP_CACHE_TTL,PDP_OPA_URL,PDP_OPA_CLIENT_QUERY_TIMEOUT). The values should be applied, with no config parse errors at startup.SIGTERMto the container: it should shut down cleanly. Kill the horizon process inside a running container: the watchdog should restart or exit as it does today./scalar(scalar-fastapi 1.8.2) and the Rust server's OpenAPI document (utoipa 6) render, and that the documented routes and schemas match 0.9.16.Pipelines
scan-pdp-releaseruns Trivy and Docker Scout on amd64 and arm64;@release-scan;publish-pdp-releasepushes, and the digest check passes.update-pdp-api-ecs-serviceassumes the AWS role throughconfigure-aws-credentialsv6 and the ECS rollout completes.gh workflow run scheduled-security-scan.yml:security-reportartifact is uploaded.gh workflow run security-digest.yml): the "Published-image scan" line shows the last scan's headline, read from that artifact.Not covered by any automated test
pdp-server's two Redis integration tests are#[ignore]and need a Redis server, so the Redis check above is the only coverage for the redis 1.x upgrade.🤖 Generated with Claude Code