Skip to content

Cherry-pick #47872: Fix high-severity CVEs flagged by code scanning#47916

Open
georgekarrv wants to merge 2 commits into
mainfrom
georgekarrv/cp-47872-cve-fixes
Open

Cherry-pick #47872: Fix high-severity CVEs flagged by code scanning#47916
georgekarrv wants to merge 2 commits into
mainfrom
georgekarrv/cp-47872-cve-fixes

Conversation

@georgekarrv

@georgekarrv georgekarrv commented Jun 19, 2026

Copy link
Copy Markdown
Member

Related issue: Cherry-pick of #47872 into main.

Originally merged into rc-minor-fleet-v4.87.0. This brings the same CVE fixes onto main so they're not lost when the RC is cut over.

Checklist for submitter

For unreleased bug fixes in a release candidate, one of:

  • Confirmed that the fix is not expected to adversely impact load test results

Summary by CodeRabbit

  • Chores

    • Updated Go module dependencies, including Docker client libraries
    • Removed npm resolution override for axios
    • Added package.json overrides for request and WebSocket dependencies
  • Tests

    • Updated test infrastructure to use updated Docker client library

## Summary

Addresses all 12 high-severity code-scanning alerts open on
`rc-minor-fleet-v4.87.0`:

- **form-data (CVE-2026-12143)** — bumped to 2.5.6 / 4.0.6 across all 5
lock files (root `yarn.lock`, `tools/fleet-slackbot`,
`tools/fleetctl-npm`, `website`, `.github/actions/eng-metrics`). Added
an `overrides` block in `website/package.json` to force
`form-data@2.5.6` inside `@sailshq/request`, which exact-pins the
vulnerable 2.5.5.
- **ws (CVE-2026-48779)** — bumped to 8.21.0 in `website` and
`tools/fleet-slackbot`. Added a `ws@~8.20.1 -> 8.21.0` override so the
transitive `engine.io` pin doesn't pull the vulnerable version back in.
- **hono (CVE-2026-54290)** — bumped to 4.12.25 in
`tools/fleet-slackbot`.
- **docker/docker (CVE-2026-34040, -41567, -42306)** — migrated
`test/upgrade/fleet_test.go` from `github.com/docker/docker` to
`github.com/moby/moby/client v0.5.0`. The three CVEs are in the Docker
daemon (`dockerd`), which Fleet does not compile in — only the client
SDK is used in upgrade tests. The new `moby/moby/client` is the
maintained split-out client package after the v29 module restructure
(where `github.com/docker/docker` is no longer the canonical path).
`docker/docker` remains as an indirect transitive dep (via
`go.elastic.co/apm`'s `go-sysinfo`), bumped from v28.0.0 to v28.5.2 —
the latest in that line. Its removal would require changes outside this
branch's scope.

The `website/package-lock.json` diff is large because `npm install
--package-lock-only` cleaned up `"extraneous": true` entries under
`sails-hook-grunt` that were already dead in the resolved tree. No
functional packages were removed.

## Test plan

- [ ] CI passes
- [ ] Re-run code scanning on the merged commit to confirm the 12
high-severity alerts are resolved (or marked not-applicable for the
daemon CVEs since we no longer directly require docker/docker)
- [ ] `yarn install --frozen-lockfile` succeeds in
`tools/fleet-slackbot` and root
- [ ] `npm ci` succeeds in `website/` and `.github/actions/eng-metrics/`
- [ ] `go test -count=0 ./test/upgrade/...` compiles cleanly (verified
locally)
Copilot AI review requested due to automatic review settings June 19, 2026 14:27
@georgekarrv georgekarrv requested review from a team and eashaw as code owners June 19, 2026 14:27

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The pull request migrates the upgrade test harness from github.com/docker/docker/client to github.com/moby/moby/client (v0.5.0), updating go.mod to reflect this as a direct dependency while demoting github.com/docker/docker to an indirect transitive dependency at v28.5.2. All Docker API call sites in test/upgrade/fleet_test.go are updated to the new client types and method signatures. A new .github/dependency-review-config.yml GHSA allowlist and entries in security/code/.trivyignore suppress Docker-daemon CVEs that are not applicable because Fleet does not compile or ship those code paths. Two npm dependency files are also updated: the **/wait-on/axios resolution is removed from the root package.json, and website/package.json gains an overrides block pinning form-data and ws versions.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description identifies the cherry-pick nature, links to the original PR, and marks the minimal required testing checklist items. However, it significantly deviates from the template by omitting most standard checklist sections. While this is a cherry-pick with limited scope, consider adding brief notes on why most template sections don't apply, or expand the description to address security/database migration impacts if present.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically identifies the main objective: a cherry-pick of #47872 to fix high-severity CVEs via code scanning, which aligns with the actual changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 georgekarrv/cp-47872-cve-fixes

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.

Copilot AI 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.

Pull request overview

Cherry-picks the security dependency updates from #47872 onto main to resolve high-severity code scanning CVEs across the website, tooling, and upgrade tests.

Changes:

  • Added npm overrides to force patched form-data and ws versions in the website dependency graph.
  • Updated lockfiles (npm + yarn) to pull in patched dependency versions and remove stale extraneous entries.
  • Migrated upgrade tests from github.com/docker/docker client usage to github.com/moby/moby/client and updated Go module dependencies accordingly, plus added Trivy ignore notes for daemon-only Docker CVEs still present transitively.

Reviewed changes

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

Show a summary per file
File Description
website/package.json Adds overrides to force patched form-data and ws versions for transitive deps.
website/package-lock.json Updates resolved versions for form-data and ws and prunes extraneous entries.
tools/fleet-slackbot/yarn.lock Bumps form-data and ws to patched versions in slackbot’s dependency tree.
test/upgrade/fleet_test.go Switches Docker SDK usage to github.com/moby/moby/client APIs for upgrade tests.
security/code/.trivyignore Documents/ignores daemon-only Docker CVEs that remain via indirect dependency.
go.mod Removes direct github.com/docker/docker, adds github.com/moby/moby/client, and bumps indirect Docker-related deps.
go.sum Updates checksums consistent with the Go module dependency changes.
.github/actions/eng-metrics/package-lock.json Updates form-data (and related transitive deps) to patched versions for the action.
Files not reviewed (2)
  • .github/actions/eng-metrics/package-lock.json: Generated file
  • website/package-lock.json: Generated file

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

@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.31%. Comparing base (ad52492) to head (dac96d5).
⚠️ Report is 24 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #47916      +/-   ##
==========================================
+ Coverage   67.25%   67.31%   +0.05%     
==========================================
  Files        3641     3655      +14     
  Lines      230237   231251    +1014     
  Branches    11988    12220     +232     
==========================================
+ Hits       154856   155661     +805     
- Misses      61463    61624     +161     
- Partials    13918    13966      +48     
Flag Coverage Δ
backend 68.94% <ø> (+0.06%) ⬆️
backend-activity 85.64% <ø> (ø)
frontend 58.34% <ø> (+0.12%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

cdcme
cdcme previously approved these changes Jun 19, 2026
- website/package.json: add override forcing request → form-data 2.5.6
  (the deprecated request@2.88.0 was still pulling form-data 2.3.3, an
  open dependabot alert)
- website/package-lock.json: regenerate via `npm install` so CI's
  check-doc-gen step doesn't dirty the lockfile. The original cherry-pick
  used `--package-lock-only` which deletes extraneous entries; this
  diverges from what CI's `npm install` produces.
- .github/dependency-review-config.yml: allow-list the 5 docker/docker
  GHSAs flagged by the dependency-review action. All are Docker daemon
  (dockerd) vulnerabilities; Fleet doesn't compile or ship dockerd. The
  matching CVEs are already in security/code/.trivyignore.
- .github/workflows/dependency-review.yml: wire up the config file.
- security/code/.trivyignore: add CVE-2026-33997 and CVE-2026-41568 to
  match the two additional docker daemon advisories.
- package.json: drop the **/wait-on/axios resolution that was forcing
  axios down to 0.28.1 (vulnerable to GHSA-p92q-9vqr-4j8v and
  GHSA-j5f8-grm9-p9fc, both proxy-auth credential leaks). wait-on
  natively wants axios ^1.6.1, which is well above the vulnerable range.
- yarn.lock: regenerate after removing the resolution.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

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

Inline comments:
In `@test/upgrade/fleet_test.go`:
- Around line 207-214: The code at the port assignment (where
result.Items[0].Ports[0].PublicPort is accessed) does not check if the Ports
slice contains any elements before indexing. Add a bounds check after confirming
the container exists to verify that len(result.Items[0].Ports) is greater than
zero before accessing Ports[0], and return an appropriate error if no ports are
available.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 19070473-a51e-4684-9fcc-60b7ea1fdfbf

📥 Commits

Reviewing files that changed from the base of the PR and between ad52492 and dac96d5.

⛔ Files ignored due to path filters (5)
  • .github/actions/eng-metrics/package-lock.json is excluded by !**/package-lock.json
  • go.sum is excluded by !**/*.sum
  • tools/fleet-slackbot/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • website/package-lock.json is excluded by !**/package-lock.json
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (7)
  • .github/dependency-review-config.yml
  • .github/workflows/dependency-review.yml
  • go.mod
  • package.json
  • security/code/.trivyignore
  • test/upgrade/fleet_test.go
  • website/package.json
💤 Files with no reviewable changes (1)
  • package.json

Comment on lines +207 to +214
result, err := f.dockerClient.ContainerList(context.TODO(), dockerclient.ContainerListOptions{Filters: make(dockerclient.Filters).Add("name", containerName), All: true})
if err != nil {
return err
}
if len(containers) == 0 {
if len(result.Items) == 0 {
return errors.New("no fleet container found")
}
port := containers[0].Ports[0].PublicPort
port := result.Items[0].Ports[0].PublicPort

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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Guard Ports[0] access before indexing to avoid panics.

At Line 214, result.Items[0].Ports[0] assumes at least one mapped port. If Docker returns the container before port bindings are populated, this panics and makes the upgrade test flaky.

Suggested fix
 	if len(result.Items) == 0 {
 		return errors.New("no fleet container found")
 	}
+	if len(result.Items[0].Ports) == 0 {
+		return errors.New("fleet container has no published ports yet")
+	}
 	port := result.Items[0].Ports[0].PublicPort
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
result, err := f.dockerClient.ContainerList(context.TODO(), dockerclient.ContainerListOptions{Filters: make(dockerclient.Filters).Add("name", containerName), All: true})
if err != nil {
return err
}
if len(containers) == 0 {
if len(result.Items) == 0 {
return errors.New("no fleet container found")
}
port := containers[0].Ports[0].PublicPort
port := result.Items[0].Ports[0].PublicPort
result, err := f.dockerClient.ContainerList(context.TODO(), dockerclient.ContainerListOptions{Filters: make(dockerclient.Filters).Add("name", containerName), All: true})
if err != nil {
return err
}
if len(result.Items) == 0 {
return errors.New("no fleet container found")
}
if len(result.Items[0].Ports) == 0 {
return errors.New("fleet container has no published ports yet")
}
port := result.Items[0].Ports[0].PublicPort
🤖 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 `@test/upgrade/fleet_test.go` around lines 207 - 214, The code at the port
assignment (where result.Items[0].Ports[0].PublicPort is accessed) does not
check if the Ports slice contains any elements before indexing. Add a bounds
check after confirming the container exists to verify that
len(result.Items[0].Ports) is greater than zero before accessing Ports[0], and
return an appropriate error if no ports are available.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: test-go (integration-enterprise, mysql:8.0.44) / test

Failed stage: Run Go Tests [❌]

Failed test name: TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps

Failure summary:

The action failed because a Go integration test in the service package failed:

- Failed test: TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps (reported at
server/service/integration_enterprise_test.go:21484).
- Root error: an unexpected database query
result during MySQL-backed integration testing: sql: no rows in result set (trace points to
server/datastore/mysql/mysqltest/mysqltest.go:487).
- Because this test failed, make test-go exited
non-zero (make[1]: *** [Makefile:291: .run-go-tests] Error 1, overall exit code 2), causing the
GitHub Actions job to fail.

Relevant error logs:
1:  Runner name: 'ubuntu-8core-1000929068'
2:  Runner group name: 'default larger runners'
...

1325:  �[36;1mattempt=1�[0m
1326:  �[36;1m�[0m
1327:  �[36;1mwhile [ $attempt -le $max_attempts ]; do�[0m
1328:  �[36;1m  echo "Attempt $attempt of $max_attempts"�[0m
1329:  �[36;1m�[0m
1330:  �[36;1m  # Try to connect to MySQL�[0m
1331:  �[36;1m  if wait_for_mysql "mysql_test"; then�[0m
1332:  �[36;1m    # If MySQL is ready, try to connect to MySQL replica�[0m
1333:  �[36;1m    if wait_for_mysql "mysql_replica_test"; then�[0m
1334:  �[36;1m      # Both are ready, we're done�[0m
1335:  �[36;1m      echo "All MySQL connections successful"�[0m
1336:  �[36;1m      exit 0�[0m
1337:  �[36;1m    fi�[0m
1338:  �[36;1m  fi�[0m
1339:  �[36;1m�[0m
1340:  �[36;1m  # If we get here, at least one connection failed�[0m
1341:  �[36;1m  echo "Failed to connect to MySQL on attempt $attempt"�[0m
1342:  �[36;1m�[0m
1343:  �[36;1m  if [ $attempt -lt $max_attempts ]; then�[0m
1344:  �[36;1m    echo "Restarting containers and trying again..."�[0m
1345:  �[36;1m    restart_containers�[0m
1346:  �[36;1m  else�[0m
1347:  �[36;1m    echo "Maximum attempts reached. Failing the job."�[0m
1348:  �[36;1m    exit 1�[0m
...

1495:  �[32m✓�[0m Integrations enterprise test batch software installer and FMA categories valid categories 1 (0.57s)
1496:  �[32m✓�[0m Integrations enterprise test batch software installer and FMA categories valid categories 2 (0.57s)
1497:  �[32m✓�[0m Integrations enterprise test batch software installer and FMA categories valid categories 3 - security and utilities (0.57s)
1498:  �[32m✓�[0m Integrations enterprise test batch software installer and FMA categories valid categories 4 - mixed with new categories (0.57s)
1499:  �[32m✓�[0m Integrations enterprise test batch software upload with SHAs (8.15s)
1500:  �[32m✓�[0m Integrations enterprise test calendar callback (8.88s)
1501:  �[32m✓�[0m Integrations enterprise test calendar event body update (7.37s)
1502:  �[32m✓�[0m Integrations enterprise test calendar events (5.63s)
1503:  �[32m✓�[0m Integrations enterprise test calendar events transferring hosts (3.91s)
1504:  �[32m✓�[0m Integrations enterprise test cancel batch scripts (0.25s)
1505:  �[32m✓�[0m Integrations enterprise test certificates specs (0.48s)
1506:  �[32m✓�[0m Integrations enterprise test conditional access basic setup (0.27s)
1507:  �[32m✓�[0m Integrations enterprise test conditional access bypass (0.64s)
1508:  �[32m✓�[0m Integrations enterprise test conditional access bypass activity created with default idp full name (0.02s)
1509:  �[32m✓�[0m Integrations enterprise test conditional access bypass activity includes actual IDP name when SCIM user present (0.02s)
1510:  �[32m✓�[0m Integrations enterprise test conditional access bypass bypass allowed when only non-c a critical policy is failing (0.03s)
1511:  �[32m✓�[0m Integrations enterprise test conditional access bypass bypass fails when disabled (0.03s)
1512:  �[32m✓�[0m Integrations enterprise test conditional access bypass bypass fails when host has failing critical policy (0.02s)
1513:  �[32m✓�[0m Integrations enterprise test conditional access bypass bypass succeeds after re-enabling (0.04s)
...

1522:  �[32m✓�[0m Integrations enterprise test create API only user premium (0.14s)
1523:  �[32m✓�[0m Integrations enterprise test create API only user premium allow only a limited number of api endpoints (0.00s)
1524:  �[32m✓�[0m Integrations enterprise test create API only user premium fleet-scoped assignment without api endpoints grants full access (0.02s)
1525:  �[32m✓�[0m Integrations enterprise test create API only user premium global role and fleets together (0.00s)
1526:  �[32m✓�[0m Integrations enterprise test create API only user premium global role with specific api endpoints (0.02s)
1527:  �[32m✓�[0m Integrations enterprise test create API only user premium invalid api endpoint not in catalog (0.00s)
1528:  �[32m✓�[0m Integrations enterprise test create API only user premium missing name (0.00s)
1529:  �[32m✓�[0m Integrations enterprise test create API only user premium neither global role nor fleets (0.00s)
1530:  �[32m✓�[0m Integrations enterprise test create API only user premium nil api endpoints grants full access (0.02s)
1531:  �[32m✓�[0m Integrations enterprise test create API only user premium wildcard mixed with other entries (0.00s)
1532:  �[32m✓�[0m Integrations enterprise test custom transparency URL (0.09s)
1533:  �[32m✓�[0m Integrations enterprise test delete labels (0.10s)
1534:  �[32m✓�[0m Integrations enterprise test delete team certificate templates (2.33s)
1535:  �[32m✓�[0m Integrations enterprise test desktop endpoint with invalid policy (0.08s)
1536:  �[32m✓�[0m Integrations enterprise test device authentication methods (0.43s)
1537:  �[32m✓�[0m Integrations enterprise test device authentication methods cert serial zero should fail cert auth (0.00s)
1538:  �[32m✓�[0m Integrations enterprise test device authentication methods certificate for wrong host (0.00s)
...

1559:  �[32m✓�[0m Integrations enterprise test enqueue same script twice (0.09s)
1560:  �[32m✓�[0m Integrations enterprise test external integrations team config (0.32s)
1561:  �[32m✓�[0m Integrations enterprise test fleet desktop settings alternative browser host URL (0.09s)
1562:  �[32m✓�[0m Integrations enterprise test get user returns API endpoints (0.10s)
1563:  �[32m✓�[0m Integrations enterprise test git ops exceptions config (0.11s)
1564:  �[32m✓�[0m Integrations enterprise test git ops mode config (0.08s)
1565:  �[32m✓�[0m Integrations enterprise test git ops mode toggle does not create conditional access activity (0.14s)
1566:  �[32m✓�[0m Integrations enterprise test git ops user actions (1.28s)
1567:  �[32m✓�[0m Integrations enterprise test global policy create read patch (0.09s)
1568:  �[32m✓�[0m Integrations enterprise test host device mapping IDP (0.23s)
1569:  �[32m✓�[0m Integrations enterprise test host health (0.11s)
1570:  �[32m✓�[0m Integrations enterprise test host script details (0.36s)
1571:  �[32m✓�[0m Integrations enterprise test host script details deleted script (0.01s)
1572:  �[32m✓�[0m Integrations enterprise test host script details get script results user message (0.03s)
1573:  �[32m✓�[0m Integrations enterprise test host script details get script results user message disabled (0.01s)
1574:  �[32m✓�[0m Integrations enterprise test host script details get script results user message error (0.01s)
1575:  �[32m✓�[0m Integrations enterprise test host script details get script results user message host-timeout (0.01s)
...

1638:  �[32m✓�[0m Integrations enterprise test modify API only user premium assign to fleet clears global role (0.01s)
1639:  �[32m✓�[0m Integrations enterprise test modify API only user premium empty api endpoints (0.01s)
1640:  �[32m✓�[0m Integrations enterprise test modify API only user premium empty array is invalid (0.01s)
1641:  �[32m✓�[0m Integrations enterprise test modify API only user premium global role and fleets together (0.01s)
1642:  �[32m✓�[0m Integrations enterprise test modify API only user premium invalid api endpoint not in catalog (0.01s)
1643:  �[32m✓�[0m Integrations enterprise test modify API only user premium more than 100 api endpoints (0.01s)
1644:  �[32m✓�[0m Integrations enterprise test modify API only user premium non-a p i -only user (0.00s)
1645:  �[32m✓�[0m Integrations enterprise test modify API only user premium nonexistent user (0.00s)
1646:  �[32m✓�[0m Integrations enterprise test modify API only user premium null api endpoints resets to full access (0.01s)
1647:  �[32m✓�[0m Integrations enterprise test modify API only user premium update api endpoints to specific endpoints (0.01s)
1648:  �[32m✓�[0m Integrations enterprise test modify API only user premium update global role (0.01s)
1649:  �[32m✓�[0m Integrations enterprise test modify API only user premium update name (0.01s)
1650:  �[32m✓�[0m Integrations enterprise test modify API only user premium wildcard mixed with other entries (0.01s)
1651:  �[32m✓�[0m Integrations enterprise test modify team enroll secrets (0.12s)
1652:  �[32m✓�[0m Integrations enterprise test modify team historical data (0.15s)
1653:  �[32m✓�[0m Integrations enterprise test no team failing policy webhook trigger (0.12s)
1654:  �[32m✓�[0m Integrations enterprise test no team policies (0.27s)
...

1713:  �[32m✓�[0m Integrations enterprise test setup experience windows with software (0.56s)
1714:  �[32m✓�[0m Integrations enterprise test setup experience windows with software windows-failure-no-team (0.11s)
1715:  �[32m✓�[0m Integrations enterprise test setup experience windows with software windows-success (0.12s)
1716:  �[32m✓�[0m Integrations enterprise test setup experience windows with software without desktop (0.24s)
1717:  �[32m✓�[0m Integrations enterprise test software auth (1.15s)
1718:  �[32m✓�[0m Integrations enterprise test software auth global-admin (0.15s)
1719:  �[32m✓�[0m Integrations enterprise test software auth global-maintainer (0.14s)
1720:  �[32m✓�[0m Integrations enterprise test software auth global-observer (0.14s)
1721:  �[32m✓�[0m Integrations enterprise test software auth team-admin-belongs-to-team (0.08s)
1722:  �[32m✓�[0m Integrations enterprise test software auth team-admin-does-not-belong-to-team (0.07s)
1723:  �[32m✓�[0m Integrations enterprise test software auth team-maintainer-belongs-to-team (0.08s)
1724:  �[32m✓�[0m Integrations enterprise test software auth team-maintainer-does-not-belong-to-team (0.07s)
1725:  �[32m✓�[0m Integrations enterprise test software auth team-observer-belongs-to-team (0.08s)
1726:  �[32m✓�[0m Integrations enterprise test software auth team-observer-does-not-belong-to-team (0.07s)
1727:  �[32m✓�[0m Integrations enterprise test software installer host requests (3.41s)
1728:  �[32m✓�[0m Integrations enterprise test software installer host requests failed (0.03s)
1729:  �[32m✓�[0m Integrations enterprise test software installer host requests installed (0.03s)
1730:  �[32m✓�[0m Integrations enterprise test software installer host requests nonexistent title id failed (0.01s)
1731:  �[32m✓�[0m Integrations enterprise test software installer host requests nonexistent title id installed (0.01s)
1732:  �[32m✓�[0m Integrations enterprise test software installer host requests nonexistent title id pending (0.01s)
1733:  �[32m✓�[0m Integrations enterprise test software installer host requests pending (0.03s)
1734:  �[32m✓�[0m Integrations enterprise test software installer new install request platform validation (0.35s)
1735:  �[32m✓�[0m Integrations enterprise test software installer orbit download failure (0.18s)
1736:  �[32m✓�[0m Integrations enterprise test software installer upload download and delete (1.13s)
...

1757:  �[32m✓�[0m Integrations enterprise test team endpoints (0.47s)
1758:  �[32m✓�[0m Integrations enterprise test team labels (0.46s)
1759:  �[32m✓�[0m Integrations enterprise test team labels distributed read write (0.35s)
1760:  �[32m✓�[0m Integrations enterprise test team policies (0.27s)
1761:  �[32m✓�[0m Integrations enterprise test team policy continuous automations CRUD (0.16s)
1762:  �[32m✓�[0m Integrations enterprise test team policy create read patch (0.12s)
1763:  �[32m✓�[0m Integrations enterprise test team queries (0.10s)
1764:  �[32m✓�[0m Integrations enterprise test team schedule (0.12s)
1765:  �[32m✓�[0m Integrations enterprise test team secrets are obfuscated (0.74s)
1766:  �[32m✓�[0m Integrations enterprise test team specs (0.39s)
1767:  �[32m✓�[0m Integrations enterprise test team specs permissions (0.23s)
1768:  �[32m✓�[0m Integrations enterprise test update software auto update config (0.23s)
1769:  �[31m✖�[0m Integrations enterprise test upgrade codes from maintained apps (4.36s)
1770:  �[32m✓�[0m Integrations enterprise test windows migrate MDM not enabled (0.04s)
1771:  �[32m✓�[0m Integrations enterprise test windows updates team config (0.21s)
1772:  === �[31mFailed�[0m
1773:  === �[31mFAIL�[0m: server/service TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps (4.36s)
1774:  integration_enterprise_test.go:21484: 
1775:  Error Trace:	/home/runner/work/fleet/fleet/server/datastore/mysql/mysqltest/mysqltest.go:487
1776:  /home/runner/work/fleet/fleet/server/service/integration_enterprise_test.go:21484
1777:  /opt/hostedtoolcache/go/1.26.4/x64/src/runtime/asm_amd64.s:1771
1778:  Error:      	Received unexpected error:
1779:  sql: no rows in result set
1780:  Test:       	TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps
1781:  ts=level=debug msg="cleanup orphaned software titles" rows_affected=0 took=556.886µs
1782:  --- FAIL: TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps (4.36s)
1783:  === �[31mFAIL�[0m: server/service TestIntegrationsEnterprise (229.35s)
1784:  time=level=INFO msg="" method=POST uri=/api/latest/fleet/login took=75.137802ms op=login email=admin1@example.com public_ip=127.0.0.1
1785:  DONE 343 tests, 2 failures in 229.699s
1786:  make[1]: *** [Makefile:291: .run-go-tests] Error 1
1787:  make[1]: Leaving directory '/home/runner/work/fleet/fleet'
1788:  make: *** [Makefile:406: test-go] Error 2
1789:  ##[error]Process completed with exit code 2.
1790:  Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
1791:  ##[group]Run actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a
1792:  with:
1793:  name: integration-enterprise-mysql8.0.44-coverage
1794:  path: ./coverage.txt
1795:  if-no-files-found: error
1796:  compression-level: 6
...

1799:  RACE_ENABLED: false
1800:  GO_TEST_TIMEOUT: 20m
1801:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1802:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1803:  CI_TEST_PKG: service
1804:  NEED_DOCKER: 1
1805:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1806:  GOTOOLCHAIN: local
1807:  ##[endgroup]
1808:  (node:20319) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
1809:  (Use `node --trace-deprecation ...` to show where the warning was created)
1810:  With the provided path, there will be 1 file uploaded
1811:  Artifact name is valid!
1812:  Root directory input is valid!
1813:  Beginning upload of artifact content to blob storage
1814:  (node:20319) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
1815:  Uploaded bytes 561581
1816:  Finished uploading artifact content to blob storage!
1817:  SHA256 hash of uploaded artifact zip is c950005cdc271bdbc7b1eb4c4aec799946200cf77c55dd456745b7a2aa93be87
1818:  Finalizing artifact upload
1819:  Artifact integration-enterprise-mysql8.0.44-coverage.zip successfully finalized. Artifact ID 7757163013
1820:  Artifact integration-enterprise-mysql8.0.44-coverage has been successfully uploaded! Final size is 561581 bytes. Artifact ID is 7757163013
1821:  Artifact download URL: https://github.com/fleetdm/fleet/actions/runs/27844653620/artifacts/7757163013
1822:  ##[group]Run c1grep() { grep "$@" || test $? = 1; }
1823:  �[36;1mc1grep() { grep "$@" || test $? = 1; }�[0m
1824:  �[36;1mc1grep -oP 'FAIL: .*$' /tmp/gotest.log > /tmp/summary.txt�[0m
1825:  �[36;1mc1grep 'test timed out after' /tmp/gotest.log >> /tmp/summary.txt�[0m
1826:  �[36;1mc1grep 'fatal error:' /tmp/gotest.log >> /tmp/summary.txt�[0m
1827:  �[36;1mc1grep -A 10 'panic: runtime error: ' /tmp/gotest.log >> /tmp/summary.txt�[0m
1828:  �[36;1mc1grep ' FAIL\t' /tmp/gotest.log >> /tmp/summary.txt�[0m
1829:  �[36;1mGO_FAIL_SUMMARY=$(head -n 5 /tmp/summary.txt | sed ':a;N;$!ba;s/\n/\\n/g')�[0m
1830:  �[36;1mecho "GO_FAIL_SUMMARY=$GO_FAIL_SUMMARY"�[0m
1831:  �[36;1mif [[ -z "$GO_FAIL_SUMMARY" ]]; then�[0m
1832:  �[36;1m  GO_FAIL_SUMMARY="unknown, please check the build URL"�[0m
1833:  �[36;1mfi�[0m
1834:  �[36;1mGO_FAIL_SUMMARY=$GO_FAIL_SUMMARY envsubst < .github/workflows/config/slack_payload_template.json > ./payload.json�[0m
1835:  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
1836:  env:
1837:  RACE_ENABLED: false
1838:  GO_TEST_TIMEOUT: 20m
1839:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1840:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1841:  CI_TEST_PKG: service
1842:  NEED_DOCKER: 1
1843:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1844:  GOTOOLCHAIN: local
1845:  ##[endgroup]
1846:  GO_FAIL_SUMMARY=FAIL: TestIntegrationsEnterprise/TestUpgradeCodesFromMaintainedApps (4.36s)
1847:  Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
1848:  ##[group]Run actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a
1849:  with:
1850:  name: integration-enterprise-mysql8.0.44-test-log
1851:  path: /tmp/gotest.log
1852:  if-no-files-found: error
1853:  compression-level: 6
...

1856:  RACE_ENABLED: false
1857:  GO_TEST_TIMEOUT: 20m
1858:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1859:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1860:  CI_TEST_PKG: service
1861:  NEED_DOCKER: 1
1862:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1863:  GOTOOLCHAIN: local
1864:  ##[endgroup]
1865:  (node:20341) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
1866:  (Use `node --trace-deprecation ...` to show where the warning was created)
1867:  With the provided path, there will be 1 file uploaded
1868:  Artifact name is valid!
1869:  Root directory input is valid!
1870:  Beginning upload of artifact content to blob storage
1871:  (node:20341) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
1872:  Uploaded bytes 5587
...

1888:  RACE_ENABLED: false
1889:  GO_TEST_TIMEOUT: 20m
1890:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1891:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1892:  CI_TEST_PKG: service
1893:  NEED_DOCKER: 1
1894:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1895:  GOTOOLCHAIN: local
1896:  ##[endgroup]
1897:  (node:20353) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
1898:  (Use `node --trace-deprecation ...` to show where the warning was created)
1899:  With the provided path, there will be 1 file uploaded
1900:  Artifact name is valid!
1901:  Root directory input is valid!
1902:  Beginning upload of artifact content to blob storage
1903:  (node:20353) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
1904:  Uploaded bytes 212
...

1920:  RACE_ENABLED: false
1921:  GO_TEST_TIMEOUT: 20m
1922:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1923:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1924:  CI_TEST_PKG: service
1925:  NEED_DOCKER: 1
1926:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1927:  GOTOOLCHAIN: local
1928:  ##[endgroup]
1929:  (node:20365) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
1930:  (Use `node --trace-deprecation ...` to show where the warning was created)
1931:  With the provided path, there will be 1 file uploaded
1932:  Artifact name is valid!
1933:  Root directory input is valid!
1934:  Beginning upload of artifact content to blob storage
1935:  (node:20365) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
1936:  Uploaded bytes 119254
...

1969:  RACE_ENABLED: false
1970:  GO_TEST_TIMEOUT: 20m
1971:  DOCKER_COMMAND: docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup s3 saml_idp mailhog mailpit smtp4dev_test
1972:  RUN_TESTS_ARG: -run=^TestIntegrationsEnterprise
1973:  CI_TEST_PKG: service
1974:  NEED_DOCKER: 1
1975:  ARTIFACT_PREFIX: integration-enterprise-mysql8.0.44
1976:  GOTOOLCHAIN: local
1977:  ##[endgroup]
1978:  (node:20378) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
1979:  (Use `node --trace-deprecation ...` to show where the warning was created)
1980:  With the provided path, there will be 1 file uploaded
1981:  Artifact name is valid!
1982:  Root directory input is valid!
1983:  Beginning upload of artifact content to blob storage
1984:  (node:20378) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
1985:  Uploaded bytes 133

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.

3 participants