Runbook: database di test locali
Infrastruttura di test/sviluppo locale, non di produzione. Definita in
docker-compose.yml; credenziali in.env(gitignored).
SQL Server (per il connettore mssql)
Immagine: mcr.microsoft.com/mssql/server:2022-latest (solo linux/amd64: su Apple Silicon gira in emulazione, primo avvio più lento).
Avvio / stop
# prerequisito: in .env devono esserci MSSQL_SA_PASSWORD e (opzionale) MSSQL_PORT
docker compose up -d # avvia in background
docker compose ps # stato (atteso: healthy)
docker compose logs -f mssql-test # log
docker compose down # ferma (mantiene i dati nel volume)
docker compose down -v # ferma e AZZERA i datiConnessione
| Parametro | Valore (default) |
|---|---|
| Host | localhost |
| Porta | 1433 (MSSQL_PORT) |
| Utente | sa |
| Password | MSSQL_SA_PASSWORD (da .env) |
| Database di test | etl_test |
Verifica rapida (sqlcmd nel container, -C per fidarsi del cert self-signed):
docker exec noeva-etl-mssql-test /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P "$MSSQL_SA_PASSWORD" -C -Q "SELECT @@VERSION;"Creazione del database di test (idempotente):
docker exec noeva-etl-mssql-test /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P "$MSSQL_SA_PASSWORD" -C \
-Q "IF DB_ID('etl_test') IS NULL CREATE DATABASE etl_test;"Note
- La password
sadeve rispettare la complessità SQL Server (≥ 8 caratteri, con maiuscole, minuscole, cifre e simboli). - I test di integrazione del connettore useranno il database
etl_teste creeranno/distruggeranno i propri oggetti; non toccanomaster.
PostgreSQL (langfuse, esterno)
Il Postgres usato dalla pipeline langfuse-sessions-daily è gestito al di fuori di questo repo (stack langfuse) ed è raggiungibile su localhost:5433 (vedi variabili PG* in .env). Non è incluso in docker-compose.yml.
MinIO (storage S3-compatibile, per il connettore S3)
Servizio minio-test in docker-compose.yml. API su localhost:9100, console su 9101 (porte override via MINIO_PORT/MINIO_CONSOLE_PORT), credenziali minioadmin/minioadmin.
docker compose up -d minio-test
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:9100/minio/health/live # atteso 200
# console web: http://localhost:9101I test di integrazione S3 (tests/integration/s3.integration.test.ts) usano le variabili S3_* di .env (endpoint MinIO, bucket etl-test); il bucket viene creato dal test. Per AWS reale: omettere S3_ENDPOINT e usare le credenziali della catena AWS standard.
SFTP (per il connettore SFTP)
Servizio sftp-test (atmoz/sftp) in docker-compose.yml: utente etltest/etltest, porta 2222 (SFTP_PORT), directory scrivibile upload/.
docker compose up -d sftp-test
nc -z localhost 2222 && echo "SFTP up"I test di integrazione SFTP (tests/integration/sftp.integration.test.ts) usano le variabili SFTP_* di .env e scrivono sotto upload/.

