mirror of
https://github.com/Sea-Haven-Industries/afterhours-shift-manager.git
synced 2026-09-30 21:53:11 +00:00
* feat(infra): export vpc_id and public subnet outputs (DEV-289) Portal Fargate and meals already attach to this VPC. These outputs are the HCP existing_vpc_id / existing_public_subnet_ids values. Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com> * feat(api): add OpenAPI 3.1 and Redocly lint in CI (DEV-289) Same extends: recommended ruleset and @redocly/cli 2.52.1 as internal-portal. Covers health, roster, and portal /api/shifts. Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com> * fix(api): document 4xx and treat 302 as success in Redocly (DEV-289) Health and CORS preflight document 400. Recommended only counted 2XX, so login-style 302s use a shared 2XX-or-3XX rule. Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com> * fix(api): fail Redocly on missing 4xx and 2xx/3xx (DEV-289) Promote operation-4xx-response and the 2xx-or-3xx success rule to error. Drop unused 400s on health and CORS OPTIONS. Health documents 403 like the portal. CORS stays in Flask and is not part of the employee contract. Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>
69 lines
2.2 KiB
HCL
69 lines
2.2 KiB
HCL
output "slack_request_url" {
|
|
description = "Slack app Request URL (slash command and interactivity)."
|
|
value = "${local.api_url}/slack/events"
|
|
}
|
|
|
|
output "api_origin" {
|
|
description = "HTTP origin for Paychex AFTERHOURS_BASE_URL and portal VITE_SHIFTS_API_BASE. No /roster suffix."
|
|
value = local.api_url
|
|
}
|
|
|
|
output "shift_table_name" {
|
|
description = "DynamoDB table name."
|
|
value = aws_dynamodb_table.shifts.name
|
|
}
|
|
|
|
output "holiday_scheduler_role_arn" {
|
|
description = "Role EventBridge Scheduler assumes to enqueue holiday jobs."
|
|
value = aws_iam_role.holiday_scheduler.arn
|
|
}
|
|
|
|
output "github_deploy_role_arn" {
|
|
description = "OIDC role ARN for deploy-api.yaml (GitHub Environment variable DEPLOY_ROLE_ARN)."
|
|
value = aws_iam_role.github_deploy.arn
|
|
}
|
|
|
|
output "artifacts_bucket_name" {
|
|
description = "Leftover Lambda artifacts bucket from dual-run zip CD."
|
|
value = aws_s3_bucket.artifacts.id
|
|
}
|
|
|
|
output "alb_dns_name" {
|
|
description = "ALB DNS name. Public DNS for afterhours.seahaven.com is out of band."
|
|
value = aws_lb.api.dns_name
|
|
}
|
|
|
|
output "fargate_origin" {
|
|
description = "Fargate origin for Slack/Paychex/portal cutover. HTTPS after attach_custom_domain."
|
|
value = local.api_url
|
|
}
|
|
|
|
output "jobs_queue_arn" {
|
|
description = "SQS ARN EventBridge Scheduler holiday one-offs target after cutover."
|
|
value = aws_sqs_queue.jobs.arn
|
|
}
|
|
|
|
output "ecs_task_role_arn" {
|
|
description = "ECS task role. Paychex already allows this ARN."
|
|
value = aws_iam_role.ecs_task.arn
|
|
}
|
|
|
|
output "hcptf_apply_role_arn" {
|
|
description = "HCP apply role ARN. Set TFC_AWS_APPLY_ROLE_ARN after the bootstrap window."
|
|
value = aws_iam_role.hcptf_apply.arn
|
|
}
|
|
|
|
output "hcptf_plan_role_arn" {
|
|
description = "HCP plan role ARN. Set TFC_AWS_PLAN_ROLE_ARN after the bootstrap window."
|
|
value = aws_iam_role.hcptf_plan.arn
|
|
}
|
|
|
|
output "vpc_id" {
|
|
description = "VPC that meals already attaches to. Portal Fargate prod sets existing_vpc_id to this value."
|
|
value = aws_vpc.this.id
|
|
}
|
|
|
|
output "public_subnet_ids" {
|
|
description = "Public subnet IDs for ALB and Fargate. Portal HCP existing_public_subnet_ids."
|
|
value = aws_subnet.public[*].id
|
|
}
|