diff --git a/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfig.Codeunit.al b/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfig.Codeunit.al
index f615c9bbcd..a2a4440147 100644
--- a/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfig.Codeunit.al
+++ b/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfig.Codeunit.al
@@ -190,4 +190,24 @@ codeunit 8350 "MCP Config"
begin
MCPConfigImplementation.AllowBoundActions(ToolSystemId, Allow);
end;
+
+ ///
+ /// Creates a new MCP Entra Application with the specified name, description, and client ID.
+ ///
+ /// The friendly name for the Entra application registration.
+ /// The description for the Entra application registration.
+ /// The Entra application (client) ID.
+ procedure CreateEntraApplication(Name: Text[100]; Description: Text[250]; ClientId: Guid)
+ begin
+ MCPConfigImplementation.CreateEntraApplication(Name, Description, ClientId);
+ end;
+
+ ///
+ /// Deletes the specified MCP Entra Application.
+ ///
+ /// The SystemId (GUID) of the Entra application to delete.
+ procedure DeleteEntraApplication(EntraApplicationId: Guid)
+ begin
+ MCPConfigImplementation.DeleteEntraApplication(EntraApplicationId);
+ end;
}
\ No newline at end of file
diff --git a/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfigImplementation.Codeunit.al b/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfigImplementation.Codeunit.al
index c132d50bae..d696bbdd88 100644
--- a/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfigImplementation.Codeunit.al
+++ b/src/System Application/App/MCP/src/Configuration/Codeunits/MCPConfigImplementation.Codeunit.al
@@ -583,20 +583,38 @@ codeunit 8351 "MCP Config Implementation"
var
JsonBuilder: TextBuilder;
begin
- JsonBuilder.AppendLine('{');
- JsonBuilder.AppendLine(' "' + MCPPrefix + '": {');
- JsonBuilder.AppendLine(' "url": "' + MCPUrl + '",');
- JsonBuilder.AppendLine(' "type": "http",');
- JsonBuilder.AppendLine(' "headers": {');
- JsonBuilder.AppendLine(' "TenantId": "' + TenantId + '",');
- JsonBuilder.AppendLine(' "EnvironmentName": "' + EnvironmentName + '",');
- JsonBuilder.AppendLine(' "Company": "' + Company + '",');
- JsonBuilder.AppendLine(' "ConfigurationName": "' + ConfigurationName + '"');
- JsonBuilder.AppendLine(' }');
+ JsonBuilder.AppendLine('"' + MCPPrefix + '": {');
+ JsonBuilder.AppendLine(' "url": "' + MCPUrl + '",');
+ JsonBuilder.AppendLine(' "type": "http",');
+ JsonBuilder.AppendLine(' "headers": {');
+ JsonBuilder.AppendLine(' "TenantId": "' + TenantId + '",');
+ JsonBuilder.AppendLine(' "EnvironmentName": "' + EnvironmentName + '",');
+ JsonBuilder.AppendLine(' "Company": "' + Company + '",');
+ JsonBuilder.AppendLine(' "ConfigurationName": "' + ConfigurationName + '"');
JsonBuilder.AppendLine(' }');
JsonBuilder.AppendLine('}');
exit(JsonBuilder.ToText());
end;
+
+ internal procedure CreateEntraApplication(Name: Text[100]; Description: Text[250]; ClientId: Guid)
+ var
+ MCPEntraApplication: Record "MCP Entra Application";
+ begin
+ MCPEntraApplication.Name := Name;
+ MCPEntraApplication.Description := Description;
+ MCPEntraApplication."Client ID" := ClientId;
+ MCPEntraApplication.Insert();
+ end;
+
+ internal procedure DeleteEntraApplication(EntraApplicationId: Guid)
+ var
+ MCPEntraApplication: Record "MCP Entra Application";
+ begin
+ if not MCPEntraApplication.GetBySystemId(EntraApplicationId) then
+ exit;
+
+ MCPEntraApplication.Delete();
+ end;
#endregion
#if not CLEAN28
@@ -611,6 +629,7 @@ codeunit 8351 "MCP Config Implementation"
local procedure GetDimensions(MCPConfiguration: Record "MCP Configuration") Dimensions: Dictionary of [Text, Text]
begin
+ Dimensions.Add('Category', GetTelemetryCategory());
Dimensions.Add('MCPConfigurationName', MCPConfiguration.Name);
Dimensions.Add('Active', Format(MCPConfiguration.Active));
Dimensions.Add('UnblockEditTools', Format(MCPConfiguration.AllowProdChanges));
@@ -633,6 +652,7 @@ codeunit 8351 "MCP Config Implementation"
var
Dimensions: Dictionary of [Text, Text];
begin
+ Dimensions.Add('Category', GetTelemetryCategory());
Dimensions.Add('MCPConfigurationName', MCPConfiguration.Name);
if MCPConfiguration.Active <> xMCPConfiguration.Active then begin
Dimensions.Add('OldActive', Format(xMCPConfiguration.Active));
diff --git a/src/System Application/App/Permissions/SystemApplicationAdmin.PermissionSet.al b/src/System Application/App/Permissions/SystemApplicationAdmin.PermissionSet.al
index ad66c4bcad..32e8a6c7dc 100644
--- a/src/System Application/App/Permissions/SystemApplicationAdmin.PermissionSet.al
+++ b/src/System Application/App/Permissions/SystemApplicationAdmin.PermissionSet.al
@@ -12,6 +12,7 @@ using System.Environment.Configuration;
using System.ExternalFileStorage;
using System.Integration;
using System.Integration.Excel;
+using System.MCP;
using System.Privacy;
using System.SFTPClient;
@@ -31,6 +32,7 @@ permissionset 154 "System Application - Admin"
"Edit in Excel-Admin",
"Feature Key - Admin",
"File Storage - Admin",
+ "MCP - Admin",
"Permissions & Licenses - Edit",
"Priv. Notice - Admin",
"Retention Policy - Admin",