diff --git a/.github/workflows/azure-deploy.yml b/.github/workflows/azure-deploy.yml index 4b6c645f..40a6f365 100644 --- a/.github/workflows/azure-deploy.yml +++ b/.github/workflows/azure-deploy.yml @@ -40,6 +40,15 @@ jobs: postgresPassword=${{ secrets.POSTGRES_PASSWORD }} postgresPort=${{ secrets.POSTGRES_PORT }} postgresUser=${{ secrets.POSTGRES_USER }} + nodeEnv=production + nuxtOrigin=${{ secrets.NUXT_ORIGIN }} + nuxtSessionPassword=${{ secrets.NUXT_SESSION_PASSWORD }} + nuxtAuthClientId=${{ secrets.NUXT_AUTH_CLIENT_ID }} + nuxtAuthClientSecret=${{ secrets.NUXT_AUTH_CLIENT_SECRET }} + nuxtAuthTenantName=${{ secrets.NUXT_AUTH_TENANT_NAME }} + nuxtAuthTenantId=${{ secrets.NUXT_AUTH_TENANT_ID }} + nuxtAuthAuthorityDomain=${{ secrets.NUXT_AUTH_AUTHORITY_DOMAIN }} + nuxtAuthPrimaryUserFlow=${{ secrets.NUXT_AUTH_PRIMARY_USER_FLOW }} slackAdminMemberId=${{ secrets.SLACK_ADMIN_MEMBER_ID }} slackBotToken=${{ secrets.SLACK_BOT_TOKEN }} slackSigningSecret=${{ secrets.SLACK_SIGNING_SECRET }} @@ -131,6 +140,15 @@ jobs: postgresPassword=${{ secrets.POSTGRES_PASSWORD }} postgresPort=${{ secrets.POSTGRES_PORT }} postgresUser=${{ secrets.POSTGRES_USER }} + nodeEnv=production + nuxtOrigin=${{ secrets.NUXT_ORIGIN }} + nuxtSessionPassword=${{ secrets.NUXT_SESSION_PASSWORD }} + nuxtAuthClientId=${{ secrets.NUXT_AUTH_CLIENT_ID }} + nuxtAuthClientSecret=${{ secrets.NUXT_AUTH_CLIENT_SECRET }} + nuxtAuthTenantName=${{ secrets.NUXT_AUTH_TENANT_NAME }} + nuxtAuthTenantId=${{ secrets.NUXT_AUTH_TENANT_ID }} + nuxtAuthAuthorityDomain=${{ secrets.NUXT_AUTH_AUTHORITY_DOMAIN }} + nuxtAuthPrimaryUserFlow=${{ secrets.NUXT_AUTH_PRIMARY_USER_FLOW }} slackAdminMemberId=${{ secrets.SLACK_ADMIN_MEMBER_ID }} slackBotToken=${{ secrets.SLACK_BOT_TOKEN }} slackSigningSecret=${{ secrets.SLACK_SIGNING_SECRET }} diff --git a/azure/bicep/main.bicep b/azure/bicep/main.bicep index cd95b5ac..29cc550e 100644 --- a/azure/bicep/main.bicep +++ b/azure/bicep/main.bicep @@ -22,6 +22,24 @@ param postgresPort string @secure() param postgresUser string @secure() +param nodeEnv string +@secure() +param nuxtOrigin string +@secure() +param nuxtSessionPassword string +@secure() +param nuxtAuthClientId string +@secure() +param nuxtAuthClientSecret string +@secure() +param nuxtAuthTenantName string +@secure() +param nuxtAuthTenantId string +@secure() +param nuxtAuthAuthorityDomain string +@secure() +param nuxtAuthPrimaryUserFlow string +@secure() param slackAdminMemberId string @secure() param slackBotToken string @@ -63,6 +81,15 @@ module appService './modules/appService.bicep' = { postgresPassword: postgresPassword postgresPort: postgresPort postgresUser: postgresUser + nodeEnv: nodeEnv + nuxtOrigin: nuxtOrigin + nuxtSessionPassword: nuxtSessionPassword + nuxtAuthClientId: nuxtAuthClientId + nuxtAuthClientSecret: nuxtAuthClientSecret + nuxtAuthTenantName: nuxtAuthTenantName + nuxtAuthTenantId: nuxtAuthTenantId + nuxtAuthAuthorityDomain: nuxtAuthAuthorityDomain + nuxtAuthPrimaryUserFlow: nuxtAuthPrimaryUserFlow slackAdminMemberId: slackAdminMemberId slackBotToken: slackBotToken slackSigningSecret: slackSigningSecret diff --git a/azure/bicep/modules/appService.bicep b/azure/bicep/modules/appService.bicep index b76e68dd..ade366ba 100644 --- a/azure/bicep/modules/appService.bicep +++ b/azure/bicep/modules/appService.bicep @@ -18,6 +18,24 @@ param postgresPort string @secure() param postgresUser string @secure() +param nodeEnv string +@secure() +param nuxtOrigin string +@secure() +param nuxtSessionPassword string +@secure() +param nuxtAuthClientId string +@secure() +param nuxtAuthClientSecret string +@secure() +param nuxtAuthTenantName string +@secure() +param nuxtAuthTenantId string +@secure() +param nuxtAuthAuthorityDomain string +@secure() +param nuxtAuthPrimaryUserFlow string +@secure() param slackAdminMemberId string @secure() param slackBotToken string @@ -114,6 +132,42 @@ resource appService 'Microsoft.Web/sites@2023-12-01' = { name: 'POSTGRES_USER' value: postgresUser } + { + name: 'NODE_ENV' + value: nodeEnv + } + { + name: 'NUXT_ORIGIN' + value: nuxtOrigin + } + { + name: 'NUXT_SESSION_PASSWORD' + value: nuxtSessionPassword + } + { + name: 'NUXT_AUTH_CLIENT_ID' + value: nuxtAuthClientId + } + { + name: 'NUXT_AUTH_CLIENT_SECRET' + value: nuxtAuthClientSecret + } + { + name: 'NUXT_AUTH_TENANT_NAME' + value: nuxtAuthTenantName + } + { + name: 'NUXT_AUTH_TENANT_ID' + value: nuxtAuthTenantId + } + { + name: 'NUXT_AUTH_AUTHORITY_DOMAIN' + value: nuxtAuthAuthorityDomain + } + { + name: 'NUXT_AUTH_PRIMARY_USER_FLOW' + value: nuxtAuthPrimaryUserFlow + } { name: 'SLACK_ADMIN_MEMBER_ID' value: slackAdminMemberId diff --git a/package-lock.json b/package-lock.json index e96fc385..49d3008f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@final-hill/cathedral", - "version": "0.12.0", + "version": "0.12.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@final-hill/cathedral", - "version": "0.12.0", + "version": "0.12.1", "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { diff --git a/package.json b/package.json index e4439ebd..94c178a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@final-hill/cathedral", - "version": "0.12.0", + "version": "0.12.1", "description": "Requirements management system", "keywords": [], "private": true, diff --git a/server/api/slack-bot/index.post.ts b/server/api/slack-bot/index.post.ts index 02834673..0bcd4cab 100644 --- a/server/api/slack-bot/index.post.ts +++ b/server/api/slack-bot/index.post.ts @@ -115,12 +115,15 @@ export default defineEventHandler(async (event) => { message: 'Slack bot token not found' }) - if (!body.success) - throw createError({ - statusCode: 400, - statusMessage: 'Bad Request: Invalid body parameters', - message: JSON.stringify(body.error.errors) - }) + console.log('SLACKBOT API BODY:', JSON.stringify(body.data)) + /* + if (!body.success) + throw createError({ + statusCode: 400, + statusMessage: 'Bad Request: Invalid body parameters', + message: JSON.stringify(body.error.errors) + }) + */ if (!isValidSlackRequest(headers, rawBody)) throw createError({ @@ -129,15 +132,15 @@ export default defineEventHandler(async (event) => { message: 'Invalid Slack request signature' }) - const requestType = body.data.type + const requestType = body.data!.type switch (requestType) { case 'url_verification': - return { challenge: body.data.challenge }; + return { challenge: body.data!.challenge }; case 'event_callback': - const eventType = body.data.event!.type + const eventType = body.data!.event!.type if (eventType === 'app_mention') - return await sendResponse(body.data.event!) + return await sendResponse(body.data!.event!) throw createError({ statusCode: 400,