Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- service: stingrayai
- custom:
- allVpcSettings:
- dev:
- vpc:
- securityGroupIds: []
- subnetIds: []
- prod:
- vpc:
- securityGroupIds:
- - ${ssm:/stingrayai/${opt:stage, 'dev'}/SECURITY_GROUP_IDS~true}
- subnetIds:
- "Fn::Split":
- - ","
- - ${ssm:/stingrayai/${opt:stage, 'dev'}/SUBNET_IDS~true}
- provider:
- name: aws
- runtime: nodejs10.x
- memorySize: 128
- timeout: 30
- stage: ${opt:stage, 'dev'}
- region: us-east-1
- vpc: ${self:custom.allVpcSettings.${self:provider.stage}.vpc}
- environment:
- DB: ${ssm:/stingrayai/${self:provider.stage}/DB~true}
- JWT_SECRET: ${ssm:/stingrayai/${self:provider.stage}/JWT_SECRET~true}
- API_ARN: ${ssm:/stingrayai/${self:provider.stage}/API_ARN~true}
- SENDGRID_API_KEY: ${ssm:/stingrayai/${self:provider.stage}/SENDGRID_API_KEY~true}
- EMAIL_FROM: ${ssm:/stingrayai/${self:provider.stage}/EMAIL_FROM~true}
- FRONTEND_DOMAIN: ${ssm:/stingrayai/${self:provider.stage}/FRONTEND_DOMAIN~true}
- STAGE: ${self:provider.stage}
- iamRoleStatements:
- - Effect: 'Allow'
- Action:
- - s3:PutObject
- - s3:PutObjectAcl
- Resource:
- - 'arn:aws:s3:::stingrayai-${self:provider.stage}-avatars/*.jpg'
- - 'arn:aws:s3:::stingrayai-${self:provider.stage}-avatars/*.jpeg'
- - 'arn:aws:s3:::stingrayai-${self:provider.stage}-avatars/*.png'
- - Effect: 'Allow'
- Action:
- - s3:PutBucketCORS
- - s3:PutBucketPublicAccessBlock
- - s3:CreateBucket
- - s3:ListBucket
- Resource:
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*'
- - Effect: 'Allow'
- Action:
- - s3:DeleteObject
- - s3:putObject
- Resource:
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*/*.doc'
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*/*.docx'
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*/*.pdf'
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*/*.txt'
- - 'arn:aws:s3:::stingray-client-${self:provider.stage}-*/*.csv'
- functions:
- verify-token:
- handler: auth/VerifyToken.auth
- login:
- handler: auth/AuthHandler.login
- events:
- - http:
- path: login
- method: post
- cors: true
- # verification:
- # handler: auth/AuthHandler.verification
- # events:
- # - http:
- # path: verification
- # method: post
- # cors: true
- # register:
- # handler: auth/AuthHandler.register
- # events:
- # - http:
- # path: register
- # method: post
- # cors: true
- # forgotPassword:
- # handler: auth/AuthHandler.forgotPassword
- # events:
- # - http:
- # path: forgotPassword
- # method: post
- # cors: true
- # resetPassword:
- # handler: auth/AuthHandler.resetPassword
- # events:
- # - http:
- # path: resetPassword
- # method: post
- # cors: true
- groups:
- handler: controllers/GroupsHandler.main
- events:
- - http:
- path: groups
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: groups/{id}
- method: any
- cors: true
- authorizer: verify-token
- company:
- handler: controllers/CompanyHandler.main
- events:
- - http:
- path: company
- method: any
- cors: true
- authorizer: verify-token
- licence:
- handler: controllers/LicenceHandler.main
- events:
- - http:
- path: licence
- method: any
- cors: true
- authorizer: verify-token
- user:
- handler: controllers/UserHandler.main
- events:
- - http:
- path: user
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: user/{id}
- method: any
- cors: true
- authorizer: verify-token
- resetUserPassword:
- handler: controllers/UserHandler.resetUserPassword
- events:
- - http:
- path: user/resetUserPassword/{id}
- method: get
- cors: true
- authorizer: verify-token
- me:
- handler: controllers/UserHandler.me
- events:
- - http:
- path: user/me
- method: any
- cors: true
- authorizer: verify-token
- # resetMyPassword:
- # handler: controllers/UserHandler.resetMyPassword
- # events:
- # - http:
- # path: user/me/resetMyPassword
- # method: post
- # cors: true
- # authorizer: verify-token
- # uploadAvatar:
- # handler: controllers/UserHandler.uploadAvatar
- # events:
- # - http:
- # path: user/me/uploadAvatar
- # method: post
- # cors: true
- # authorizer: verify-token
- project:
- handler: controllers/ProjectsHandler.main
- events:
- - http:
- path: project
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: project/{project_id}
- method: any
- cors: true
- authorizer: verify-token
- extraction_job_project:
- handler: controllers/ExtractionJobHandler.getByProjectId
- events:
- - http:
- path: project/{project_id}/extraction
- method: get
- cors: true
- authorizer: verify-token
- extraction_job:
- handler: controllers/ExtractionJobHandler.main
- events:
- - http:
- path: extraction
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: extraction/{id}
- method: any
- cors: true
- authorizer: verify-token
- batch:
- handler: controllers/BatchesHandler.main
- events:
- - http:
- path: batches/{project_id}/batch
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: batches/{project_id}/batch/{id}
- method: any
- cors: true
- authorizer: verify-token
- folder:
- handler: controllers/FoldersHandler.main
- events:
- - http:
- path: folder
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: folder/{folder_id}
- method: any
- cors: true
- authorizer: verify-token
- file:
- handler: controllers/FilesHandler.main
- events:
- - http:
- path: files/{folder_id}/file
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: files/{folder_id}/file/{id}
- method: any
- cors: true
- authorizer: verify-token
- filePresignedUrl:
- handler: controllers/FilesHandler.getPresignedUrl
- events:
- - http:
- path: files/{folder_id}/getPresignedUrl
- method: post
- cors: true
- authorizer: verify-token
- role:
- handler: controllers/RolesHandler.main
- events:
- - http:
- path: roles
- method: any
- cors: true
- authorizer: verify-token
- - http:
- path: roles/{id}
- method: any
- cors: true
- authorizer: verify-token
- config:
- handler: controllers/ConfigHandler.main
- events:
- - http:
- path: config
- method: any
- cors: true
- authorizer: verify-token
- subdomain:
- handler: controllers/SubdomainHandler.main
- events:
- - http:
- path: subdomain
- method: get
- cors: true
- plugins:
- - serverless-offline
- # - serverless-apigw-binary
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement