Skip to content

Commit a86d98d

Browse files
committed
feat: Enable configuration of High Security Mode via environment variable (NEW_RELIC_HIGH_SECURITY).
Resolves #1948
1 parent e3f12cd commit a86d98d

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

src/Agent/NewRelic/Agent/Core/Configuration/DefaultConfiguration.cs

+10-1
Original file line numberDiff line numberDiff line change
@@ -1247,7 +1247,16 @@ private IEnumerable<MatchRule> ParseExpectedStatusCodesArray(IEnumerable<string>
12471247

12481248
public virtual string EntityGuid { get { return _serverConfiguration.EntityGuid; } }
12491249

1250-
public virtual bool HighSecurityModeEnabled => _localConfiguration.highSecurity.enabled;
1250+
private bool? _highSecurityModeEnabled;
1251+
public virtual bool HighSecurityModeEnabled
1252+
{
1253+
get
1254+
{
1255+
_highSecurityModeEnabled ??= EnvironmentOverrides(_localConfiguration.highSecurity.enabled, "NEW_RELIC_HIGH_SECURITY");
1256+
1257+
return _highSecurityModeEnabled.Value;
1258+
}
1259+
}
12511260

12521261

12531262
private BoolConfigurationItem _customInstrumentationEditorIsEnabled;

tests/Agent/UnitTests/Core.UnitTest/Configuration/DefaultConfigurationTests.cs

+30
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,36 @@ public bool HighSecuritySetFromLocalOverridesServer(bool local, bool? server)
694694
return _defaultConfig.HighSecurityModeEnabled;
695695
}
696696

697+
[TestCase(true, null, ExpectedResult = true)]
698+
[TestCase(true, "true", ExpectedResult = true)]
699+
[TestCase(true, "1", ExpectedResult = true)]
700+
[TestCase(true, "false", ExpectedResult = false)]
701+
[TestCase(true, "0", ExpectedResult = false)]
702+
[TestCase(true, "invalid", ExpectedResult = true)]
703+
[TestCase(false, null, ExpectedResult = false)]
704+
[TestCase(false, "true", ExpectedResult = true)]
705+
[TestCase(false, "1", ExpectedResult = true)]
706+
[TestCase(false, "false", ExpectedResult = false)]
707+
[TestCase(false, "0", ExpectedResult = false)]
708+
[TestCase(false, "invalid", ExpectedResult = false)]
709+
[TestCase(null, "true", ExpectedResult = true)]
710+
[TestCase(null, "1", ExpectedResult = true)]
711+
[TestCase(null, "false", ExpectedResult = false)]
712+
[TestCase(null, "0", ExpectedResult = false)]
713+
[TestCase(null, "invalid", ExpectedResult = false)]
714+
[TestCase(null, null, ExpectedResult = false)]
715+
public bool HighSecuritySetFromEnvironmentOverridesLocal(bool? localConfigValue, string envConfigValue)
716+
{
717+
Mock.Arrange(() => _environment.GetEnvironmentVariable("NEW_RELIC_HIGH_SECURITY")).Returns(envConfigValue);
718+
719+
if (localConfigValue.HasValue)
720+
{
721+
_localConfig.highSecurity.enabled = localConfigValue.Value;
722+
}
723+
724+
return _defaultConfig.HighSecurityModeEnabled;
725+
}
726+
697727
[TestCase(true, true, ExpectedResult = false)]
698728
[TestCase(true, false, ExpectedResult = false)]
699729
[TestCase(false, false, ExpectedResult = false)]

0 commit comments

Comments
 (0)