From 2c27ccb3cb955d02742b64d0efbbcc4d394d8a36 Mon Sep 17 00:00:00 2001 From: Jahziel Villasana-Espinoza Date: Mon, 20 May 2024 16:00:21 -0400 Subject: [PATCH 1/3] fix: filter filename JOIN by team id --- server/datastore/mysql/software_titles.go | 5 ++-- server/service/integration_enterprise_test.go | 25 ++++++++++++++++++ .../software-installers/ruby_arm64.deb | Bin 0 -> 11340 bytes 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 server/service/testdata/software-installers/ruby_arm64.deb diff --git a/server/datastore/mysql/software_titles.go b/server/datastore/mysql/software_titles.go index bd98f58b03..44c9c02d69 100644 --- a/server/datastore/mysql/software_titles.go +++ b/server/datastore/mysql/software_titles.go @@ -204,7 +204,7 @@ SELECT MAX(COALESCE(sthc.updated_at, date('0001-01-01 00:00:00'))) as counts_updated_at, si.filename as software_package FROM software_titles st -LEFT JOIN software_installers si ON si.title_id = st.id +LEFT JOIN software_installers si ON si.title_id = st.id AND si.team_id = ? LEFT JOIN software_titles_host_counts sthc ON sthc.software_title_id = st.id AND sthc.team_id = ? -- placeholder for JOIN on software/software_cve %s @@ -220,9 +220,10 @@ GROUP BY st.id, software_package` } var globalOrTeamID uint - args := []any{0} + args := []any{0, 0} if opt.TeamID != nil { args[0] = *opt.TeamID + args[1] = *opt.TeamID globalOrTeamID = *opt.TeamID } diff --git a/server/service/integration_enterprise_test.go b/server/service/integration_enterprise_test.go index e5a7aca8b7..0f260e6b3f 100644 --- a/server/service/integration_enterprise_test.go +++ b/server/service/integration_enterprise_test.go @@ -7623,6 +7623,7 @@ func (s *integrationEnterpriseTestSuite) TestAllSoftwareTitles() { payload := &fleet.UploadSoftwareInstallerPayload{ InstallScript: "install", Filename: "ruby.deb", + TeamID: &team1.ID, } s.uploadSoftwareInstaller(payload, http.StatusOK, "") @@ -7632,6 +7633,30 @@ func (s *integrationEnterpriseTestSuite) TestAllSoftwareTitles() { listSoftwareTitlesRequest{}, http.StatusOK, &resp, "query", "ruby", + "team_id", fmt.Sprintf("%d", team1.ID), + ) + + require.Len(t, resp.SoftwareTitles, 1) + require.NotNil(t, resp.SoftwareTitles[0].SoftwarePackage) + require.Equal(t, "ruby.deb", *resp.SoftwareTitles[0].SoftwarePackage) + + // Upload an installer for the same software but different arch to a different team + payload = &fleet.UploadSoftwareInstallerPayload{ + InstallScript: "install", + Filename: "ruby_arm64.deb", + TeamID: &team2.ID, + } + s.uploadSoftwareInstaller(payload, http.StatusOK, "") + + // We should only see the one we uploaded to team 1 + + resp = listSoftwareTitlesResponse{} + s.DoJSON( + "GET", "/api/latest/fleet/software/titles", + listSoftwareTitlesRequest{}, + http.StatusOK, &resp, + "query", "ruby", + "team_id", fmt.Sprintf("%d", team1.ID), ) require.Len(t, resp.SoftwareTitles, 1) diff --git a/server/service/testdata/software-installers/ruby_arm64.deb b/server/service/testdata/software-installers/ruby_arm64.deb new file mode 100644 index 0000000000000000000000000000000000000000..b8ac63e0448a8b93ee5c2e30f3ce3abe20f2c21a GIT binary patch literal 11340 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

S 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 literal 0 HcmV?d00001 From bdf2604377547c8f3b0c96cdbb8b320744679aa0 Mon Sep 17 00:00:00 2001 From: Jahziel Villasana-Espinoza Date: Mon, 20 May 2024 16:07:08 -0400 Subject: [PATCH 2/3] chore: changes file --- changes/19153-duplicate | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/19153-duplicate diff --git a/changes/19153-duplicate b/changes/19153-duplicate new file mode 100644 index 0000000000..584cb9fc3f --- /dev/null +++ b/changes/19153-duplicate @@ -0,0 +1 @@ +- Fixes a bug that caused the `GET /software/titles` endpoint to ignore the team filter for uploaded software. \ No newline at end of file From a8ad6121acb0803100a21bb6c25a3407ecaf7121 Mon Sep 17 00:00:00 2001 From: Jahziel Villasana-Espinoza Date: Mon, 20 May 2024 16:40:13 -0400 Subject: [PATCH 3/3] fix: fix test --- server/datastore/mysql/software_titles.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/datastore/mysql/software_titles.go b/server/datastore/mysql/software_titles.go index 44c9c02d69..a74cf98c18 100644 --- a/server/datastore/mysql/software_titles.go +++ b/server/datastore/mysql/software_titles.go @@ -204,7 +204,7 @@ SELECT MAX(COALESCE(sthc.updated_at, date('0001-01-01 00:00:00'))) as counts_updated_at, si.filename as software_package FROM software_titles st -LEFT JOIN software_installers si ON si.title_id = st.id AND si.team_id = ? +LEFT JOIN software_installers si ON si.title_id = st.id AND COALESCE(si.team_id, 0) = ? LEFT JOIN software_titles_host_counts sthc ON sthc.software_title_id = st.id AND sthc.team_id = ? -- placeholder for JOIN on software/software_cve %s