Files
MinglarBackendNestJS/serverless.yml
2025-11-14 15:03:28 +05:30

279 lines
6.9 KiB
YAML

service: minglarDev
provider:
name: aws
runtime: nodejs20.x
region: ap-south-1
versionFunctions: false
apiGateway:
binaryMediaTypes:
- "*/*"
minimumCompressionSize: 0
environment:
DATABASE_URL: ${env:DATABASE_URL}
DB_USERNAME: ${env:DB_USERNAME}
DB_PASSWORD: ${env:DB_PASSWORD}
DB_DATABASE_NAME: ${env:DB_DATABASE_NAME}
DB_HOSTNAME: ${env:DB_HOSTNAME}
DB_PORT: ${env:DB_PORT}
BY_PASS_EMAIL: ${env:BY_PASS_EMAIL}
BYPASS_OTP: ${env:BYPASS_OTP}
BREVO_EMAIL_API_KEY: ${env:BREVO_EMAIL_API_KEY}
BREVO_API_BASEURL: ${env:BREVO_API_BASEURL}
BREVO_FROM_EMAIL: ${env:BREVO_FROM_EMAIL}
BREVO_SMTP_HOST: ${env:BREVO_SMTP_HOST}
BREVO_SMTP_PORT: ${env:BREVO_SMTP_PORT}
BREVO_SMTP_USER: ${env:BREVO_SMTP_USER}
BREVO_SMTP_PASS: ${env:BREVO_SMTP_PASS}
REFRESH_TOKEN_SECRET: ${env:REFRESH_TOKEN_SECRET}
JWT_SECRET: ${env:JWT_SECRET}
SALT_ROUNDS: ${env:SALT_ROUNDS}
NODE_ENV: ${env:NODE_ENV}
S3_BUCKET_NAME: ${env:S3_BUCKET_NAME}
iam:
role:
statements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
- s3:DeleteObject
Resource: "arn:aws:s3:::${env:S3_BUCKET_NAME}/*"
# ------------------------------------------------------------
# ESBUILD
# ------------------------------------------------------------
custom:
esbuild:
bundle: true
minify: true
sourcemap: false
target: node20
platform: node
concurrency: 10
external:
- "@prisma/client"
- ".prisma"
exclude:
- "aws-sdk"
# ------------------------------------------------------------
# GLOBAL PACKAGE CONFIG (EMPTY PACKAGE STRATEGY)
# ------------------------------------------------------------
package:
individually: true
patterns:
- "!**/*" # <-- DO NOT include anything globally
# ------------------------------------------------------------
# FUNCTIONS (ONLY required files included)
# ------------------------------------------------------------
functions:
getHosts:
handler: src/modules/host/handlers/host.handler
package:
patterns:
- "src/modules/host/handlers/host.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host
method: get
verifyOtp:
handler: src/modules/host/handlers/verifyOtp.handler
package:
patterns:
- "src/modules/host/handlers/verifyOtp.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host/verify-otp
method: post
loginForHost:
handler: src/modules/host/handlers/loginForHost.handler
package:
patterns:
- "src/modules/host/handlers/loginForHost.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host/login
method: post
registrationOfHost:
handler: src/modules/host/handlers/registration.handler
package:
patterns:
- "src/modules/host/handlers/registration.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host/registration
method: post
createPasswordForHost:
handler: src/modules/host/handlers/createPassword.handler
package:
patterns:
- "src/modules/host/handlers/createPassword.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host/create-password
method: post
addPaymentDetailsForHost:
handler: src/modules/host/handlers/addPaymentDetails.handler
package:
patterns:
- "src/modules/host/handlers/addPaymentDetails.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host/add-payment-details
method: post
getHostById:
handler: src/modules/host/handlers/getbyidhandler.handler
package:
patterns:
- "src/modules/host/handlers/getbyidhandler.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /host
method: get
getStepperInfo:
handler: src/modules/common/handlers/getStepperHandler
package:
patterns:
- "src/common/utils/handlers/getStepperHandler.*"
- "src/common/utils/handlers/safeHandler.*"
- "src/common/database/**"
- "src/modules/host/services/**"
- "common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /stepper
method: get
minglarRegistration:
handler: src/modules/minglaradmin/handlers/registration.handler
package:
patterns:
- "src/modules/minglaradmin/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /minglaradmin/registration
method: post
minglarLoginForAdmin:
handler: src/modules/minglaradmin/handlers/loginForMinglar.handler
package:
patterns:
- "src/modules/minglaradmin/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /minglaradmin/login
method: post
minglarCreatePassword:
handler: src/modules/minglaradmin/handlers/createPassword.handler
package:
patterns:
- "src/modules/minglaradmin/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
events:
- httpApi:
path: /minglaradmin/create-password
method: post
addCompanyDetails:
handler: src/modules/host/handlers/addCompanyDetails.handler
package:
patterns:
- "src/modules/host/handlers/addCompanyDetails.*"
- "src/modules/host/services/**"
- "common/**"
- "src/common/**"
- "node_modules/@prisma/client/**"
- "node_modules/.prisma/**"
- "node_modules/@aws-sdk/**"
- "node_modules/@smithy/**"
events:
- httpApi:
path: /host/add-company-details
method: post