You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ See https://nhsd-confluence.digital.nhs.uk/display/APM/Glossary.
25
25
|`recordprocessor`|**Imms Batch** – Handles batch record processing. |
26
26
|`redis_sync`|**Imms Redis** – Handles sync s3 to REDIS. |
27
27
|`id_sync`|**Imms Redis** – Handles sync SQS to IEDS. |
28
-
|`id_sync`|**Imms Redis** – Not a lambda but Shared Code for lambdas |
28
+
|`shared`|**Imms Redis** – Not a lambda but Shared Code for lambdas |
29
29
---
30
30
31
31
### Pipelines
@@ -74,22 +74,22 @@ See https://nhsd-confluence.digital.nhs.uk/display/APM/Glossary.
74
74
-`pyenv` manages multiple Python versions at the system level, allowing you to install and switch between different Python versions for different projects.
75
75
-`direnv` automates the loading of environment variables and can auto-activate virtual environments (.venv) when entering a project directory, making workflows smoother.
76
76
-`.venv` (created via python -m venv or poetry) is Python’s built-in tool for isolating dependencies per project, ensuring that packages don’t interfere with global Python packages.
77
-
-`Poetry` is an all-in-one dependency and virtual environment manager that automatically creates a virtual environment (.venv), manages package installations, and locks dependencies (poetry.lock) for reproducibility, making it superior to using pip manually and it is used in all the lambda projects.
77
+
-`Poetry` is an all-in-one dependency and virtual environment manager that automatically creates a virtual environment (.venv), manages package installations, and locks dependencies (poetry.lock) for reproducibility, making it superior to using pip manually and it is used in all the lambda projects.
78
78
79
-
## Project structure
80
-
To support a modular and maintainable architecture, each Lambda function in this project is structured as a self-contained folder with its own dependencies, configuration, and environment.
79
+
## Project structure
80
+
To support a modular and maintainable architecture, each Lambda function in this project is structured as a self-contained folder with its own dependencies, configuration, and environment.
81
81
82
-
We use Poetry to manage dependencies and virtual environments, with the virtualenvs.in-project setting enabled to ensure each Lambda has an isolated `.venv` created within its folder.
82
+
We use Poetry to manage dependencies and virtual environments, with the virtualenvs.in-project setting enabled to ensure each Lambda has an isolated `.venv` created within its folder.
83
83
84
-
Additionally, direnv is used alongside `.envrc` and `.env` files to automatically activate the appropriate virtual environment and load environment-specific variables when entering a folder.
84
+
Additionally, direnv is used alongside `.envrc` and `.env` files to automatically activate the appropriate virtual environment and load environment-specific variables when entering a folder.
85
85
86
86
Each Lambda folder includes its own `.env` file for Lambda-specific settings, while the project root contains a separate `.env` and `.venv` for managing shared tooling, scripts, or infrastructure-related configurations. This setup promotes clear separation of concerns, reproducibility across environments, and simplifies local development, testing, and packaging for deployment.
87
87
88
88
## Environment setup
89
89
These dependencies are required for running and debugging the Lambda functions and end-to-end (E2E) tests.
90
90
91
-
### Install dependencies
92
-
Steps:
91
+
### Install dependencies
92
+
Steps:
93
93
1. Install [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) if running on Windows and install [Docker](https://docs.docker.com/engine/install/).
94
94
2. Install the following tools inside WSL. These will be used by the lambda and infrastructure code:
The root-level virtual environment is primarily used for linting, as we create separate virtual environments for each folder that contains Lambda functions.
170
-
Steps:
171
-
1. Follow instructions above to [install dependencies](#install-dependencies) & [set up a virtual environment](#setting-up-a-virtual-environment-with-poetry).
170
+
Steps:
171
+
1. Follow instructions above to [install dependencies](#install-dependencies) & [set up a virtual environment](#setting-up-a-virtual-environment-with-poetry).
172
172
**Note: While this project uses Python 3.10 (e.g. for Lambdas), the NHSDigital/api-management-utils repository — which orchestrates setup and linting — defaults to Python 3.8.
173
173
The linting command is executed from within that repo but calls the Makefile in this project, so be aware of potential Python version mismatches when running or debugging locally or in the pipeline.**
174
174
2. Run `make lint`. This will:
175
175
- Check the linting of the API specification yaml.
176
176
- Run Flake8 on all Python files in the repository, excluding files inside .venv and .terraform directories.
177
177
178
-
## IDE setup
178
+
## IDE setup
179
179
The current team uses VS Code mainly. So this setup is targeted towards VS code. If you use another IDE please add the documentation to set up workspaces here.
180
180
181
181
### VS Code
@@ -209,7 +209,7 @@ The root (`immunisation-fhir-api`) should point to `/mnt/d/Source/immunisation-f
209
209
210
210
211
211
## Verified commits
212
-
Please note that this project requires that all commits are verified using a GPG key.
212
+
Please note that this project requires that all commits are verified using a GPG key.
213
213
To set up a GPG key please follow the instructions specified here:
0 commit comments