Skip to content

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

bash
# 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 dati

Connessione

ParametroValore (default)
Hostlocalhost
Porta1433 (MSSQL_PORT)
Utentesa
PasswordMSSQL_SA_PASSWORD (da .env)
Database di testetl_test

Verifica rapida (sqlcmd nel container, -C per fidarsi del cert self-signed):

bash
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):

bash
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 sa deve rispettare la complessità SQL Server (≥ 8 caratteri, con maiuscole, minuscole, cifre e simboli).
  • I test di integrazione del connettore useranno il database etl_test e creeranno/distruggeranno i propri oggetti; non toccano master.

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.

bash
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:9101

I 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/.

bash
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/.

Noeva è un marchio registrato di 4D S.R.L.