Files
admin/docker-compose.test.yml
T
Oleksandr Bezdieniezhnykh 5ca9ccab2c [AZ-513] [AZ-196] [AZ-183] Add /classes CRUD, /devices, fleet OTA
AZ-513: POST/PATCH/DELETE /classes for detection-class CRUD; new
DetectionClass entity, schema, DTOs, IDetectionClassService. Unblocks
ui/AZ-512.

AZ-196: POST /devices auto-assigns sequential azj-NNNN serial+email
+password and inserts a CompanionPC user. Returns plaintext credentials
for the provisioning script.

AZ-183: Resources table + POST /get-update + POST /resources/publish
for fleet OTA. Per-resource encryption_key column AES-256-CBC encrypted
at rest with ResourcesConfig.EncryptionMasterKey; ICache wraps the
per-(arch,stage) latest-versions lookup and is invalidated on publish.

Adds IDbFactory.RunAdmin<T> overload for write-and-return.

Backfills _docs/02_document/module-layout.md to satisfy the implement
skill's File Ownership prerequisite (the _docs/ artifact set predates
the Step 1.5 module-layout addition).

Code review: PASS_WITH_WARNINGS — see
_docs/03_implementation/reviews/batch_05_review.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 04:34:42 +03:00

73 lines
2.0 KiB
YAML

services:
test-db:
image: postgres:16-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: test_password
POSTGRES_DB: postgres
volumes:
- ./e2e/db-init/00_run_all.sh:/docker-entrypoint-initdb.d/00_run_all.sh:ro
- ./env/db:/docker-entrypoint-initdb.d/sql:ro
- ./e2e/db-init/99_test_seed.sql:/opt/test-seed.sql:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
networks:
- e2e-net
system-under-test:
build:
context: .
dockerfile: Dockerfile
depends_on:
test-db:
condition: service_healthy
environment:
ASPNETCORE_URLS: http://+:8080
ASPNETCORE_ENVIRONMENT: Development
ConnectionStrings__AzaionDb: "Host=test-db;Port=5432;Database=azaion;Username=azaion_reader;Password=test_password"
ConnectionStrings__AzaionDbAdmin: "Host=test-db;Port=5432;Database=azaion;Username=azaion_admin;Password=test_password"
JwtConfig__Secret: "TestSecretKeyThatIsAtLeast32CharactersLong123!"
ResourcesConfig__ResourcesFolder: "Content"
ResourcesConfig__SuiteInstallerFolder: "suite"
ResourcesConfig__SuiteStageInstallerFolder: "suite-stage"
ResourcesConfig__EncryptionMasterKey: "test-master-key-for-resources-table-do-not-use-in-prod"
ports:
- "8080:8080"
volumes:
- test-resources:/app/Content
healthcheck:
test:
[
"CMD-SHELL",
"/bin/bash -c 'exec 3<>/dev/tcp/127.0.0.1/8080'",
]
interval: 10s
timeout: 5s
retries: 8
start_period: 45s
networks:
- e2e-net
e2e-consumer:
build:
context: ./e2e
dockerfile: Dockerfile
depends_on:
system-under-test:
condition: service_healthy
volumes:
- ./e2e/test-results:/test-results
networks:
- e2e-net
networks:
e2e-net:
driver: bridge
volumes:
test-resources: