Skip to content

Commit f5ce1e5

Browse files
tstesynMarkGentHe1MarkGent1
authored
Merge SQS story into main (#6)
* Refactor to bring inline with data bridge project * Docker compose hooked up to VS debugging * Added SQS Consumer/Healthcheck and related tests to CI/CD pipeline (#4) * Stabilised flakey tests * Refactoring messaging and project structure contd. * Linting fixes applied. * PR template & docker compose changes * Added missing GitHubActionsTestLogger and switched test filter to dependence. * Switched integration test filter * Updated integration test SNS publisher * Test coverage applied * Fixed formatting issues * Removed warning * Looking to fix 2 AWS options tests. * More format fixes * Fix bad test * MInor change to activate SQS health check by state * Added aggregate root and tracking support. * Added S3 support and healthcheck (#8) Co-authored-by: Mark Gent <Mark.Gent@homesengland.gov.uk> --------- Co-authored-by: Mark Gent <Mark.Gent@homesengland.gov.uk> Co-authored-by: Mark Gent <MarkGent1@users.noreply.github.com>
1 parent ebc61ad commit f5ce1e5

163 files changed

Lines changed: 6049 additions & 468 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.sh text eol=lf

.github/workflows/check-pull-request.yml

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,41 +19,32 @@ jobs:
1919
steps:
2020
- uses: actions/setup-dotnet@v3
2121
with:
22-
dotnet-version: |
23-
8.0
24-
22+
dotnet-version: '8.0.x'
2523
- name: Check out code
2624
uses: actions/checkout@v3
2725
with:
28-
path: working-dir
29-
30-
- name: Verify Format
26+
path: working-dir
27+
- name: Restore
28+
run: dotnet restore ./working-dir/KeeperData.Api.sln
29+
- name: Build
30+
run: dotnet build ./working-dir/KeeperData.Api.sln --configuration Release --no-restore -warnaserror
31+
- name: Verify format
3132
run: dotnet format ./working-dir/KeeperData.Api.sln --verify-no-changes --verbosity diagnostic
32-
33-
- name: Run docker-compose
34-
uses: hoverkraft-tech/compose-action@v2.0.1
35-
with:
36-
compose-file: "./working-dir/docker-compose.yml"
37-
38-
- name: Make Script Executable
39-
run: chmod +x ./working-dir/wait-for-docker-logs.sh
40-
41-
- name: Wait for Localstack
42-
run: ./working-dir/wait-for-docker-logs.sh localstack-emulator "Ready." 60
43-
44-
- name: Test
45-
run: dotnet test ./working-dir/KeeperData.Api.sln --logger "GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true" --collect:"XPlat Code Coverage" --results-directory ./coverage
46-
47-
- name: install dotnet coverage
48-
run: dotnet tool install --global dotnet-coverage
49-
50-
- name: merge coverage reports
51-
run: dotnet-coverage merge *.cobertura.xml --recursive --output merged.cobertura.xml --output-format cobertura
52-
53-
- name: Code Coverage Report
33+
- name: Test (unit and component)
34+
run: dotnet test ./working-dir/KeeperData.Api.sln --filter Dependence!=localstack --logger "GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true" --collect:"XPlat Code Coverage" --results-directory ./coverage
35+
- name: Install ReportGenerator
36+
run: dotnet tool install --global dotnet-reportgenerator-globaltool
37+
- name: Generate Coverage Summary
38+
run: |
39+
reportgenerator \
40+
-reports:"./coverage/**/coverage.cobertura.xml" \
41+
-targetdir:"coverage-report" \
42+
-reporttypes:"Cobertura;MarkdownSummary" \
43+
-assemblyfilters:+KeeperData.*
44+
- name: Code coverage report
5445
uses: irongut/CodeCoverageSummary@v1.3.0
5546
with:
56-
filename: merged.cobertura.xml
47+
filename: coverage-report/Cobertura.xml
5748
badge: true
5849
fail_below_min: false
5950
format: markdown
@@ -62,14 +53,41 @@ jobs:
6253
indicators: true
6354
output: both
6455
thresholds: '60 80'
65-
6656
- name: Add Coverage PR Comment
6757
uses: marocchino/sticky-pull-request-comment@v2
6858
if: github.event_name == 'pull_request'
6959
with:
7060
recreate: true
7161
path: code-coverage-results.md
7262

63+
integration-tests:
64+
name: Run Integration Tests
65+
runs-on: ubuntu-latest
66+
needs: pr-validator
67+
steps:
68+
- uses: actions/setup-dotnet@v3
69+
with:
70+
dotnet-version: '8.0.x'
71+
- name: Check out code
72+
uses: actions/checkout@v3
73+
with:
74+
path: working-dir
75+
- name: Make LocalStack init script executable
76+
run: chmod +x ./working-dir/compose/start-localstack.sh
77+
- name: Run docker-compose
78+
uses: hoverkraft-tech/compose-action@v2.0.1
79+
with:
80+
compose-file: |
81+
./working-dir/docker-compose.yml
82+
./working-dir/docker-compose.override.yml
83+
- name: Make script executable
84+
run: chmod +x ./working-dir/wait-for-docker-logs.sh
85+
- name: Wait for localstack
86+
run: ./working-dir/wait-for-docker-logs.sh localstack-emulator "Bootstrapping Complete" 60
87+
- name: Wait for keeperdata_api to be ready
88+
run: ./working-dir/wait-for-docker-logs.sh keeperdata_api "Now listening on" 60
89+
- name: Run integration tests
90+
run: dotnet test ./working-dir/KeeperData.Api.sln --filter Dependence=localstack
7391

7492
## SonarCloud
7593
## Uncomment to unable SonarCloud scan

.github/workflows/publish.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ on:
44
push:
55
branches:
66
- main
7+
- develop
8+
- 'feature/**'
79

810
permissions:
911
id-token: write

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,3 +267,6 @@ __pycache__/
267267

268268
library.db
269269
.envrc
270+
/localstack_data/cache
271+
/coverage
272+
/coverage-report

Dockerfile

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
# Base dotnet image
1+
# Base dotnet image
22
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
33
WORKDIR /app
44
EXPOSE 80
55
EXPOSE 443
6-
EXPOSE 8080
7-
EXPOSE 8081
86

97
# Add curl to template.
108
# CDP PLATFORM HEALTHCHECK REQUIREMENT
@@ -16,19 +14,26 @@ RUN apt update && \
1614
# Build stage image
1715
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
1816
ARG BUILD_CONFIGURATION=Release
17+
ENV BUILD_CONFIGURATION=${BUILD_CONFIGURATION}
1918
WORKDIR /src
20-
COPY . .
2119

22-
# unit test and code coverage
23-
RUN dotnet test KeeperData.Api.sln --filter Dependence!=localstack
24-
RUN dotnet restore "KeeperData.Api.sln"
25-
RUN dotnet build "src/KeeperData.Api/KeeperData.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build /p:UseAppHost=false
20+
COPY ["src/KeeperData.Api/KeeperData.Api.csproj", "KeeperData.Api/"]
21+
COPY ["src/KeeperData.Infrastructure/KeeperData.Infrastructure.csproj", "KeeperData.Infrastructure/"]
22+
COPY ["src/KeeperData.Application/KeeperData.Application.csproj", "KeeperData.Application/"]
23+
COPY ["src/KeeperData.Core/KeeperData.Core.csproj", "KeeperData.Core/"]
24+
25+
RUN dotnet restore "KeeperData.Api/KeeperData.Api.csproj" -r linux-x64 -v n
26+
RUN dotnet restore "KeeperData.Infrastructure/KeeperData.Infrastructure.csproj" -r linux-x64 -v n
27+
RUN dotnet restore "KeeperData.Application/KeeperData.Application.csproj" -r linux-x64 -v n
28+
RUN dotnet restore "KeeperData.Core/KeeperData.Core.csproj" -r linux-x64 -v n
29+
30+
COPY ["src/", "."]
2631

2732
FROM build AS publish
28-
ARG BUILD_CONFIGURATION=Release
29-
RUN dotnet publish "src/KeeperData.Api" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
30-
ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
33+
WORKDIR "/src/KeeperData.Api"
34+
RUN dotnet publish "KeeperData.Api.csproj" -v n -c ${BUILD_CONFIGURATION} -o /app/publish -r linux-x64 --no-restore /p:UseAppHost=false
3135

36+
ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
3237

3338
# Final production image
3439
FROM base AS final

KeeperData.Api.sln

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,23 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9780B59B
1313
EndProject
1414
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Infrastructure", "src\KeeperData.Infrastructure\KeeperData.Infrastructure.csproj", "{F07A8DFD-D7A7-42C8-9850-F0C336DEC045}"
1515
EndProject
16-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Data", "src\KeeperData.Data\KeeperData.Data.csproj", "{8256795B-5937-43DF-95C2-D41053D2D27E}"
17-
EndProject
18-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Common", "src\KeeperData.Common\KeeperData.Common.csproj", "{F4DD4797-B666-4175-83FC-0E57F8C3DB80}"
19-
EndProject
2016
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Api.Tests.Integration", "tests\KeeperData.Api.Tests.Integration\KeeperData.Api.Tests.Integration.csproj", "{72D99550-9D4F-4374-9344-BC018111906D}"
2117
EndProject
2218
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solutionitems", "solutionitems", "{B0A5300E-181B-4F81-9C8C-64F69DAAC024}"
2319
ProjectSection(SolutionItems) = preProject
2420
.gitignore = .gitignore
25-
docker-compose.yml = docker-compose.yml
2621
Dockerfile = Dockerfile
2722
EndProjectSection
2823
EndProject
2924
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Core.Tests.Unit", "tests\KeeperData.Core.Tests.Unit\KeeperData.Core.Tests.Unit.csproj", "{A1C6A0AD-6C5D-4698-8047-FFFB9ECD9FD9}"
3025
EndProject
3126
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Infrastructure.Tests.Unit", "tests\KeeperData.Infrastructure.Tests.Unit\KeeperData.Infrastructure.Tests.Unit.csproj", "{5BFBB1F5-7D75-411B-9A71-1325C1E22E09}"
3227
EndProject
33-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Common.Tests.Unit", "tests\KeeperData.Common.Tests.Unit\KeeperData.Common.Tests.Unit.csproj", "{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A}"
28+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Application", "src\KeeperData.Application\KeeperData.Application.csproj", "{C628C38C-B7BF-4CBB-9A44-F0ED36F3B48F}"
29+
EndProject
30+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeeperData.Application.Tests.Unit", "tests\KeeperData.Application.Tests.Unit\KeeperData.Application.Tests.Unit.csproj", "{BA4E8D8A-FFCE-4ECD-8C55-90194019C765}"
31+
EndProject
32+
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{81DDED9D-158B-E303-5F62-77A2896D2A5A}"
3433
EndProject
3534
Global
3635
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -54,14 +53,6 @@ Global
5453
{F07A8DFD-D7A7-42C8-9850-F0C336DEC045}.Debug|Any CPU.Build.0 = Debug|Any CPU
5554
{F07A8DFD-D7A7-42C8-9850-F0C336DEC045}.Release|Any CPU.ActiveCfg = Release|Any CPU
5655
{F07A8DFD-D7A7-42C8-9850-F0C336DEC045}.Release|Any CPU.Build.0 = Release|Any CPU
57-
{8256795B-5937-43DF-95C2-D41053D2D27E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
58-
{8256795B-5937-43DF-95C2-D41053D2D27E}.Debug|Any CPU.Build.0 = Debug|Any CPU
59-
{8256795B-5937-43DF-95C2-D41053D2D27E}.Release|Any CPU.ActiveCfg = Release|Any CPU
60-
{8256795B-5937-43DF-95C2-D41053D2D27E}.Release|Any CPU.Build.0 = Release|Any CPU
61-
{F4DD4797-B666-4175-83FC-0E57F8C3DB80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
62-
{F4DD4797-B666-4175-83FC-0E57F8C3DB80}.Debug|Any CPU.Build.0 = Debug|Any CPU
63-
{F4DD4797-B666-4175-83FC-0E57F8C3DB80}.Release|Any CPU.ActiveCfg = Release|Any CPU
64-
{F4DD4797-B666-4175-83FC-0E57F8C3DB80}.Release|Any CPU.Build.0 = Release|Any CPU
6556
{72D99550-9D4F-4374-9344-BC018111906D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
6657
{72D99550-9D4F-4374-9344-BC018111906D}.Debug|Any CPU.Build.0 = Debug|Any CPU
6758
{72D99550-9D4F-4374-9344-BC018111906D}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -74,10 +65,14 @@ Global
7465
{5BFBB1F5-7D75-411B-9A71-1325C1E22E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
7566
{5BFBB1F5-7D75-411B-9A71-1325C1E22E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
7667
{5BFBB1F5-7D75-411B-9A71-1325C1E22E09}.Release|Any CPU.Build.0 = Release|Any CPU
77-
{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
78-
{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
79-
{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
80-
{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A}.Release|Any CPU.Build.0 = Release|Any CPU
68+
{C628C38C-B7BF-4CBB-9A44-F0ED36F3B48F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
69+
{C628C38C-B7BF-4CBB-9A44-F0ED36F3B48F}.Debug|Any CPU.Build.0 = Debug|Any CPU
70+
{C628C38C-B7BF-4CBB-9A44-F0ED36F3B48F}.Release|Any CPU.ActiveCfg = Release|Any CPU
71+
{C628C38C-B7BF-4CBB-9A44-F0ED36F3B48F}.Release|Any CPU.Build.0 = Release|Any CPU
72+
{BA4E8D8A-FFCE-4ECD-8C55-90194019C765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
73+
{BA4E8D8A-FFCE-4ECD-8C55-90194019C765}.Debug|Any CPU.Build.0 = Debug|Any CPU
74+
{BA4E8D8A-FFCE-4ECD-8C55-90194019C765}.Release|Any CPU.ActiveCfg = Release|Any CPU
75+
{BA4E8D8A-FFCE-4ECD-8C55-90194019C765}.Release|Any CPU.Build.0 = Release|Any CPU
8176
{81DDED9D-158B-E303-5F62-77A2896D2A5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
8277
{81DDED9D-158B-E303-5F62-77A2896D2A5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
8378
{81DDED9D-158B-E303-5F62-77A2896D2A5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -91,7 +86,7 @@ Global
9186
{72D99550-9D4F-4374-9344-BC018111906D} = {9780B59B-FFF7-481C-AA15-072631C6736C}
9287
{A1C6A0AD-6C5D-4698-8047-FFFB9ECD9FD9} = {9780B59B-FFF7-481C-AA15-072631C6736C}
9388
{5BFBB1F5-7D75-411B-9A71-1325C1E22E09} = {9780B59B-FFF7-481C-AA15-072631C6736C}
94-
{F16C919A-8FB1-4AC9-B45F-C2E29F62FF7A} = {9780B59B-FFF7-481C-AA15-072631C6736C}
89+
{BA4E8D8A-FFCE-4ECD-8C55-90194019C765} = {9780B59B-FFF7-481C-AA15-072631C6736C}
9590
EndGlobalSection
9691
GlobalSection(ExtensibilityGlobals) = postSolution
9792
SolutionGuid = {23761809-E330-42D6-B303-C5568B1FB035}

compose/aws.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ AWS_REGION=eu-west-2
22
AWS_DEFAULT_REGION=eu-west-2
33
AWS_ACCESS_KEY_ID=test
44
AWS_SECRET_ACCESS_KEY=test
5+
COMPOSE_PROJECT_NAME=keeperdata_api

compose/start-localstack.sh

Lines changed: 85 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,93 @@
11
#!/bin/bash
2+
sed -i 's/\r$//' "$0"
3+
24
export AWS_REGION=eu-west-2
35
export AWS_DEFAULT_REGION=eu-west-2
46
export AWS_ACCESS_KEY_ID=test
57
export AWS_SECRET_ACCESS_KEY=test
68

9+
set -e
10+
711
# S3 buckets
8-
# aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket
12+
echo "Bootstrapping S3 setup..."
13+
14+
## Create 'test-comparison-reports-bucket' Bucket
15+
existing_bucket=$(awslocal s3api list-buckets \
16+
--query "Buckets[?Name=='test-comparison-reports-bucket'].Name" \
17+
--output text)
18+
19+
if [ "$existing_bucket" == "test-comparison-reports-bucket" ]; then
20+
echo "S3 bucket already exists: test-comparison-reports-bucket"
21+
else
22+
awslocal s3api create-bucket --bucket test-comparison-reports-bucket --region eu-west-2 \
23+
--create-bucket-configuration LocationConstraint=eu-west-2 \
24+
--endpoint-url=http://localhost:4566
25+
echo "S3 bucket created: test-comparison-reports-bucket"
26+
fi
27+
28+
echo "Bootstrapping SQS setup..."
29+
30+
# Create SQS resources
31+
queue_url=$(awslocal sqs create-queue \
32+
--queue-name ls_keeper_data_intake_queue \
33+
--endpoint-url=http://localhost:4566 \
34+
--output text \
35+
--query 'QueueUrl')
36+
37+
echo "SQS Queue created: $queue_url"
38+
39+
# Get the SQS Queue ARN
40+
queue_arn=$(awslocal sqs get-queue-attributes \
41+
--queue-url "$queue_url" \
42+
--attribute-name QueueArn \
43+
--output text \
44+
--query 'Attributes.QueueArn')
45+
46+
echo "SQS Queue ARN: $queue_arn"
47+
48+
# Create SNS Topics
49+
topic_arn=$(awslocal sns create-topic \
50+
--name ls-keeper-data-bridge-events \
51+
--endpoint-url=http://localhost:4566 \
52+
--output text \
53+
--query 'TopicArn')
54+
55+
echo "SNS Topic created: $topic_arn"
56+
57+
# Construct the policy JSON inline with escaped quotes
58+
policy_json=$(cat <<EOF
59+
{
60+
"Version": "2012-10-17",
61+
"Statement": [
62+
{
63+
"Effect": "Allow",
64+
"Principal": "*",
65+
"Action": "sqs:SendMessage",
66+
"Resource": "$queue_arn",
67+
"Condition": {
68+
"ArnEquals": {
69+
"aws:SourceArn": "$topic_arn"
70+
}
71+
}
72+
}
73+
]
74+
}
75+
EOF
76+
)
77+
78+
# Set SQS policy
79+
awslocal sqs set-queue-attributes \
80+
--queue-url "$queue_url" \
81+
--attributes "{\"Policy\": \"$(
82+
echo "$policy_json" | jq -c
83+
)\"}"
84+
85+
# Subscribe the Queue to the Topic
86+
awslocal sns subscribe \
87+
--topic-arn "$topic_arn" \
88+
--protocol sqs \
89+
--notification-endpoint "$queue_arn"
90+
91+
echo "SNS Topic subscription complete"
992

10-
# SQS queues
11-
# aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name my-queue
93+
echo "Bootstrapping Complete"

docker-compose.dcproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
99
<DockerServiceUrl>{Scheme}://localhost:{ServicePort}/health</DockerServiceUrl>
1010
<DockerServiceName>keeperdata_api</DockerServiceName>
11+
<AdditionalComposeFilePaths>docker-compose.override.yml</AdditionalComposeFilePaths>
1112
</PropertyGroup>
1213
<ItemGroup>
1314
<None Include="docker-compose.override.yml">
@@ -16,4 +17,9 @@
1617
<None Include="docker-compose.yml" />
1718
<None Include=".dockerignore" />
1819
</ItemGroup>
20+
<ItemGroup>
21+
<DockerComposeServiceReference Include="keeperdata_api">
22+
<ProjectPath>src\KeeperData.Api\KeeperData.Api.csproj</ProjectPath>
23+
</DockerComposeServiceReference>
24+
</ItemGroup>
1925
</Project>

docker-compose.override.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
services:
22
keeperdata_api:
33
labels:
4-
com.microsoft.visual-studio.project-name: "keeperdata.api"
4+
com.microsoft.visual-studio.project-name: "KeeperData.Api"
55
environment:
66
- ASPNETCORE_ENVIRONMENT=Development
77
- ASPNETCORE_HTTP_PORTS=8080
8+
- AWS__ServiceURL=http://localstack-emulator:4566
9+
- Mongo__DatabaseUri=mongodb://mongodb:27017
10+
- StorageConfiguration__ComparisonReportsStorage__BucketName=test-comparison-reports-bucket
11+
- QueueConsumerOptions__IntakeEventQueueOptions__QueueUrl=http://sqs.eu-west-2.127.0.0.1:4566/000000000000/ls_keeper_data_intake_queue
812
ports:
913
- "8080"
1014
volumes:

0 commit comments

Comments
 (0)