mirror of
https://github.com/Sea-Haven-Industries/procurement-ingest.git
synced 2026-09-30 09:33:15 +00:00
Tables were created in seahaven-prod after hcptf-procurement-ingest lacked CreateTable on kebab ARNs; import blocks bring work-orders and work-order-comments under Terraform ownership.
612 lines
13 KiB
HCL
612 lines
13 KiB
HCL
# Import map: docs/plat-86/import-map.md (seahaven-prod, 2026-08-06).
|
|
# IAM roles are NOT imported — new /tf-managed/ roles replace CDK roles on cutover.
|
|
|
|
# --- DynamoDB ---
|
|
import {
|
|
to = aws_dynamodb_table.purchase_orders
|
|
id = "purchase-orders"
|
|
}
|
|
|
|
import {
|
|
to = aws_dynamodb_table.verified_sites
|
|
id = "verified-sites"
|
|
}
|
|
|
|
import {
|
|
to = aws_dynamodb_table.pending_site_review
|
|
id = "pending-site-review"
|
|
}
|
|
|
|
import {
|
|
to = aws_dynamodb_table.work_orders
|
|
id = "WorkOrders"
|
|
}
|
|
|
|
import {
|
|
to = aws_dynamodb_table.work_order_comments
|
|
id = "WorkOrderComments"
|
|
}
|
|
|
|
# PLAT-11 kebab tables — created out-of-band then imported after HCP CreateTable
|
|
# IAM pin widened (hcptf-procurement-ingest lacked kebab ARNs on first apply).
|
|
import {
|
|
to = aws_dynamodb_table.work_orders_kebab
|
|
id = "work-orders"
|
|
}
|
|
|
|
import {
|
|
to = aws_dynamodb_table.work_order_comments_kebab
|
|
id = "work-order-comments"
|
|
}
|
|
|
|
# --- S3 email buckets ---
|
|
import {
|
|
to = aws_s3_bucket.po_emails
|
|
id = "po-ingest-emails-011934824531"
|
|
}
|
|
|
|
import {
|
|
to = aws_s3_bucket.wo_emails
|
|
id = "workorder-ingest-emails-011934824531"
|
|
}
|
|
|
|
# --- SQS ---
|
|
import {
|
|
to = aws_sqs_queue.po_email_processor_dlq
|
|
id = "https://sqs.us-east-1.amazonaws.com/011934824531/po-ingest-EmailProcessorDlqA753DED5-Mn33HvhsDPEu"
|
|
}
|
|
|
|
import {
|
|
to = aws_sqs_queue.wo_email_processor_dlq
|
|
id = "https://sqs.us-east-1.amazonaws.com/011934824531/WorkorderIngestStack-EmailProcessorDlqA753DED5-qCTHrsoEucas"
|
|
}
|
|
|
|
import {
|
|
to = aws_sqs_queue.shoc_emitter_failures
|
|
id = "https://sqs.us-east-1.amazonaws.com/011934824531/workorder-shoc-emitter-failures"
|
|
}
|
|
|
|
import {
|
|
to = aws_sqs_queue.shoc_emitter_rejected
|
|
id = "https://sqs.us-east-1.amazonaws.com/011934824531/workorder-shoc-emitter-rejected"
|
|
}
|
|
|
|
# --- Lambdas ---
|
|
import {
|
|
to = aws_lambda_function.po_email_processor
|
|
id = "po-email-processor"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.po_web_ui
|
|
id = "po-web-ui"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.po_site_extractor
|
|
id = "po-ingest-site-extractor"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.wo_email_processor
|
|
id = "workorder-email-processor"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.wo_web_ui
|
|
id = "workorder-web-ui"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.wo_shoc_emitter
|
|
id = "workorder-shoc-emitter"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.wo_shoc_hmac_rotator
|
|
id = "workorder-shoc-hmac-rotator"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_function.procurement_api
|
|
id = "procurement-api"
|
|
}
|
|
|
|
# --- Event source mappings ---
|
|
import {
|
|
to = aws_lambda_event_source_mapping.po_site_extractor
|
|
id = "64fbee1f-d9c3-4cfd-aced-19b9d29940f8"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_event_source_mapping.wo_shoc_emitter_work_orders
|
|
id = "cc149f4d-5375-4820-8fb8-c514accd3a85"
|
|
}
|
|
|
|
import {
|
|
to = aws_lambda_event_source_mapping.wo_shoc_emitter_comments
|
|
id = "da37d4a0-3086-4929-9ace-6eca5c20cd07"
|
|
}
|
|
|
|
# --- Log groups ---
|
|
import {
|
|
to = aws_cloudwatch_log_group.po_email_processor
|
|
id = "/aws/lambda/po-email-processor"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.po_web_ui
|
|
id = "/aws/lambda/po-web-ui"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.po_site_extractor
|
|
id = "/aws/lambda/po-ingest-site-extractor"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.wo_email_processor
|
|
id = "/aws/lambda/workorder-email-processor"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.wo_web_ui
|
|
id = "/aws/lambda/workorder-web-ui"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.wo_shoc_emitter
|
|
id = "/aws/lambda/workorder-shoc-emitter"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.wo_shoc_hmac_rotator
|
|
id = "/aws/lambda/workorder-shoc-hmac-rotator"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_group.procurement_api
|
|
id = "/aws/lambda/procurement-api"
|
|
}
|
|
|
|
# --- SES receipt rules ---
|
|
import {
|
|
to = aws_ses_receipt_rule.po_email
|
|
id = "INBOUND_MAIL:ExistingRuleSetPoEmailRuleAC8E9C87-qwGDj9lBoL1G"
|
|
}
|
|
|
|
import {
|
|
to = aws_ses_receipt_rule.wo_email
|
|
id = "INBOUND_MAIL:ExistingRuleSetWorkorderEmailRuleEA29F845-PKtaDBvIg61a"
|
|
}
|
|
|
|
# --- SHOC KMS + secret ---
|
|
import {
|
|
to = aws_kms_key.shoc_webhook
|
|
id = "d10fd1f0-a61a-4405-8568-85e9fd11ba18"
|
|
}
|
|
|
|
import {
|
|
to = aws_kms_alias.shoc_webhook
|
|
id = "alias/workorder-ingest-shoc-webhook-kms"
|
|
}
|
|
|
|
import {
|
|
to = aws_secretsmanager_secret.shoc_webhook_hmac
|
|
id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB"
|
|
}
|
|
|
|
import {
|
|
to = aws_secretsmanager_secret_policy.shoc_webhook_hmac
|
|
id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB"
|
|
}
|
|
|
|
import {
|
|
to = aws_secretsmanager_secret_rotation.shoc_webhook_hmac
|
|
id = "arn:aws:secretsmanager:us-east-1:011934824531:secret:workorder-ingest/shoc-webhook-hmac-puYTcB"
|
|
}
|
|
|
|
# --- Metric filters ---
|
|
import {
|
|
to = aws_cloudwatch_log_metric_filter.po_sender_auth_rejected
|
|
id = "/aws/lambda/po-email-processor:EmailProcessorSenderAuthRejectedFilterC0DAEDFE-3K6wBb003iDv"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_log_metric_filter.wo_sender_auth_rejected
|
|
id = "/aws/lambda/workorder-email-processor:EmailProcessorSenderAuthRejectedFilterC0DAEDFE-Wkbow1VNDeDM"
|
|
}
|
|
|
|
# --- API Gateway ---
|
|
import {
|
|
to = aws_api_gateway_rest_api.procurement
|
|
id = "mvul1efda2"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_domain_name.procurement
|
|
id = "procurement-api.seahaven.com"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_stage.prod
|
|
id = "mvul1efda2/prod"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_base_path_mapping.procurement
|
|
id = "procurement-api.seahaven.com/"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_deployment.procurement
|
|
id = "mvul1efda2/uax9sq"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.work_orders
|
|
id = "mvul1efda2/h5iu4f"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.work_order_id
|
|
id = "mvul1efda2/4uk6uh"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.work_order_comments
|
|
id = "mvul1efda2/gfx0te"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.purchase_orders
|
|
id = "mvul1efda2/pfn6qm"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.po_number
|
|
id = "mvul1efda2/nclnn3"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.verified_sites
|
|
id = "mvul1efda2/vyst7e"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.site_code
|
|
id = "mvul1efda2/rmaawy"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.docs
|
|
id = "mvul1efda2/k4vl85"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_resource.openapi_json
|
|
id = "mvul1efda2/xos715"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["work_orders_get"]
|
|
id = "mvul1efda2/h5iu4f/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["work_order_id_get"]
|
|
id = "mvul1efda2/4uk6uh/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["work_order_id_patch"]
|
|
id = "mvul1efda2/4uk6uh/PATCH"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["work_order_comments_get"]
|
|
id = "mvul1efda2/gfx0te/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["work_order_comments_post"]
|
|
id = "mvul1efda2/gfx0te/POST"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["purchase_orders_get"]
|
|
id = "mvul1efda2/pfn6qm/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["po_number_get"]
|
|
id = "mvul1efda2/nclnn3/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["verified_sites_get"]
|
|
id = "mvul1efda2/vyst7e/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.iam["site_code_get"]
|
|
id = "mvul1efda2/rmaawy/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.none["docs_get"]
|
|
id = "mvul1efda2/k4vl85/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_method.none["openapi_json_get"]
|
|
id = "mvul1efda2/xos715/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["work_orders_get"]
|
|
id = "mvul1efda2/h5iu4f/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["work_order_id_get"]
|
|
id = "mvul1efda2/4uk6uh/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["work_order_id_patch"]
|
|
id = "mvul1efda2/4uk6uh/PATCH"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["work_order_comments_get"]
|
|
id = "mvul1efda2/gfx0te/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["work_order_comments_post"]
|
|
id = "mvul1efda2/gfx0te/POST"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["purchase_orders_get"]
|
|
id = "mvul1efda2/pfn6qm/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["po_number_get"]
|
|
id = "mvul1efda2/nclnn3/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["verified_sites_get"]
|
|
id = "mvul1efda2/vyst7e/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.iam["site_code_get"]
|
|
id = "mvul1efda2/rmaawy/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.none["docs_get"]
|
|
id = "mvul1efda2/k4vl85/GET"
|
|
}
|
|
|
|
import {
|
|
to = aws_api_gateway_integration.none["openapi_json_get"]
|
|
id = "mvul1efda2/xos715/GET"
|
|
}
|
|
|
|
# --- CloudWatch alarms (PO) ---
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_errors
|
|
id = "po-email-processor-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_throttles
|
|
id = "po-email-processor-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_dlq
|
|
id = "po-email-processor-dlq-messages"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_duration
|
|
id = "po-email-processor-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_sender_auth_rejected
|
|
id = "po-email-processor-sender-auth-rejected"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_fallback_rate
|
|
id = "po-email-processor-template-fallback-rate"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_email_processor_ai_fallback_rejected
|
|
id = "po-email-processor-ai-fallback-rejected"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_web_ui_throttles
|
|
id = "po-web-ui-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_web_ui_duration
|
|
id = "po-web-ui-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_site_extractor_errors
|
|
id = "po-ingest-site-extractor-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_site_extractor_throttles
|
|
id = "po-ingest-site-extractor-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_site_extractor_duration
|
|
id = "po-ingest-site-extractor-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_throttles["purchase-orders"]
|
|
id = "purchase-orders-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["purchase-orders"]
|
|
id = "purchase-orders-system-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_throttles["verified-sites"]
|
|
id = "verified-sites-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["verified-sites"]
|
|
id = "verified-sites-system-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_throttles["pending-site-review"]
|
|
id = "pending-site-review-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.po_ddb_system_errors["pending-site-review"]
|
|
id = "pending-site-review-system-errors"
|
|
}
|
|
|
|
# --- CloudWatch alarms (WO) ---
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_errors
|
|
id = "workorder-email-processor-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_throttles
|
|
id = "workorder-email-processor-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_dlq
|
|
id = "workorder-email-processor-dlq-messages"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_duration
|
|
id = "workorder-email-processor-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_sender_auth_rejected
|
|
id = "workorder-email-processor-sender-auth-rejected"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_fallback_rate
|
|
id = "workorder-email-processor-template-fallback-rate"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_email_processor_ai_fallback_rejected
|
|
id = "workorder-email-processor-ai-fallback-rejected"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_errors
|
|
id = "workorder-shoc-hmac-rotator-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_throttles
|
|
id = "workorder-shoc-hmac-rotator-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_hmac_rotator_duration
|
|
id = "workorder-shoc-hmac-rotator-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_errors
|
|
id = "workorder-shoc-emitter-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_throttles
|
|
id = "workorder-shoc-emitter-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_duration
|
|
id = "workorder-shoc-emitter-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_iterator_age
|
|
id = "workorder-shoc-emitter-iterator-age"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_failures_messages
|
|
id = "workorder-shoc-emitter-failures-messages"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_shoc_emitter_rejected_messages
|
|
id = "workorder-shoc-emitter-rejected-messages"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_ddb_throttles["WorkOrders"]
|
|
id = "WorkOrders-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_ddb_system_errors["WorkOrders"]
|
|
id = "WorkOrders-system-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_ddb_throttles["WorkOrderComments"]
|
|
id = "WorkOrderComments-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.wo_ddb_system_errors["WorkOrderComments"]
|
|
id = "WorkOrderComments-system-errors"
|
|
}
|
|
|
|
# --- CloudWatch alarms (API) ---
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.procurement_api_errors
|
|
id = "procurement-api-errors"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.procurement_api_throttles
|
|
id = "procurement-api-throttles"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.procurement_api_duration
|
|
id = "procurement-api-duration"
|
|
}
|
|
|
|
import {
|
|
to = aws_cloudwatch_metric_alarm.procurement_api_5xx
|
|
id = "procurement-api-5xx"
|
|
}
|