Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion useragent/useragent.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,13 @@ func UserAgent(binaryNameCapitalized string, version, commit, buildTime string,
return builder.String()
}

func UserAgentWithBeatTelemetry(binaryNameCapitalized string, version string, mode AgentManagementMode, unprivileged AgentUnprivilegedMode) string {
func UserAgentWithBeatTelemetry(
binaryNameCapitalized string,
version string,
mode AgentManagementMode,
unprivileged AgentUnprivilegedMode,
isFIPSDistribution bool,
) string {
var builder strings.Builder
builder.WriteString("Elastic-" + binaryNameCapitalized + "/" + version + " ")
uaValues := []string{
Expand All @@ -106,6 +112,10 @@ func UserAgentWithBeatTelemetry(binaryNameCapitalized string, version string, mo
if unprivileged != AgentUnprivilegedModeUnknown {
uaValues = append(uaValues, unprivileged.String())
}
if isFIPSDistribution {
uaValues = append(uaValues, "FIPS")
}

builder.WriteByte('(')
builder.WriteString(strings.Join(uaValues, "; "))
builder.WriteByte(')')
Expand Down
5 changes: 3 additions & 2 deletions useragent/useragent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ func TestUserAgent(t *testing.T) {
}

func TestUserAgentWithBeatTelemetry(t *testing.T) {
ua2 := UserAgentWithBeatTelemetry("FakeBeat", v, mode, unprivileged)
isFIPSDistribution := true
ua2 := UserAgentWithBeatTelemetry("FakeBeat", v, mode, unprivileged, isFIPSDistribution)
assert.Regexp(t, regexp.MustCompile(`^Elastic-FakeBeat`), ua2)
assert.Regexp(t, regexp.MustCompile(`; Managed; Unprivileged\)$`), ua2)
assert.Regexp(t, regexp.MustCompile(`; Managed; Unprivileged; FIPS\)$`), ua2)

// Require deliberate update in case we want to extend the User Agent later
assert.LessOrEqual(t, len(ua2), 100, "User agent string should be less than 100 characters")
Expand Down
Loading