Merge branch 'main' into deploy-fastapi-with-terraform

This commit is contained in:
Daniel Roth 2026-03-10 11:09:01 +00:00
commit 6632e6fcdc
5 changed files with 35 additions and 17 deletions

View file

@ -60,6 +60,8 @@ on:
required: false required: false
TF_VAR_google_solar_api_key: TF_VAR_google_solar_api_key:
required: false required: false
TF_VAR_ordnance_survey_api_key:
required: false
jobs: jobs:
deploy: deploy:
@ -117,6 +119,7 @@ jobs:
TF_VAR_domain_name: ${{ secrets.TF_VAR_domain_name }} TF_VAR_domain_name: ${{ secrets.TF_VAR_domain_name }}
TF_VAR_epc_auth_token: ${{ secrets.TF_VAR_epc_auth_token }} TF_VAR_epc_auth_token: ${{ secrets.TF_VAR_epc_auth_token }}
TF_VAR_google_solar_api_key: ${{ secrets.TF_VAR_google_solar_api_key }} TF_VAR_google_solar_api_key: ${{ secrets.TF_VAR_google_solar_api_key }}
TF_VAR_ordnance_survey_api_key: ${{ secrets.TF_VAR_ordnance_survey_api_key}}
run: | run: |
EXTRA_VARS="" EXTRA_VARS=""
if [[ -n "${{ inputs.ecr_repo }}" ]]; then if [[ -n "${{ inputs.ecr_repo }}" ]]; then
@ -146,6 +149,7 @@ jobs:
TF_VAR_domain_name: ${{ secrets.TF_VAR_domain_name }} TF_VAR_domain_name: ${{ secrets.TF_VAR_domain_name }}
TF_VAR_epc_auth_token: ${{ secrets.TF_VAR_epc_auth_token }} TF_VAR_epc_auth_token: ${{ secrets.TF_VAR_epc_auth_token }}
TF_VAR_google_solar_api_key: ${{ secrets.TF_VAR_google_solar_api_key }} TF_VAR_google_solar_api_key: ${{ secrets.TF_VAR_google_solar_api_key }}
TF_VAR_ordnance_survey_api_key: ${{ secrets.TF_VAR_ordnance_survey_api_key}}
run: | run: |
EXTRA_VARS="" EXTRA_VARS=""
if [[ -n "${{ inputs.ecr_repo }}" ]]; then if [[ -n "${{ inputs.ecr_repo }}" ]]; then

View file

@ -314,9 +314,11 @@ jobs:
lambda_name: ordnanceSurvey lambda_name: ordnanceSurvey
lambda_path: infrastructure/terraform/lambda/ordnanceSurvey lambda_path: infrastructure/terraform/lambda/ordnanceSurvey
stage: ${{ needs.determine_stage.outputs.stage }} stage: ${{ needs.determine_stage.outputs.stage }}
ecr_repo: postcode_splitter-${{ needs.determine_stage.outputs.stage }} ecr_repo: ordnance-${{ needs.determine_stage.outputs.stage }}
image_digest: ${{ needs.ordnanceSurvey_image.outputs.image_digest }} image_digest: ${{ needs.ordnanceSurvey_image.outputs.image_digest }}
terraform_apply: ${{ needs.determine_stage.outputs.terraform_apply }}
secrets: secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }} AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.DEV_AWS_REGION }} AWS_REGION: ${{ secrets.DEV_AWS_REGION }}
TF_VAR_ORDNANCE_SURVEY_API_KEY: ${{ secrets.ORDNANCE_SURVEY_API_KEY }}

View file

@ -1,20 +1,26 @@
We have list of address as input. So you want to fetch UPRN for an address list?
It'll come in batches of the same post code and from then we want to somehow convert that into UPRN
if this lambda/function can do that we'll be speeding ahead
Energy Performance Information: https://epc.opendatacommunities.org/ Before you run:
guidance page: https://epc.opendatacommunities.org/docs/guidance#field_domestic_LMK_KEY Step 1) Get the list and ensure the following columns exists
Example of past khalims code that he wrote some tests for: https://github.com/Hestia-Homes/Model/blob/941be42b83a590e838fd3ee475bfd1ff31438789/backend/tests/test_search_epc.py#L11 * Address 1
* Address 2
* Address 3
* postcode
And save it as a .csv file
Example of EPC search: https://github.com/Hestia-Homes/Model/blob/941be42b83a590e838fd3ee475bfd1ff31438789/backend/SearchEpc.py#L118 Step 2)
Before we run this, we need to upload it into S3 as well as put initiate a subtask + task
* S3 upload I'll recommend somewhere in retrofit-data-dev and get the s3_uri
For this example I'll be using "s3://retrofit-data-dev/ara_raw_inputs/calico/formated(Sheet1).csv"
Go to Ara DB and make a new task_id with a randomly generated uuid as the primarily key
Khalim has made a python package to help scrape data: https://github.com/KhalimCK/epc-api-python

View file

@ -14,9 +14,9 @@ locals {
} }
module "ordnance" { module "ordnance" {
source = "../modules/lambda_with_sqs" source = "../../modules/lambda_with_sqs"
name = ordnanceSurvey #"address2uprn" for example name = "ordnanceSurvey" #"address2uprn" for example
stage = var.stage stage = var.stage
image_uri = local.image_uri image_uri = local.image_uri
@ -33,7 +33,7 @@ module "ordnance" {
DB_USERNAME = local.db_credentials.db_assessment_model_username DB_USERNAME = local.db_credentials.db_assessment_model_username
DB_PASSWORD = local.db_credentials.db_assessment_model_password DB_PASSWORD = local.db_credentials.db_assessment_model_password
S3_BUCKET_NAME = data.terraform_remote_state.shared.outputs.retrofit_sap_data_bucket_name S3_BUCKET_NAME = data.terraform_remote_state.shared.outputs.retrofit_sap_data_bucket_name
ORDNANCE_SURVEY_API_KEY:= "Reminder to add This somehow, ask if we are doing aws secret method or github secret method" ORDNANCE_SURVEY_API_KEY = var.ordnance_survey_api_key
}, },
) )
} }
@ -42,4 +42,4 @@ module "ordnance" {
resource "aws_iam_role_policy_attachment" "ordanceSurvey_read_and_write" { resource "aws_iam_role_policy_attachment" "ordanceSurvey_read_and_write" {
role = module.ordnance.role_name role = module.ordnance.role_name
policy_arn = data.terraform_remote_state.shared.outputs.ordnance_s3_read_and_write_arn policy_arn = data.terraform_remote_state.shared.outputs.ordnance_s3_read_and_write_arn
} }

View file

@ -28,6 +28,12 @@ variable "batch_size" {
default = 1 default = 1
} }
variable "ordnance_survey_api_key" {
type = string
sensitive = true
}
locals { locals {
image_uri = "${var.ecr_repo_url}@${var.image_digest}" image_uri = "${var.ecr_repo_url}@${var.image_digest}"
} }