# `set_nfd` lambda

The `set_nfd` lambda sets not_for_distribution of the product to "N". During the ingestion the product has a not_for_distribution value of "BulkIngestInProgress" to prevent partial products from being shown in the UI. At the end of the product loop this Lambda runs to make the product appear in the UI.



## Setup

### Install [`uv`](https://docs.astral.sh/uv/)

Choose your favourite or similar:

```shell
pip install uv
pipx install uv
brew install uv
```

### Permissions

Use [`awsume`](https://www.notion.so/AWS-Access-f841b9dd815d4443a80e96a86c92cd2f#5618a9119254428e9baeada414767e85):


```shell
awsume prod
```


### Install Packages

```shell
make uv_dev
```


### Copy and edit env and event.json shadows

```shell
cp event.shadow.json event.json
cp .env.shadow .env.shadow
```



## Local Development

```shell
# Install uv
brew install uv

# Install dependencies + create .venv (uv)
make uv_dev

# Run the function locally using event.json and print results
make dev

# Run formatting (ruff)
make fmt

# Run linting (ruff/mypy)
make lint

# Run unit tests (pytest)
make test_unit
```


## Local Development (Docker)

```shell
# Ensure the Docker daemon is running
docker ps

# Start the lambda container
make docker_up

# Send event.json to the local lambda container
make docker_event

# End the lambda container
make docker_down
```
