Skip to content

Configuration

simone.tiberti edited this page May 19, 2026 · 7 revisions

Configurazione ambiente

environment.json

File JSON servito staticamente e letto a runtime dalla libreria. Va posizionato in modo che sia raggiungibile all'URL configurato (default: /environment/environment.json).

{
  "appId": "my-app",
  "appTitle": "My App",
  "appDescription": "La mia applicazione",
  "theme": "gpa",
  "logoutPath": "/logout",
  "logoUrl": "https://cdn.example.com/logo-myapp.png",
  "encryptToken": false,
  "properties": {
    "homeTitle": "Benvenuto",
    "homeSubTitle": "Seleziona una funzione dal menu laterale",
    "apiBaseUrl": "https://api.example.com"
  }
}

Campi

Campo Tipo Obbligatorio Descrizione
appId string Identificativo applicazione. Usato come header AppId nella chiamata token e come chiave di cifratura se encryptToken: true
appTitle string Titolo visualizzato nel tab del browser (via Title service). Impostato da SystemService quando il bootstrap completa con successo
appDescription string Nome applicazione mostrato nella toolbar
theme string Tema grafico: gpa, cobalt, forest
logoutPath string URL di logout (link nel layout)
logoUrl string URL del logo mostrato nell'app-switcher (HTTPS, CDN, path relativo). Se assente, il logo non viene visualizzato
encryptToken boolean Se true, la risposta del token endpoint è cifrata con AES-GCM usando appId come chiave
language string Locale da applicare ai componenti Material (es. "it", "en"). Guida DateAdapter.setLocale() per il DatePicker e i label del paginator (GpaPaginatorIntl). Default effettivo: "it" se assente
properties Record<string, unknown> Configurazione arbitraria app-specific, accessibile via SystemService.getEnvironmentProperty(key). Convenzione: homeTitle e homeSubTitle sono usati dalla home page generata dallo schematic

provideGPAUICore()

Chiamato in app.config.ts. Accetta opzioni opzionali per sovrascrivere gli URL di default:

// app.config.ts
import { provideGPAUICore } from '@gpa-gruppo-progetti-avanzati-srl/ng-core-ui';

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(toRoutes(APP_ROUTES)),
    provideGPAUICore(),                          // URL di default
    provideHttpClient(withInterceptors([...])),
  ]
};
// Con URL personalizzati
provideGPAUICore({
  tokenUrl:       '/api/v2/token',
  environmentUrl: '/config/env.json',
})
Opzione Default Descrizione
tokenUrl /api/token Endpoint da cui la libreria recupera token e permessi utente
environmentUrl /environment/environment.json Endpoint del file di ambiente

Lettura delle properties a runtime

readonly system = inject(SystemService);

// lettura singola proprietà
const apiBase = this.system.getEnvironmentProperty('apiBaseUrl') as string;

// come computed signal
readonly apiBase = computed(() =>
  this.system.environmentProperties()['apiBaseUrl'] as string
);

Temi disponibili

Il tema viene applicato automaticamente in base al campo theme nel file di ambiente.

Valore Colore primario Colore terziario
gpa #274c77 (blu) #cae9ff (celeste)
cobalt #1B44B5 (blu cobalto) #EBDD49 (giallo dorato)
forest #06975e (verde foresta) #aff452 (lime)

Vedi → Temi e branding per i dettagli tecnici.

Clone this wiki locally