Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GovPay Logo

GovPay Console v2

Nuova versione della console di backoffice GovPay (riscrittura completa della console legacy Angular 5).

Stack: Angular 21+ standalone, Signals, TailwindCSS 4, Angular Material.

Workspace strutturato come seed riusabile per altri progetti Link.it.


Avvio rapido

nvm use                # usa Node 22 (vedi .nvmrc)
npm install
npm start              # backend default: 172.16.2.109:8080 (preset "local")

L'app risponderà su http://localhost:4200.

Proxy di sviluppo

Tutte le chiamate /govpay/backend/api/backoffice/rs/* (e /govway/in/RegioneSiciliana/*) sono inoltrate al backend tramite proxy.config.js. Il backend è selezionabile via preset:

Comando Preset Target
npm start local http://172.16.2.109:8080
npm run start:local-alt local-alt http://172.16.1.121:8082
npm run start:dev dev-cloud https://dev.govcloud.it
npm run start:demo demo https://demo.govcloud.it
npm run start:sicilia sicilia https://gestionepagopatest.regione.sicilia.it

Override manuale:

GP_BACKEND=dev-cloud ng serve --proxy-config proxy.config.js

Per aggiungere/modificare un preset, edita BACKENDS in proxy.config.js.

Build

npm run build          # development
npm run build:prod     # production con outputHashing

L'output finisce in dist/govpay-console/browser/.

Test

npm test               # vitest watch
npm run test:run       # singolo run
npm run test:coverage  # con coverage v8

Versionamento

Il file projects/govpay-console/src/environments/version.ts viene rigenerato automaticamente come prebuild da scripts/generate-version.js (legge package.json, raccoglie info git, scrive VERSION).

npm run version:generate         # rigenera version.ts
npm run version:patch            # 0.0.0 → 0.0.1 + rigenera
npm run version:minor            # 0.1.0
npm run version:major            # 1.0.0
npm run version:set 1.2.3        # imposta versione esatta

La pagina About (/about) mostra getFullVersion().

Configurazione runtime

L'applicazione carica al boot un file di configurazione JSON (vedi src/assets/config/app-config*.json). La selezione tra dev/prod avviene tramite environment.configFile. La struttura è documentata in CALUDE-NOTE/ARCHITETTURA.md.

Multi-tenant runtime

L'app supporta più tenant senza rebuild. La selezione iniziale segue questo ordine:

  1. query param ?tenant=<name>
  2. sottodominio (<name>.dominio.it)
  3. localStorage (chiave lnk-tenant)
  4. AppConfig.CurrentTenant

ConfigService.applyTenant(name) cambia tema, branding e titolo del documento.

Struttura

projects/govpay-console/src/app/
├── core/        config, auth, interceptors, layout, system, version
├── features/    dashboard, pendenze, ricevute, pagamenti, … (placeholder M1)
└── shared/      componenti / directive / pipe condivise

Vedi CALUDE-NOTE/PIANO-LAVORO.md per il piano completo e le fasi di lavoro.

Convenzioni

  • Selettori prefissati lnk-.
  • Tutti i componenti standalone + OnPush.
  • Stato globale signals-only, no NgRx.
  • Header licenza GPL v3 in cima ad ogni file .ts.
  • Path alias: @core/*, @feature/*, @shared/*, @environment, @environments.

Docker

Il progetto include docker/Dockerfile, un Dockerfile multi-stage che builda l'applicazione dai sorgenti (stage Node) e la serve come contenuto statico tramite nginx.

Build & run

# Build dell'immagine (eseguire dalla root del repo: il build context è la root)
docker build -t govpay-console:local -f docker/Dockerfile .

# Avvio: l'app è servita su http://localhost:8080
docker run --rm -p 8080:8080 govpay-console:local

Oppure con docker compose (espone la console su http://localhost:10012):

docker compose up --build

Configurazione runtime

Variabile Default Descrizione
SERVER_PORT 8080 Porta su cui ascolta nginx nel container
GOVPAY_API_BACKEND (vuota) Se valorizzata, nginx fa da reverse proxy per /govpay-api-backoffice verso questo backend, evitando problemi di CORS
GOVPAY_API_BACKEND_PATH /govpay-api-backoffice Path upstream sul backend a cui mappare /govpay-api-backoffice/*. Usare / se il backend serve gli endpoint alla radice (/rs/form/v1/...): il prefisso /govpay-api-backoffice viene rimosso prima dell'inoltro

Esempio con proxy verso un backend GovPay reale:

docker run --rm -p 8080:8080 \
  -e GOVPAY_API_BACKEND=https://lab.link.it \
  govpay-console:local

Esempio con backend che espone gli endpoint alla radice (proxy same-origin, nessun CORS):

docker run --rm -p 8080:8080 \
  -e GOVPAY_API_BACKEND=http://govpay-console-api:8080 \
  -e GOVPAY_API_BACKEND_PATH=/ \
  govpay-console:local

La configurazione dell'app (titoli, endpoint, temi, ecc.) resta in assets/config/app-config.json ed è servita staticamente: può essere sovrascritta montando un volume su /usr/share/nginx/html/assets/config/app-config.json.

Per le immagini basate su release pubblicate (download da GitHub o build locale già pronta) sono disponibili gli script in docker/ (build_image.sh, con i relativi Dockerfile.github / Dockerfile.daFile).

Licenza

GPL-3.0-or-later — Link.it srl.

About

Console di gestione e monitoraggio di GovPay

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages