Skip to content

Commit

Permalink
Added Purview telemetry using the DotNet wrappers for 24.x
Browse files Browse the repository at this point in the history
  • Loading branch information
attilatoury committed Sep 19, 2024
1 parent 8640257 commit 09411c5
Show file tree
Hide file tree
Showing 15 changed files with 127 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
// ------------------------------------------------------------------------------------------------
namespace System.AI;

using System;

/// <summary>
/// Page for listing the Copilot Capabilities which are Generally Available.
/// </summary>
Expand Down Expand Up @@ -88,12 +90,16 @@ page 7774 "Copilot Capabilities GA"
Scope = Repeater;

trigger OnAction()
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 94 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 95 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 96 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALAuditCategory' is missing
begin
Rec.Status := Rec.Status::Active;
Rec.Modify(true);

CopilotCapabilityImpl.SendActivateTelemetry(Rec.Capability, Rec."App Id");
Session.LogAuditMessage(StrSubstNo(CopilotFeatureActivatedLbl, Rec.Capability, Rec."App Id", UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 4, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(CopilotFeatureActivatedLbl, Rec.Capability, Rec."App Id", UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 4, 0);
end;
}
action(Deactivate)
Expand All @@ -108,14 +114,17 @@ page 7774 "Copilot Capabilities GA"
trigger OnAction()
var
CopilotDeactivate: Page "Copilot Deactivate Capability";
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 117 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 118 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 119 in src/System Application/App/AI/src/Copilot/CopilotCapabilitiesGA.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALAuditCategory' is missing
begin
CopilotDeactivate.SetCaption(Format(Rec.Capability));
if CopilotDeactivate.RunModal() = Action::OK then begin
Rec.Status := Rec.Status::Inactive;
Rec.Modify(true);

CopilotCapabilityImpl.SendDeactivateTelemetry(Rec.Capability, Rec."App Id", CopilotDeactivate.GetReason());
Session.LogAuditMessage(StrSubstNo(CopilotFeatureDeactivatedLbl, Rec.Capability, Rec."App Id", UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 4, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(CopilotFeatureDeactivatedLbl, Rec.Capability, Rec."App Id", UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 4, 0);
end;
end;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

namespace System.Azure.Identity;

using System;

table 9017 "Plan Configuration"
{
Access = Internal;
Expand Down Expand Up @@ -55,18 +57,30 @@ table 9017 "Plan Configuration"
}
}
trigger OnDelete()
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 61 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 62 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 63 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALAuditCategory' is missing
begin
Session.LogAuditMessage(StrSubstNo(PlanConfigurationDeletedLbl, Rec.Id, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::EntitlementManagement, 2, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(PlanConfigurationDeletedLbl, Rec.Id, UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::EntitlementManagement, 2, 0);
end;

trigger OnInsert()
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 70 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 71 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 72 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALAuditCategory' is missing
begin
Session.LogAuditMessage(StrSubstNo(PlanConfigurationCreatedLbl, Rec.Id, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::EntitlementManagement, 2, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(PlanConfigurationCreatedLbl, Rec.Id, UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::EntitlementManagement, 2, 0);
end;

trigger OnModify()
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 79 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 80 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 81 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfiguration.Table.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'ALAuditCategory' is missing
begin
Session.LogAuditMessage(StrSubstNo(PlanConfigurationModifiedLbl, Rec.Id, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::EntitlementManagement, 2, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(PlanConfigurationModifiedLbl, Rec.Id, UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::EntitlementManagement, 2, 0);
end;

var
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

namespace System.Azure.Identity;

using System;
using System.Environment;

/// <summary>
Expand Down Expand Up @@ -49,9 +50,13 @@ page 9069 "Plan Configuration Card"
ToolTip = 'Specifies whether the default permissions are customized.';

trigger OnValidate()
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 54 in src/System Application/App/Azure AD Plan/src/Plan Configuration/PlanConfigurationCard.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Translated) / System Application (Translated)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;
MyALAuditCategory: DotNet ALAuditCategory;
begin
if Rec.Customized then
Session.LogAuditMessage(StrSubstNo(PlanConfigurationCustomizedLbl, Rec.Id, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 2, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(PlanConfigurationCustomizedLbl, Rec.Id, UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 2, 0);

end;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

namespace System.Azure.Identity;

using System;
using System.Utilities;
using System.Environment.Configuration;
using System.Security.User;
Expand Down Expand Up @@ -288,6 +289,9 @@ page 9515 "Azure AD User Update Wizard"
var
AzureADUserSyncImpl: Codeunit "Azure AD User Sync Impl.";
GuidedExperience: Codeunit "Guided Experience";
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;

Check failure on line 292 in src/System Application/App/Azure AD User Management/src/User sync/AzureADUserUpdateWizard.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'CustomerAuditLoggerALHelper' is missing
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;

Check failure on line 293 in src/System Application/App/Azure AD User Management/src/User sync/AzureADUserUpdateWizard.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALSecurityOperationResult' is missing
MyALAuditCategory: DotNet ALAuditCategory;

Check failure on line 294 in src/System Application/App/Azure AD User Management/src/User sync/AzureADUserUpdateWizard.Page.al

View workflow job for this annotation

GitHub Actions / Build System Application (Clean) / System Application (Clean)

AL0185 DotNet 'ALAuditCategory' is missing
SuccessCount: Integer;
UpdateUsersfromMicrosoft365RunLbl: Label 'Update users from Microsoft 365 wizard has been run by the UserSecurityId %1.', Locked = true;
begin
Expand All @@ -297,7 +301,7 @@ page 9515 "Azure AD User Update Wizard"
Rec.DeleteAll();

GuidedExperience.CompleteAssistedSetup(ObjectType::Page, Page::"Azure AD User Update Wizard");
Session.LogAuditMessage(StrSubstNo(UpdateUsersfromMicrosoft365RunLbl, UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 2, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(UpdateUsersfromMicrosoft365RunLbl, UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 2, 0);

MakeAllGroupsInvisible();
FinishedVisible := true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

namespace System.Privacy;

using System;
using System.Reflection;

codeunit 1753 "Data Classification Mgt. Impl."
Expand Down Expand Up @@ -40,6 +41,9 @@ codeunit 1753 "Data Classification Mgt. Impl."
procedure InsertDataSensitivityForField(TableNo: Integer; FieldNo: Integer; DataSensitivityOption: Option)
var
DataSensitivity: Record "Data Sensitivity";
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;
MyALAuditCategory: DotNet ALAuditCategory;
begin
if IsSupportedTable(TableNo) then begin
DataSensitivity.Init();
Expand All @@ -48,13 +52,16 @@ codeunit 1753 "Data Classification Mgt. Impl."
DataSensitivity."Field No" := FieldNo;
DataSensitivity."Data Sensitivity" := DataSensitivityOption;
DataSensitivity.Insert();
Session.LogAuditMessage(StrSubstNo(DataSensitivitySetLbl, DataSensitivity."Data Sensitivity", DataSensitivity."Company Name",
DataSensitivity."Table No", DataSensitivity."Field No", UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 3, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(DataSensitivitySetLbl, DataSensitivity."Data Sensitivity", DataSensitivity."Company Name",
DataSensitivity."Table No", DataSensitivity."Field No", UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 3, 0);
end;
end;

procedure SetSensitivities(var DataSensitivity: Record "Data Sensitivity"; Sensitivity: Option)
var
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;
MyALAuditCategory: DotNet ALAuditCategory;
Now: DateTime;
begin
// MODIFYALL does not result in a bulk query for this table,looping through the records performs faster
Expand All @@ -66,8 +73,8 @@ codeunit 1753 "Data Classification Mgt. Impl."
DataSensitivity."Last Modified By" := UserSecurityId();
DataSensitivity."Last Modified" := Now;
DataSensitivity.Modify();
Session.LogAuditMessage(StrSubstNo(DataSensitivitySetLbl, DataSensitivity."Data Sensitivity", DataSensitivity."Company Name",
DataSensitivity."Table No", DataSensitivity."Field No", UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 3, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(DataSensitivitySetLbl, DataSensitivity."Data Sensitivity", DataSensitivity."Company Name",
DataSensitivity."Table No", DataSensitivity."Field No", UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 3, 0);
until DataSensitivity.Next() = 0;
end;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

namespace System.Environment.Configuration;

using System;
using System.DateTime;
using System.Utilities;
using System.Environment;
Expand Down Expand Up @@ -84,6 +85,9 @@ codeunit 2610 "Feature Management Impl."
local procedure InitializeFeatureDataUpdateStatus(FeatureKey: Record "Feature Key"; var FeatureDataUpdateStatus: Record "Feature Data Update Status"; AllowInsert: Boolean)
var
FeatureManagementFacade: Codeunit "Feature Management Facade";
MyCustomerAuditLoggerALHelper: DotNet CustomerAuditLoggerALHelper;
MyALSecurityOperationResult: DotNet ALSecurityOperationResult;
MyALAuditCategory: DotNet ALAuditCategory;
InitializeHandled: Boolean;
FeatureKeyStatusChangedLbl: Label 'The status of the feature key %1 has been set to %2 by UserSecurityId %3.', Locked = true;
begin
Expand All @@ -109,7 +113,7 @@ codeunit 2610 "Feature Management Impl."
// so the following insert will fail if the record does exist.
if AllowInsert then
if FeatureDataUpdateStatus.Insert() then
Session.LogAuditMessage(StrSubstNo(FeatureKeyStatusChangedLbl, FeatureDataUpdateStatus."Feature Key", FeatureDataUpdateStatus."Feature Status", UserSecurityId()), SecurityOperationResult::Success, AuditCategory::ApplicationManagement, 4, 0);
MyCustomerAuditLoggerALHelper.LogAuditMessage(StrSubstNo(FeatureKeyStatusChangedLbl, FeatureDataUpdateStatus."Feature Key", FeatureDataUpdateStatus."Feature Status", UserSecurityId()), MyALSecurityOperationResult::Success, MyALAuditCategory::ApplicationManagement, 4, 0);
end;

/// <summary>
Expand Down
Loading

0 comments on commit 09411c5

Please sign in to comment.