This repository has been archived on 2025-12-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tasker/tasker-server/serverless.yml

172 lines
4.3 KiB
YAML

service: tasker-server
plugins:
- serverless-prune-plugin
provider:
stackName: ${self:service}
name: aws
region: "eu-north-1"
runtime: nodejs20.x
environment:
SLS_REGION: ${self:provider.region}
TASKER_TASK_TABLE_NAME: ${ssm:/tasker/dynamodb/project-table-name}
TASKER_PROJECT_TABLE_NAME: ${ssm:/tasker/dynamodb/task-table-name}
TASKER_USER_TABLE_NAME: ${ssm:/tasker/dynamodb/user-table-name}
TASKER_TASK_EXTRA_TABLE_NAME: ${ssm:/tasker/dynamodb/task-extra-table-name}
TASKER_TEAM_TABLE_NAME: ${ssm:/tasker/dynamodb/team-table-name}
layers:
- ${ssm:/tasker/layers/tasker-layer-arn}
iam:
role:
statements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
Resource:
[
"arn:aws:dynamodb:${self:provider.region}:*:table/tasker-*",
"arn:aws:dynamodb:${self:provider.region}:*:table/tasker-*/*",
]
functions:
postSignUp:
handler: src/handlers/postSignUp.handler
memorySize: 1024
timeout: 60
events:
- cognitoUserPool:
pool: ${ssm:/tasker/cognito/user-pool-id}
trigger: PostConfirmation
# POST /users
createUser:
handler: src/handlers/createUser.handler
memorySize: 1024
timeout: 60
events:
- http:
path: users
method: post
cors: true
# POST /projects
createProject:
handler: src/handlers/createProject.handler
memorySize: 1024
timeout: 60
events:
- http:
path: projects
method: post
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# POST /tasks
createTask:
handler: src/handlers/createTask.handler
memorySize: 1024
timeout: 60
events:
- http:
path: tasks
method: post
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /projects
getProjects:
handler: src/handlers/getProjects.handler
memorySize: 1024
timeout: 60
events:
- http:
path: projects
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /tasks?projectId=
getTasks:
handler: src/handlers/getTasks.handler
memorySize: 1024
timeout: 60
events:
- http:
path: tasks
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /teams
getTeams:
handler: src/handlers/getTeams.handler
memorySize: 1024
timeout: 60
events:
- http:
path: teams
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /users
getUsers:
handler: src/handlers/getUsers.handler
memorySize: 1024
timeout: 60
events:
- http:
path: users
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /users/{cognitoId}
getUser:
handler: src/handlers/getUser.handler
memorySize: 1024
timeout: 60
events:
- http:
path: users/{cognitoId}
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# GET /tasks/user/${userId}
getTasksByUser:
handler: src/handlers/getTasksByUser.handler
memorySize: 1024
timeout: 60
events:
- http:
path: tasks/user/{userId}
method: get
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}
# PATCH /tasks/{taskId}/status
updateTaskStatus:
handler: src/handlers/updateTaskStatus.handler
memorySize: 1024
timeout: 60
events:
- http:
path: tasks/{taskId}/status
method: patch
cors: true
authorizer:
type: COGNITO_USER_POOLS
arn: ${ssm:/tasker/cognito/user-pool-arn}