Skip to content

Commit 9625fd4

Browse files
committed
Merged PR 1121530: - Add support for Pii mark bit
Support MICROSOFT_EVENTTAG_MARK_PII bitflag. That flag avoids routing specific Pii marked Windows events to Aria. - Add support for Pii mark bit - Add example to sandbox app - Introduce Event Sender test tool to manually ingest events via two path The test tool is needed for Collector team to resolve an issue with flags field not functioning correctly on direct upload path. There is no automated test for this functionality because the flags field influences the way how data is forwarded to secure Pii storage backend-side. Manual test is necessary to verify the backend flow E2E. Expected result is that events marked as Pii will not show in Aria --- once Collector team introduces the proper handling of record.flags field.
1 parent dddc3e6 commit 9625fd4

16 files changed

+252
-46
lines changed

Solutions/MSTelemetrySDK.sln

+47
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleCppMini", "..\example
122122
EndProject
123123
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleCppUTC", "..\lib\modules\examples\cpp\SampleCppUTC\SampleCppUTC.vcxproj", "{C947B185-2B00-4073-A19D-483ED5C7EDC2}"
124124
EndProject
125+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EventSender", "..\examples\cpp\EventSender\EventSender.vcxproj", "{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}"
126+
EndProject
125127
Global
126128
GlobalSection(SharedMSBuildProjectFiles) = preSolution
127129
..\lib\pal\universal\universal.vcxitems*{10e9165b-49d1-4d1c-8248-334b9905b9cc}*SharedItemsImports = 9
@@ -1140,6 +1142,50 @@ Global
11401142
{C947B185-2B00-4073-A19D-483ED5C7EDC2}.Release|Win32.Build.0 = Release|Win32
11411143
{C947B185-2B00-4073-A19D-483ED5C7EDC2}.Release|x64.ActiveCfg = Release|x64
11421144
{C947B185-2B00-4073-A19D-483ED5C7EDC2}.Release|x64.Build.0 = Release|x64
1145+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|ARM.ActiveCfg = Release|x64
1146+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|ARM.Build.0 = Release|x64
1147+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|ARM64.ActiveCfg = Release|x64
1148+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|ARM64.Build.0 = Release|x64
1149+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|Win32.ActiveCfg = Debug|Win32
1150+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|Win32.Build.0 = Debug|Win32
1151+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|x64.ActiveCfg = Debug|x64
1152+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.static|x64.Build.0 = Debug|x64
1153+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|ARM.ActiveCfg = Release|x64
1154+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|ARM.Build.0 = Release|x64
1155+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|ARM64.ActiveCfg = Release|x64
1156+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|ARM64.Build.0 = Release|x64
1157+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|Win32.ActiveCfg = Debug|Win32
1158+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|Win32.Build.0 = Debug|Win32
1159+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|x64.ActiveCfg = Debug|x64
1160+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug.vs2015.MT-sqlite|x64.Build.0 = Debug|x64
1161+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|ARM.ActiveCfg = Debug|Win32
1162+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|ARM64.ActiveCfg = Debug|Win32
1163+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|Win32.ActiveCfg = Debug|Win32
1164+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|Win32.Build.0 = Debug|Win32
1165+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|x64.ActiveCfg = Debug|x64
1166+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Debug|x64.Build.0 = Debug|x64
1167+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|ARM.ActiveCfg = Release|x64
1168+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|ARM.Build.0 = Release|x64
1169+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|ARM64.ActiveCfg = Release|x64
1170+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|ARM64.Build.0 = Release|x64
1171+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|Win32.ActiveCfg = Release|Win32
1172+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|Win32.Build.0 = Release|Win32
1173+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|x64.ActiveCfg = Release|x64
1174+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.static|x64.Build.0 = Release|x64
1175+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|ARM.ActiveCfg = Release|x64
1176+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|ARM.Build.0 = Release|x64
1177+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|ARM64.ActiveCfg = Release|x64
1178+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|ARM64.Build.0 = Release|x64
1179+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|Win32.ActiveCfg = Release|Win32
1180+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|Win32.Build.0 = Release|Win32
1181+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|x64.ActiveCfg = Release|x64
1182+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release.vs2015.MT-sqlite|x64.Build.0 = Release|x64
1183+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|ARM.ActiveCfg = Release|Win32
1184+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|ARM64.ActiveCfg = Release|Win32
1185+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|Win32.ActiveCfg = Release|Win32
1186+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|Win32.Build.0 = Release|Win32
1187+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|x64.ActiveCfg = Release|x64
1188+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222}.Release|x64.Build.0 = Release|x64
11431189
EndGlobalSection
11441190
GlobalSection(SolutionProperties) = preSolution
11451191
HideSolutionNode = FALSE
@@ -1167,6 +1213,7 @@ Global
11671213
{77053F92-F003-4D1C-A489-1DEB7CFEA4EC} = {D31B3404-AE47-4D0A-9A59-C321164F945C}
11681214
{86AC752C-5687-4377-841E-943D9BEEF361} = {D31B3404-AE47-4D0A-9A59-C321164F945C}
11691215
{C947B185-2B00-4073-A19D-483ED5C7EDC2} = {D31B3404-AE47-4D0A-9A59-C321164F945C}
1216+
{7DBFBA1F-520D-4C93-A33E-DD92FD4F9222} = {D31B3404-AE47-4D0A-9A59-C321164F945C}
11701217
EndGlobalSection
11711218
GlobalSection(ExtensibilityGlobals) = postSolution
11721219
SolutionGuid = {7EE8585B-C10F-4DAC-BDAF-3726EDF8FCD7}

