fix(core): prevent OpenTelemetry resource schema conflicts [backport to release/service/v0.11] - #4036
opentdf-automation[bot] wants to merge 18 commits into
Conversation
|
Please cherry-pick the changes locally and resolve any conflicts. git fetch origin backport-3769-to-release/service/v0.11
git worktree add --checkout .worktree/backport-3769-to-release/service/v0.11 backport-3769-to-release/service/v0.11
cd .worktree/backport-3769-to-release/service/v0.11
git reset --hard HEAD^
git cherry-pick -x 4a0c41c9e7ca14291b4bed4e02a0a0cae59f2444
git push --force-with-lease |
2ad146e to
49d5fe3
Compare
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Dependency ReviewThe following issues were found:
|
X-Test Failure Report |
Signed-off-by: jakedoublev <jake.vanvorhis@virtru.com>
X-Test Failure Report✅ java@main-v0.9.0 |
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 8.0.0 to 9.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p> <blockquote> <h2>v9.2.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: add version-file option by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1320">golangci/golangci-lint-action#1320</a></li> <li>chore: move samples into fixtures by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1321">golangci/golangci-lint-action#1321</a></li> </ul> <h3>Dependencies</h3> <ul> <li>build(deps-dev): bump the dev-dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1317">golangci/golangci-lint-action#1317</a></li> <li>build(deps): bump actions/checkout from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1318">golangci/golangci-lint-action#1318</a></li> <li>build(deps-dev): bump the dev-dependencies group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1323">golangci/golangci-lint-action#1323</a></li> <li>build(deps): bump yaml from 2.8.1 to 2.8.2 in the dependencies group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1324">golangci/golangci-lint-action#1324</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v9.1.0...v9.2.0">https://github.com/golangci/golangci-lint-action/compare/v9.1.0...v9.2.0</a></p> <h2>v9.1.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: automatic module directories by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1315">golangci/golangci-lint-action#1315</a></li> </ul> <h3>Documentation</h3> <ul> <li>docs: organize options by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1314">golangci/golangci-lint-action#1314</a></li> </ul> <h3>Dependencies</h3> <ul> <li>build(deps-dev): bump the dev-dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1307">golangci/golangci-lint-action#1307</a></li> <li>build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1309">golangci/golangci-lint-action#1309</a></li> <li>build(deps-dev): bump the dev-dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1310">golangci/golangci-lint-action#1310</a></li> <li>build(deps): bump the dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1311">golangci/golangci-lint-action#1311</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v9.0.0...v9.1.0">https://github.com/golangci/golangci-lint-action/compare/v9.0.0...v9.1.0</a></p> <h2>v9.0.0</h2> <p>In the scope of this release, we change Nodejs runtime from node20 to node24 (<a href="https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/">https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/</a>).</p> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: add install-only option by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1305">golangci/golangci-lint-action#1305</a></li> <li>feat: support Module Plugin System by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1306">golangci/golangci-lint-action#1306</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0">https://github.com/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/golangci/golangci-lint-action/commit/1e7e51e771db61008b38414a730f564565cf7c20"><code>1e7e51e</code></a> build(deps): bump yaml from 2.8.1 to 2.8.2 in the dependencies group (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1324">#1324</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/5256ff0c0a28a49774a7304d8e3c609d402d00be"><code>5256ff0</code></a> build(deps-dev): bump the dev-dependencies group with 3 updates (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1323">#1323</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/13fed6f9113a193550868ae0b2ad583e9fe7f811"><code>13fed6f</code></a> chore: update workflows</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/7afe8ff8631b3f19e5fff3457847f75327ededbc"><code>7afe8ff</code></a> chore: update workflows</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/5a9289952f648d2ca431c4fb972d46f239f3d84f"><code>5a92899</code></a> chore: move samples into fixtures (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1321">#1321</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/aa6fad0ea02e00c7c9e34e4ce5c63572b250d70c"><code>aa6fad0</code></a> feat: add version-file option (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1320">#1320</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/a6071aaacb11b27c22bb795a84223812526187b5"><code>a6071aa</code></a> build(deps): bump actions/checkout from 5 to 6 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1318">#1318</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/6e36c8460ff73f9b5a168b4f556dc6bb34aa0d86"><code>6e36c84</code></a> build(deps-dev): bump the dev-dependencies group with 2 updates (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1317">#1317</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/e7fa5ac41e1cf5b7d48e45e42232ce7ada589601"><code>e7fa5ac</code></a> feat: automatic module directories (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1315">#1315</a>)</li> <li><a href="https://github.com/golangci/golangci-lint-action/commit/f3ae99f5f564eecb7524e0e89b9fd098650b67d7"><code>f3ae99f</code></a> docs: organize options (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/1314">#1314</a>)</li> <li>Additional commits viewable in <a href="https://github.com/golangci/golangci-lint-action/compare/4afd733a84b1f43292c63897423277bb7f4313a9...1e7e51e771db61008b38414a730f564565cf7c20">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes flaky lint failures in CI that are a network error, not a real lint finding: ``` [../../.golangci.yaml] validate: compile schema: failing loading "https://golangci-lint.run/jsonschema/golangci.v2.8.jsonschema.json": context deadline exceeded (Client.Timeout exceeded while awaiting headers) Error: Command failed: /home/runner/golangci-lint-2.8.0-linux-amd64/golangci-lint config verify ``` **Root cause:** `golangci/golangci-lint-action` defaults `verify: true`, which runs `golangci-lint config verify`. In golangci-lint **v2.8.0** (what we pinned), `config verify` downloads the config JSONSchema over HTTPS with a **2-second client timeout**, so any slow response from `golangci-lint.run` fails the job. Known upstream complaint: golangci/golangci-lint#4864 **Upstream fix landed in v2.12.0:** `pkg/commands/config_verify.go` switched from an HTTP loader to `jsonsch.NewEmbedLoader()`, so the schema is compiled into the binary via `go:embed`. | version | schema source | | --- | --- | | v2.8.0 | remote URL, 2s timeout | | v2.9.0, v2.11.0 | remote URL | | **v2.12.0+** | **embedded** | This bumps all three `2.8.0` pins to `2.13.2` (current latest): - `.github/workflows/checks.yaml` — `golangci-lint-action` `version:` in the `go` matrix job - `.github/workflows/checks.yaml` — `go install ...golangci-lint@v2.13.2` in the proto-generate job - `Makefile` — `toolcheck` install hint and `required_golangci_lint_version` (still a minimum, not an exact pin) The action's `verify` input stays at its `true` default. Bumping already removes the network call, so disabling verification would needlessly give up validation of `.golangci.yaml`. No `.golangci.yaml` changes are needed — the existing config validates cleanly under v2.13.2. Ticket: [DSPX-4607](https://virtru.atlassian.net/browse/DSPX-4607) - `make lint` is never invoked in CI — the only lint gate is the `golangci-lint-action` step in the `go` matrix, which uses `only-new-issues: true`. - v2.13.x surfaces **351 pre-existing findings** repo-wide that v2.8.0 did not (lib/fixtures 26, sdk 10, service 163, examples 9, otdfctl 134, tests-bdd 9). These are deliberately **out of scope** here; `only-new-issues: true` means they only block a PR that touches those lines. Follow-up work is enumerated in DSPX-4607, grouped by fix type (unused `//nolint:sloglint` directives, `sloglint` snake_case keys, `goconst`, `canonicalheader` on DPoP headers, `staticcheck` QF1012/SA1019, and a `gomodguard` → `gomodguard_v2` migration). - v2.12.0 deprecated `gomodguard` in favor of `gomodguard_v2`. It emits a warning and still runs, so it is not a blocker. - [ ] I have added or updated unit tests - [ ] I have added or updated integration tests (if appropriate) - [ ] I have added or updated documentation CI-only change; no product code touched, so no test or doc updates apply. **Local** ```sh make toolcheck # passes with v2.13.2 golangci-lint config verify -c .golangci.yaml # exit 0 HTTPS_PROXY=http://127.0.0.1:9 HTTP_PROXY=http://127.0.0.1:9 \ golangci-lint config verify -c .golangci.yaml # exit 0 on v2.13.2; fails on v2.8.0 ``` **CI** Verified ahead of this PR with a `workflow_dispatch` run of `checks.yaml` on this branch: https://github.com/opentdf/platform/actions/runs/33771514702 ``` Installed golangci-lint into /home/runner/golangci-lint-2.13.2-linux-amd64/golangci-lint in 650ms Running [.../golangci-lint config verify] in [.../lib/fixtures] ... Running [.../golangci-lint run --path-mode=abs] in [.../lib/fixtures] ... ``` `config verify` completed with no schema fetch and no error. That dispatch run did then fail `lib/fixtures` on the pre-existing findings, but only because the log shows `Not fetching patch for showing only new issues because it's not a pull request context: event name is workflow_dispatch` — `only-new-issues` was inert so everything got reported. On this PR it filters to changed lines, and since no Go code changes here, the `go` matrix should be clean. [DSPX-4607]: https://virtru.atlassian.net/browse/DSPX-4607?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - **Chores** - Updated the required golangci-lint version to 2.13.2 across automated checks and local tooling. - Improved lint configuration verification reliability by using a version that embeds the configuration schema. - Updated installation guidance and minimum-version validation accordingly. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Dave Mihalcik <dmihalcik@virtru.com>
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
### Proposed Changes * We decided to trust GH Security Check (dependency review GHA in opentdf/platform) as the ground source of truth and make govulncheck nonrequired. We'll do a follow-up to make sure govulncheck run failures add context to PRs for visibility ### Checklist - [ ] I have added or updated unit tests - [ ] I have added or updated integration tests (if appropriate) - [ ] I have added or updated documentation ### Testing Instructions <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated GitHub Actions workflow configuration for vulnerability scanning. The scan will no longer block workflow completion if issues are detected, allowing the pipeline to proceed for further review. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
### Proposed Changes * An automated PR comment is created or refreshed to summarize modules with scan failures, and the summary is removed if no results are available. ### Checklist - [ ] I have added or updated unit tests - [ ] I have added or updated integration tests (if appropriate) - [ ] I have added or updated documentation ### Testing Instructions <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * CI vulnerability scans no longer fail the job; scan failures are tolerated so pipelines continue. * Failing scan results are captured and uploaded as short-retention artifacts for investigation. * An automated PR comment is created or refreshed to summarize modules with scan failures, and the summary is removed if no results are available. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
|
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
NANOTDF Benchmark Results:
|
Description
Backport of #3769 to
release/service/v0.11.Backport adjustments
golangci-lint-actionv9.2.0.golangci-lintv2.13.2 with Go 1.25-compatible tooling.mainbehavior.tests-bddto Go 1.25.5 and backported the compatible Testcontainers dependency stack frommain, including Testcontainers v0.42.0, BuildKit v0.29.0, Docker Compose v5.1.2, Docker CLI v29.4.0, containerd v2.2.8,go-archivev0.3.0, gRPC v1.83.2, and pgx v5.9.2.main, and tidied the service module after removing its direct legacy Docker imports.govulncheckfindings remain visible in PR comments without blocking CI, matchingmainbehavior.x/cryptofix requires Go 1.26 and remains visible through the non-blockinggovulncheckreport.Known remaining CI issue
github.com/docker/dockerv28.5.2 for GHSA-x86f-5xw2-fm2r, GHSA-rg2x-37c3-w2rh, GHSA-pxq6-2prw-chj9, and GHSA-vp62-88p7-qqf5.maincurrently pins the same legacy module version. The patched Docker release usesgithub.com/moby/moby/v2, but Buildx still imports the removed legacypkg/namesgeneratorpackage, so there is no compatible patched module pin to backport. No dependency-review exception has been added.