Skip to content

Commit 8f1202e

Browse files
committed
5.0.0 release
1 parent ca4b3ab commit 8f1202e

File tree

194 files changed

+3509
-3844
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+3509
-3844
lines changed

.devcontainer/devcontainer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"ghcr.io/devcontainers/features/git-lfs:1": {},
1212
"ghcr.io/devcontainers/features/node:1": {
13-
"version": "22.21.1"
13+
"version": "22.22.0"
1414
},
1515
"ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": {}
1616
},
@@ -22,8 +22,10 @@
2222
"customizations": {
2323
"vscode": {
2424
"extensions": [
25+
"dbaeumer.vscode-eslint",
2526
"editorconfig.editorconfig",
2627
"github.vscode-github-actions",
28+
"ms-azuretools.vscode-azurefunctions",
2729
"ms-azuretools.vscode-bicep",
2830
"ms-dotnettools.csdevkit",
2931
"redhat.vscode-yaml",

.github/actions/build-manifest/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ runs:
1111
$content = Get-Content -Path ${{env.FILE_PATH}}
1212
$content = $content -Replace "{{APP_VERSION}}", "${{env.BUILD_VERSION}}"
1313
$content = $content -Replace '{{AZURE_WEB_APP_DOMAIN_NAME}}', '${{env.AZURE_WEB_APP_DOMAIN_NAME}}'
14-
$content = $content -Replace '{{MICROSOFT_APP_ID}}', '${{env.MICROSOFT_APP_ID}}'
15-
$content = $content -Replace '{{MICROSOFT_BOT_ID}}', '${{env.MICROSOFT_BOT_ID}}'
14+
$content = $content -Replace '{{MICROSOFT_TEAMS_APP_ID}}', '${{env.MICROSOFT_TEAMS_APP_ID}}'
15+
$content = $content -Replace '{{MICROSOFT_365_AGENT_ID}}', '${{env.MICROSOFT_365_AGENT_ID}}'
1616
Out-File -FilePath ${{env.FILE_PATH}} -InputObject $content -Encoding UTF8
1717
env:
1818
FILE_PATH: manifest/manifest.json

.github/actions/build-source/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ runs:
1717
shell: pwsh
1818
run: |
1919
$content = Get-Content -Path ${{env.FILE_PATH}}
20-
$content = $content -Replace "{{MICROSOFT_APP_ID}}", "${{env.MICROSOFT_APP_ID}}"
20+
$content = $content -Replace "{{MICROSOFT_365_AGENT_ID}}", "${{env.MICROSOFT_365_AGENT_ID}}"
2121
Out-File -FilePath ${{env.FILE_PATH}} -InputObject $content -Encoding UTF8
2222
env:
2323
FILE_PATH: source/client/public/.well-known/microsoft-identity-association.json

.github/workflows/trigger-on-main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
env:
3232
AZURE_FUNCTION_APP_DOMAIN_NAME: ${{vars.AZURE_FUNCTION_APP_DOMAIN_NAME}}
3333
BUILD_VERSION: ${{vars.BUILD_VERSION}}
34-
MICROSOFT_APP_ID: ${{vars.MICROSOFT_APP_ID}}
34+
MICROSOFT_365_AGENT_ID: ${{vars.MICROSOFT_365_AGENT_ID}}
3535
TELEMETRY_CONNECTION_STRING: ${{vars.TELEMETRY_CONNECTION_STRING}}
3636
deploy-to-azure:
3737
name: Deploy to Azure
@@ -57,5 +57,5 @@ jobs:
5757
env:
5858
AZURE_WEB_APP_DOMAIN_NAME: ${{vars.AZURE_WEB_APP_DOMAIN_NAME}}
5959
BUILD_VERSION: ${{vars.BUILD_VERSION}}
60-
MICROSOFT_APP_ID: ${{vars.MICROSOFT_APP_ID}}
61-
MICROSOFT_BOT_ID: ${{vars.MICROSOFT_BOT_ID}}
60+
MICROSOFT_TEAMS_APP_ID: ${{vars.MICROSOFT_TEAMS_APP_ID}}
61+
MICROSOFT_365_AGENT_ID: ${{vars.MICROSOFT_365_AGENT_ID}}

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022-2025 karamem0
3+
Copyright (c) 2022-2026 karamem0
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

bicep/main.bicep

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,30 @@ param name string
44
@description('The display name for the Bot Service.')
55
param displayName string = name
66

7-
@description('The Microsoft App ID for Teams SSO.')
8-
param microsoftAppId string
7+
@description('The Microsoft 365 Agent ID for Teams SSO.')
8+
param microsoft365AgentId string
99

10-
@description('The Microsoft App Password for Teams SSO.')
10+
@description('The Microsoft 365 Agent Password for Teams SSO.')
1111
@secure()
12-
param microsoftAppPassword string
12+
param microsoft365AgentPassword string
1313

14-
@description('The Microsoft App Tenant ID for Teams SSO.')
15-
param microsoftAppTenantId string
14+
@description('The Microsoft 365 Agent Tenant ID for Teams SSO.')
15+
param microsoft365AgentTenantId string
16+
17+
module logAnalyticsWorkspace './modules/log-analytics-workspace.bicep' = {
18+
name: '${name}-log-analytics-workspace'
19+
params: {
20+
name: 'log-${name}'
21+
}
22+
}
23+
24+
module appInsights './modules/app-insights.bicep' = {
25+
name: '${name}-app-insights'
26+
params: {
27+
name: 'appi-${name}'
28+
logAnalyticsWorkspaceId: logAnalyticsWorkspace.outputs.logAnalyticsWorkspaceId
29+
}
30+
}
1631

1732
module userAssignedIdentity './modules/user-assigned-identity.bicep' = {
1833
name: '${name}-user-assigned-identity'
@@ -50,15 +65,16 @@ module webApp './modules/web-app.bicep' = {
5065
params: {
5166
name: 'app-${name}'
5267
appServicePlanResourceId: appServicePlan.outputs.appServicePlanResourceId
68+
appInsightsConnectionString: appInsights.outputs.applicationInsightsConnectionString
5369
userAssignedIdentityResourceId: userAssignedIdentity.outputs.userAssignedIdentityResourceId
5470
userAssignedIdentityClientId: userAssignedIdentity.outputs.userAssignedIdentityClientId
5571
openAIServiceEndpoint: openAIService.outputs.openAIServiceEndpoint
5672
openAIServiceDeploymentName: openAIService.outputs.openAIServiceDeploymentName
5773
storageBlobsContainerName: storageAccount.outputs.storageBlobsContainerName
5874
storageBlobsEndpoint: storageAccount.outputs.storageBlobsEndpoint
59-
microsoftAppId: microsoftAppId
60-
microsoftAppPassword: microsoftAppPassword
61-
microsoftAppTenantId: microsoftAppTenantId
75+
microsoft365AgentId: microsoft365AgentId
76+
microsoft365AgentPassword: microsoft365AgentPassword
77+
microsoft365AgentTenantId: microsoft365AgentTenantId
6278
}
6379
}
6480

@@ -67,14 +83,15 @@ module functionApp './modules/function-app.bicep' = {
6783
params: {
6884
name: 'func-${name}'
6985
appServicePlanResourceId: appServicePlan.outputs.appServicePlanResourceId
86+
appInsightsConnectionString: appInsights.outputs.applicationInsightsConnectionString
7087
userAssignedIdentityResourceId: userAssignedIdentity.outputs.userAssignedIdentityResourceId
7188
userAssignedIdentityClientId: userAssignedIdentity.outputs.userAssignedIdentityClientId
7289
storageAccountName: storageAccount.outputs.storageAccountName
7390
storageBlobsContainerName: storageAccount.outputs.storageBlobsContainerName
7491
storageBlobsEndpoint: storageAccount.outputs.storageBlobsEndpoint
75-
microsoftAppId: microsoftAppId
76-
microsoftAppPassword: microsoftAppPassword
77-
microsoftAppTenantId: microsoftAppTenantId
92+
microsoft365AgentId: microsoft365AgentId
93+
microsoft365AgentPassword: microsoft365AgentPassword
94+
microsoft365AgentTenantId: microsoft365AgentTenantId
7895
}
7996
}
8097

@@ -84,7 +101,7 @@ module botService './modules/bot-service.bicep' = {
84101
name: 'bot-${name}'
85102
displayName: displayName
86103
endpoint: 'https://${webApp.outputs.webAppHostName}/api/messages'
87-
msaAppId: microsoftAppId
88-
msaAppTenantId: microsoftAppTenantId
104+
microsoft365AgentId: microsoft365AgentId
105+
microsoft365AgentTenantId: microsoft365AgentTenantId
89106
}
90107
}

bicep/modules/app-insights.bicep

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
@description('The name of the Application Insights.')
2+
param name string
3+
4+
@description('The location of the Application Insights.')
5+
param location string = resourceGroup().location
6+
7+
@description('The resource ID of the Log Analytics Workspace to associate with the Application Insights.')
8+
param logAnalyticsWorkspaceId string
9+
10+
resource appInsights 'microsoft.insights/components@2020-02-02' = {
11+
name: name
12+
location: location
13+
kind: 'web'
14+
properties: {
15+
Application_Type: 'web'
16+
WorkspaceResourceId: logAnalyticsWorkspaceId
17+
IngestionMode: 'LogAnalytics'
18+
}
19+
}
20+
21+
@description('The connection string of the App Service Plan.')
22+
output applicationInsightsConnectionString string = appInsights.properties.ConnectionString

bicep/modules/bot-service.bicep

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ param endpoint string
1616
@description('The type of Microsoft App used for the bot authentication.')
1717
param msaAppType string = 'SingleTenant'
1818

19-
@description('The Microsoft App ID or User Assigned Managed Identity for the bot authentication.')
20-
param msaAppId string
19+
@description('The Microsoft 365 Agent ID or User Assigned Managed Identity for the bot authentication.')
20+
param microsoft365AgentId string
2121

22-
@description('The Microsoft App Tenant ID for the bot authentication.')
23-
param msaAppTenantId string = tenant().tenantId
22+
@description('The Microsoft 365 Agent Tenant ID for the bot authentication.')
23+
param microsoft365AgentTenantId string = tenant().tenantId
2424

2525
resource botService 'Microsoft.BotService/botServices@2022-09-15' = {
2626
name: name
@@ -33,8 +33,8 @@ resource botService 'Microsoft.BotService/botServices@2022-09-15' = {
3333
displayName: displayName
3434
endpoint: endpoint
3535
msaAppType: msaAppType
36-
msaAppId: msaAppId
37-
msaAppTenantId: msaAppTenantId
36+
msaAppId: microsoft365AgentId
37+
msaAppTenantId: microsoft365AgentTenantId
3838
}
3939
}
4040

bicep/modules/function-app.bicep

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ param location string = resourceGroup().location
77
@description('The resource ID of the App Service Plan to associate with the Function App.')
88
param appServicePlanResourceId string
99

10+
@description('The connection string of the Application Insights to associate with the Function App.')
11+
param appInsightsConnectionString string
12+
1013
@description('The resource ID of the User Assigned Identity to associate with the Function App.')
1114
param userAssignedIdentityResourceId string
1215

@@ -22,15 +25,15 @@ param storageBlobsEndpoint string
2225
@description('The container name of the Storage Blobs to associate with the Function App.')
2326
param storageBlobsContainerName string
2427

25-
@description('The Microsoft App ID for the bot authentication.')
26-
param microsoftAppId string
28+
@description('The Microsoft 365 Agent ID for the bot authentication.')
29+
param microsoft365AgentId string
2730

28-
@description('The Microsoft App Password for the bot authentication.')
31+
@description('The Microsoft 365 Agent Password for the bot authentication.')
2932
@secure()
30-
param microsoftAppPassword string
33+
param microsoft365AgentPassword string
3134

32-
@description('The Microsoft App Tenant ID for the bot authentication.')
33-
param microsoftAppTenantId string
35+
@description('The Microsoft 365 Agent Tenant ID for the bot authentication.')
36+
param microsoft365AgentTenantId string
3437

3538
resource functionApp 'Microsoft.Web/sites@2024-11-01' = {
3639
name: name
@@ -50,6 +53,10 @@ resource functionApp 'Microsoft.Web/sites@2024-11-01' = {
5053
ftpsState: 'Disabled'
5154
http20Enabled: true
5255
appSettings: [
56+
{
57+
name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
58+
value: appInsightsConnectionString
59+
}
5360
{
5461
name: 'AZURE_CLIENT_ID'
5562
value: userAssignedIdentityClientId
@@ -79,16 +86,28 @@ resource functionApp 'Microsoft.Web/sites@2024-11-01' = {
7986
value: 'managedidentity'
8087
}
8188
{
82-
name: 'BotFramework__MicrosoftAppId'
83-
value: microsoftAppId
89+
name: 'Connections__ServiceConnection__Settings__AuthType'
90+
value: 'ClientSecret'
91+
}
92+
{
93+
name: 'Connections__ServiceConnection__Settings__ClientId'
94+
value: microsoft365AgentId
95+
}
96+
{
97+
name: 'Connections__ServiceConnection__Settings__ClientSecret'
98+
value: microsoft365AgentPassword
99+
}
100+
{
101+
name: 'Connections__ServiceConnection__Settings__TenantId'
102+
value: microsoft365AgentTenantId
84103
}
85104
{
86-
name: 'BotFramework__MicrosoftAppPassword'
87-
value: microsoftAppPassword
105+
name: 'ConnectorClient__ClientId'
106+
value: microsoft365AgentId
88107
}
89108
{
90-
name: 'BotFramework__MicrosoftAppTenantId'
91-
value: microsoftAppTenantId
109+
name: 'ConnectorClient__TenantId'
110+
value: microsoft365AgentTenantId
92111
}
93112
{
94113
name: 'FUNCTIONS_EXTENSION_VERSION'
@@ -100,15 +119,15 @@ resource functionApp 'Microsoft.Web/sites@2024-11-01' = {
100119
}
101120
{
102121
name: 'MicrosoftIdentity__ClientId'
103-
value: microsoftAppId
122+
value: microsoft365AgentId
104123
}
105124
{
106125
name: 'MicrosoftIdentity__ClientSecret'
107-
value: microsoftAppPassword
126+
value: microsoft365AgentPassword
108127
}
109128
{
110129
name: 'MicrosoftIdentity__TenantId'
111-
value: microsoftAppTenantId
130+
value: microsoft365AgentTenantId
112131
}
113132
{
114133
name: 'WEBSITE_RUN_FROM_PACKAGE'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
@description('The name of the Log Analytics Workspace.')
2+
param name string
3+
4+
@description('The location of the Log Analytics Workspace.')
5+
param location string = resourceGroup().location
6+
7+
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-02-01' = {
8+
name: name
9+
location: location
10+
properties: {
11+
sku: {
12+
name: 'pergb2018'
13+
}
14+
}
15+
}
16+
17+
@description('The resource ID of the Log Analytics Workspace.')
18+
output logAnalyticsWorkspaceId string = logAnalyticsWorkspace.id

0 commit comments

Comments
 (0)