examples/cpp/EventSender/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include
2+
lib
16.9 KB
Binary file not shown.

private/examples/EventSender/EventSender.vcxproj examples/cpp/EventSender/EventSender.vcxproj

+25-8
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,16 @@
9797
<Link>
9898
<SubSystem>Console</SubSystem>
9999
<GenerateDebugInformation>true</GenerateDebugInformation>
100-
<AdditionalLibraryDirectories>$(ProjectDir)\lib\$(TargetedSDKArchitecture)\$(TargetedSDKConfiguration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
100+
<AdditionalLibraryDirectories>$(ProjectDir)lib\$(TargetedSDKConfiguration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
101101
<AdditionalDependencies>ClientTelemetry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
102102
</Link>
103103
<PostBuildEvent>
104-
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(TargetedSDKArchitecture) $(OutDir)</Command>
104+
<Command>
105+
</Command>
105106
</PostBuildEvent>
107+
<PreBuildEvent>
108+
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(Platform) $(OutDir)</Command>
109+
</PreBuildEvent>
106110
</ItemDefinitionGroup>
107111
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
108112
<ClCompile>
@@ -119,12 +123,16 @@
119123
<Link>
120124
<SubSystem>Console</SubSystem>
121125
<GenerateDebugInformation>true</GenerateDebugInformation>
122-
<AdditionalLibraryDirectories>$(ProjectDir)\lib\$(TargetedSDKArchitecture)\$(TargetedSDKConfiguration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
126+
<AdditionalLibraryDirectories>$(ProjectDir)lib\$(TargetedSDKConfiguration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
123127
<AdditionalDependencies>ClientTelemetry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
124128
</Link>
125129
<PostBuildEvent>
126-
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(TargetedSDKArchitecture) $(OutDir)</Command>
130+
<Command>
131+
</Command>
127132
</PostBuildEvent>
133+
<PreBuildEvent>
134+
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(Platform) $(OutDir)</Command>
135+
</PreBuildEvent>
128136
</ItemDefinitionGroup>
129137
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
130138
<ClCompile>
@@ -145,12 +153,16 @@
145153
<EnableCOMDATFolding>true</EnableCOMDATFolding>
146154
<OptimizeReferences>true</OptimizeReferences>
147155
<GenerateDebugInformation>true</GenerateDebugInformation>
148-
<AdditionalLibraryDirectories>$(ProjectDir)\lib\$(TargetedSDKArchitecture)\$(TargetedSDKConfiguration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
156+
<AdditionalLibraryDirectories>$(ProjectDir)lib\$(TargetedSDKConfiguration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
149157
<AdditionalDependencies>ClientTelemetry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
150158
</Link>
151159
<PostBuildEvent>
152-
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(TargetedSDKArchitecture) $(OutDir)</Command>
160+
<Command>
161+
</Command>
153162
</PostBuildEvent>
163+
<PreBuildEvent>
164+
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(Platform) $(OutDir)</Command>
165+
</PreBuildEvent>
154166
</ItemDefinitionGroup>
155167
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
156168
<ClCompile>
@@ -171,12 +183,16 @@
171183
<EnableCOMDATFolding>true</EnableCOMDATFolding>
172184
<OptimizeReferences>true</OptimizeReferences>
173185
<GenerateDebugInformation>true</GenerateDebugInformation>
174-
<AdditionalLibraryDirectories>$(ProjectDir)\lib\$(TargetedSDKArchitecture)\$(TargetedSDKConfiguration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
186+
<AdditionalLibraryDirectories>$(ProjectDir)lib\$(TargetedSDKConfiguration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
175187
<AdditionalDependencies>ClientTelemetry.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
176188
</Link>
177189
<PostBuildEvent>
178-
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(TargetedSDKArchitecture) $(OutDir)</Command>
190+
<Command>
191+
</Command>
179192
</PostBuildEvent>
193+
<PreBuildEvent>
194+
<Command>deploy-dll.cmd $(TargetedSDKConfiguration) $(Platform) $(OutDir)</Command>
195+
</PreBuildEvent>
180196
</ItemDefinitionGroup>
181197
<ItemGroup>
182198
<ClCompile Include="EventSender.cpp" />
@@ -216,6 +232,7 @@
216232
<ClInclude Include="include\Version.h" />
217233
<ClInclude Include="include\Version.hpp" />
218234
</ItemGroup>
235+
<!-- Import Project="$(SolutionDir)\build.props" Condition="Exists('$(SolutionDir)\build.props')" / -->
219236
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
220237
<ImportGroup Label="ExtensionTargets">
221238
</ImportGroup>
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@echo off
2+
set PROJECT_DIR=%~dp0
3+
4+
@mkdir %PROJECT_DIR%\include 2> NUL
5+
copy /Y %PROJECT_DIR%..\..\..\lib\include\public\*.* %PROJECT_DIR%\include
6+
7+
@mkdir %PROJECT_DIR%\lib\%1\%2 2> NUL
8+
copy /Y %PROJECT_DIR%..\..\..\Solutions\out\%1\%2\win32-dll\*.lib %PROJECT_DIR%\lib\%1\%2
9+
10+
@mkdir %PROJECT_DIR%\%1\%2 2> NUL
11+
copy /Y %PROJECT_DIR%..\..\..\Solutions\out\%1\%2\win32-dll\*.* %PROJECT_DIR%\lib\%1\%2
12+
copy /Y %PROJECT_DIR%..\..\..\Solutions\out\%1\%2\win32-dll\*.* %3
13+
exit /b 0
+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"cacheFileFullNotificationPercentage": 75,
3+
"cacheFilePath": "storage.db",
4+
"cacheFileSizeLimitInBytes": 3145728,
5+
"cacheMemoryFullNotificationPercentage": 75,
6+
"cacheMemorySizeLimitInBytes": 524288,
7+
"compat": {
8+
"dotType": true
9+
},
10+
"enableLifecycleSession": false,
11+
"eventCollectorUri": "https://self.events.data.microsoft.com/OneCollector/1.0/",
12+
"forcedTenantToken": null,
13+
"hostMode": true,
14+
"http": {
15+
"compress": true
16+
},
17+
"maxDBFlushQueues": 3,
18+
"maxPendingHTTPRequests": 4,
19+
"maxTeardownUploadTimeInSec": 1,
20+
"minimumTraceLevel": 4,
21+
"multiTenantEnabled": true,
22+
"primaryToken": "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322",
23+
"sample": {
24+
"rate": 0
25+
},
26+
"sdkmode": 0,
27+
"skipSqliteInitAndShutdown": null,
28+
"stats": {
29+
"interval": 0,
30+
"split": false,
31+
"tokenInt": "8130ef8ff472405d89d6f420038927ea-0c0d561e-cca5-4c81-90ed-0aa9ad786a03-7166",
32+
"tokenProd": "4bb4d6f7cafc4e9292f972dca2dcde42-bd019ee8-e59c-4b0f-a02c-84e72157a3ef-7485"
33+
},
34+
"tpm": {
35+
"backoffConfig": "E,3000,300000,2,1",
36+
"clockSkewEnabled": true,
37+
"maxBlobSize": 2097152,
38+
"maxRetryCount": 5
39+
},
40+
"traceLevelMask": 0,
41+
"utc": {
42+
"providerGroupId": "780dddc8-18a1-5781-895a-a690464fa89c"
43+
}
44+
}

examples/cpp/EventSender/utc.config

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"compat": {
3+
"dotType": true
4+
},
5+
"enableLifecycleSession": false,
6+
"minimumTraceLevel": 4,
7+
"multiTenantEnabled": true,
8+
"primaryToken": "6d084bbf6a9644ef83f40a77c9e34580-c2d379e0-4408-4325-9b4d-2a7d78131e14-7322",
9+
"sdkmode": 2,
10+
"stats": {
11+
"interval": 1800,
12+
"split": false,
13+
"tokenInt": "8130ef8ff472405d89d6f420038927ea-0c0d561e-cca5-4c81-90ed-0aa9ad786a03-7166",
14+
"tokenProd": "4bb4d6f7cafc4e9292f972dca2dcde42-bd019ee8-e59c-4b0f-a02c-84e72157a3ef-7485"
15+
},
16+
"traceLevelMask": 0,
17+
"utc": {
18+
"providerGroupId": "780dddc8-18a1-5781-895a-a690464fa89c"
19+
}
20+
}

examples/cpp/SampleCpp/main.cpp

+56-1
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,50 @@ void logPiiEvent()
201201
logger->LogEvent(detailed_event);
202202
}
203203

204+
void logPiiMark()
205+
{
206+
auto logger = LogManager::GetLogger();
207+
208+
// Log event with Pii properties with no Pii mark
209+
EventProperties event1("MyEvent.Pii",
210+
{
211+
#ifdef _MSC_VER
212+
// Log compiler version
213+
{ "_MSC_VER", _MSC_VER },
214+
#endif
215+
// Pii-typed fields
216+
{ "piiKind.None", EventProperty("field_value", PiiKind_None) },
217+
{ "piiKind.DistinguishedName", EventProperty("/CN=Jack Frost,OU=PIE,DC=REDMOND,DC=COM", PiiKind_DistinguishedName) },
218+
{ "piiKind.GenericData", EventProperty("generic_data", PiiKind_GenericData) },
219+
{ "piiKind.IPv4Address", EventProperty("127.0.0.1", PiiKind_IPv4Address) },
220+
{ "piiKind.IPv6Address", EventProperty("2001:0db8:85a3:0000:0000:8a2e:0370:7334", PiiKind_IPv6Address) },
221+
{ "piiKind.MailSubject", EventProperty("RE: test", PiiKind_MailSubject) },
222+
{ "piiKind.PhoneNumber", EventProperty("+1-425-829-5875", PiiKind_PhoneNumber) },
223+
{ "piiKind.QueryString", EventProperty("a=1&b=2&c=3", PiiKind_QueryString) },
224+
{ "piiKind.SipAddress", EventProperty("sip:[email protected]", PiiKind_SipAddress) },
225+
{ "piiKind.SmtpAddress", EventProperty("Jack Frost <[email protected]>", PiiKind_SmtpAddress) },
226+
{ "piiKind.Identity", EventProperty("Jack Frost", PiiKind_Identity) },
227+
{ "piiKind.Uri", EventProperty("http://www.microsoft.com", PiiKind_Uri) },
228+
{ "piiKind.Fqdn", EventProperty("www.microsoft.com", PiiKind_Fqdn) },
229+
// Various typed key-values
230+
{ "strKey1", "hello1" },
231+
{ "strKey2", "hello2" },
232+
{ "int64Key", (int64_t)1L },
233+
{ "dblKey", 3.14 },
234+
{ "boolKey", false },
235+
{ "guidKey0", GUID_t("00000000-0000-0000-0000-000000000000") },
236+
{ "guidKey1", GUID_t("00010203-0405-0607-0809-0A0B0C0D0E0F") },
237+
{ "guidKey2", GUID_t("00010203-0405-0607-0809-0A0B0C0D0E0F") },
238+
{ "timeKey1", time_ticks_t((uint64_t)0) }, // time in .NET ticks
239+
});
240+
logger->LogEvent(event1);
241+
242+
// Log event with Pii properties AND Pii mark flag at event level
243+
event1.SetName("MyEvent.Pii.PiiMarked");
244+
event1.SetPolicyBitFlags(MICROSOFT_EVENTTAG_MARK_PII);
245+
logger->LogEvent(event1);
246+
}
247+
204248
int main()
205249
{
206250
#ifdef OFFICE_TEST /* Custom test for a stats crash scenario experienced by OTEL */
@@ -259,8 +303,19 @@ int main()
259303
for (auto evt : eventsList)
260304
LogManager::AddEventListener(evt, listener);
261305

262-
printf("LogManager::Initialize\n");
306+
#ifdef _WIN32
307+
printf("LogManager::Initialize in UTC\n");
308+
config[CFG_INT_SDK_MODE] = SdkModeTypes::SdkModeTypes_UTCCommonSchema;
263309
ILogger *logger = LogManager::Initialize(TOKEN);
310+
logPiiMark(); // UTC upload
311+
LogManager::FlushAndTeardown();
312+
#endif
313+
314+
printf("LogManager::Initialize in direct\n");
315+
config[CFG_INT_SDK_MODE] = SdkModeTypes::SdkModeTypes_CS;
316+
logger = LogManager::Initialize(TOKEN);
317+
318+
logPiiMark(); // Direct upload
264319

265320
// This global context variable will not be seen by C API client
266321
LogManager::SetContext("GlobalContext.Var", 12345);

lib/decorators/EventPropertiesDecorator.hpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ namespace ARIASDK_NS_BEGIN {
4949

5050
record.popSample = eventProperties.GetPopSample();
5151

52-
int64_t flags = 0;
52+
int64_t flags = eventProperties.GetPolicyBitFlags();
53+
// Pack flags the same way as Win 10 UTC is doing this
54+
flags = (flags & 0xffff) | ((flags & 0xffffffffffff0000) >> 8);
55+
5356
if (EventPersistence_Critical == eventProperties.GetPersistence())
5457
{
5558
flags = flags | 0x02;

lib/include/public/EventProperties.hpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,9 @@ namespace ARIASDK_NS_BEGIN
131131
EventPriority GetPriority() const;
132132

133133
/// <summary>
134-
/// [optional] Sets the policy bit flags for UTC (Universal Telemetry Client) usage of an event.
135-
/// <b>Note:</b> If you don't specify a value, then the default value is used.
134+
/// [optional] Sets the transmit Latency of the event.
136135
/// </summary>
137-
/// <param name="policyBitFlags">The policy bit flags.</param>
136+
/// <param name="latency">Event latency.</param>
138137
void SetLatency(EventLatency latency);
139138

140139
/// <summary>

lib/include/public/ILogConfiguration.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,17 @@ namespace ARIASDK_NS_BEGIN
9292
/// <summary>
9393
/// Parameter that allows to check if the SDK is running on UTC mode
9494
/// </summary>
95-
static constexpr const char* const CFG_BOOL_UTC_ENABLED = "UTC_enabled";
95+
static constexpr const char* const CFG_BOOL_UTC_ENABLED = "enabled";
9696

9797
/// <summary>
9898
/// Parameter that allows to check if the SDK is running on UTC mode
9999
/// </summary>
100-
static constexpr const char* const CFG_BOOL_UTC_ACTIVE = "UTC_active";
100+
static constexpr const char* const CFG_BOOL_UTC_ACTIVE = "active";
101101

102102
/// <summary>
103103
/// Parameter that allows to check if the Windows 10 version SDK is using supports large payloads on UTC
104104
/// </summary>
105-
static constexpr const char* const CFG_BOOL_UTC_LARGE_PAYLOADS = "UTC_largePayloadsEnabled";
105+
static constexpr const char* const CFG_BOOL_UTC_LARGE_PAYLOADS = "largePayloadsEnabled";
106106

107107
/// <summary>
108108
/// The event collection URI.

0 commit comments

Comments
 (0)