Releases: marcelo-davanco/quality-scanner
Release list
v1.6.0
What's Changed
- feat: Nx monorepo + NestJS API + Quality Profiles + Dashboard → API integration by @marcelo-davanco in #9
- fix: resolve runtime issues found during end-to-end validation by @marcelo-davanco in #10
Full Changelog: v1.4.0...v1.6.0
v1.5.0 — Nx Monorepo + NestJS API + Quality Profiles
What's new in v1.5.0
🏗️ Nx Monorepo
The project is now an Nx workspace with three apps:
apps/scanner— Docker-based 10-step quality pipelineapps/api— NestJS REST API with TypeORM + PostgreSQLapps/dashboard— Next.js results dashboard
✨ NestJS REST API
New dedicated API service on port 3001 with full Swagger docs at /api/docs.
Entities and endpoints:
- Projects —
POST/GET /projects·GET/PATCH/DELETE /projects/:id - Scans —
POST /projects/:id/scans·GET/PATCH /scans/:id - Phase Results —
POST/GET /scans/:id/phases - Quality Profiles —
POST/GET /quality-profiles·GET/PATCH/DELETE /quality-profiles/:id - Config Items —
POST/GET /quality-profiles/:id/configs·PATCH/DELETE /quality-profiles/configs/:itemId - Scanner Config —
GET /projects/configs/:key
🗃️ Liquibase schema management
Replaced TypeORM synchronize with versioned Liquibase changelogs. A dedicated liquibase Docker service runs migrations automatically before the API starts.
v1.0.0— Initial schema (projects, scans, phase_results)v1.1.0— Quality profiles (quality_profiles, quality_config_items, FK on projects)
✨ Quality Profiles
Define reusable sets of config files and assign them to projects.
When a scan runs, the scanner calls GET /api/projects/configs/:key, overwrites the static config files in the container, then executes the phases. Falls back to static quality-configs/ files when no profile is assigned or API is unavailable.
🎨 Dashboard → API integration
All dashboard pages now fetch live data from the API:
| Page | Description |
|---|---|
/projects |
List all registered projects |
/projects/:id |
Project detail + scan history + profile assignment |
/projects/:id/scans/:scanId |
Scan detail with per-phase results |
/quality-profiles |
List and create quality profiles |
/quality-profiles/:id |
Manage config items, link/unlink projects |
🔧 ENABLE_* phase toggles
All 10 scanner phases can now be individually enabled/disabled via ENABLE_GITLEAKS, ENABLE_TYPESCRIPT, ENABLE_ESLINT, ENABLE_PRETTIER, ENABLE_AUDIT, ENABLE_KNIP, ENABLE_JEST, ENABLE_SONARQUBE, ENABLE_API_LINT, ENABLE_INFRA_SCAN.
🔗 Scanner → API integration
The scanner now reports all activity to the API in real time: registers scan on start, reports each phase result, finalizes scan with status + metrics.
📝 Documentation
All 6 READMEs updated (EN, PT-BR, ES, ZH-CN, HI, RU) to reflect the new architecture.
New docker compose services
| Service | Description | Port |
|---|---|---|
api-db |
PostgreSQL for the API | 5433 |
liquibase |
Runs DB migrations on startup | — |
api |
NestJS REST API | 3001 |
Migration from v1.4.0
- Add
API_DB_PASSWORDto your.env(see.env.example) - Run
docker compose up -d— Liquibase will create the new tables automatically - All existing scanner functionality is preserved — JSON file reports still generated as fallback
v1.4.0
What's Changed
- 🔀 release: merge develop into main for v1.4.0 by @marcelo-davanco in #7
- 📝 docs(readme): update Quick Start to reflect current workflow and features by @marcelo-davanco in #8
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
- ✨ docs(readme): add status badges and fix badge placement by @marcelo-davanco in #1
- 🐛 fix(readme): fix CI badge to point to develop branch by @marcelo-davanco in #2
- build(deps): bump next from 14.2.35 to 15.5.10 in /dashboard by @dependabot[bot] in #4
- ✨ feat(sonarqube): integrate community branch plugin via custom GHCR image by @marcelo-davanco in #5
- 🔀 release: merge develop into main for v1.3.0 by @marcelo-davanco in #6
New Contributors
- @marcelo-davanco made their first contribution in #1
- @dependabot[bot] made their first contribution in #4
Full Changelog: v1.2.1...v1.3.0