wuic-framework-lib 1.7.2 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{wuic-framework-lib-chart-list.component-MeAS47VV.mjs → wuic-framework-lib-chart-list.component-Bd81NAA4.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-code-editor.component-WtZC2MZC.mjs → wuic-framework-lib-code-editor.component-CT9RQP0j.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-designer.component-Dt7Yz5hn.mjs → wuic-framework-lib-designer.component-DARgqyVY.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-first-run-wizard.component-C8nhy5yK.mjs → wuic-framework-lib-first-run-wizard.component-CpE5e6eG.mjs} +28 -2
- package/fesm2022/{wuic-framework-lib-framework-docs.component-CGsugPCx.mjs → wuic-framework-lib-framework-docs.component-C04bapkD.mjs} +8 -8
- package/fesm2022/{wuic-framework-lib-pivot-builder.component-S5zqy3vj.mjs → wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-VY-gtgRW.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-CHdqlPlh.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-designer.component-QRxxueU-.mjs → wuic-framework-lib-report-designer.component-CR6AWWCs.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-scaffold-dialog.component-OGdglGPw.mjs → wuic-framework-lib-report-scaffold-dialog.component-UOHh2H80.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-viewer.component-CuXw3e0j.mjs → wuic-framework-lib-report-viewer.component-jggUwuS6.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scene3d-designer.component-LhC0KzWO.mjs → wuic-framework-lib-scene3d-designer.component-Cf99bYCj.mjs} +3 -3
- package/fesm2022/{wuic-framework-lib-scene3d-light-baker-gpu-B5ywsrSp.mjs → wuic-framework-lib-scene3d-light-baker-gpu-CIilDU9M.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scene3d-viewer.component-DiDqJO-P.mjs → wuic-framework-lib-scene3d-viewer.component-BOMK1lig.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scheduler-list.component-5JbxIBdp.mjs → wuic-framework-lib-scheduler-list.component-QpRYvvOw.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-Dxk5d9au.mjs → wuic-framework-lib-spreadsheet-list-sf.component-qCPw_JOC.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-timeline-list.component-B1ro-16J.mjs → wuic-framework-lib-timeline-list.component-DUHygnTw.mjs} +4 -4
- package/fesm2022/{wuic-framework-lib-workflow-designer.component-D32ZMxq2.mjs → wuic-framework-lib-workflow-designer.component-BcFyxfQI.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-wuic-framework-lib-81WUtxz8.mjs → wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs} +39 -24
- package/fesm2022/wuic-framework-lib.mjs +1 -1
- package/package.json +1 -1
- package/types/wuic-framework-lib.d.ts +13 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, ViewChild, Output, Input, Component } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { W as WtoolboxService, m as WuicClientException, n as WuicErrorCodes, G as GlobalHandler, M as MetadataProviderService, T as TranslationManagerService, U as UserInfoService, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-
|
|
4
|
+
import { W as WtoolboxService, m as WuicClientException, n as WuicErrorCodes, G as GlobalHandler, M as MetadataProviderService, T as TranslationManagerService, U as UserInfoService, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
5
5
|
import * as i4 from 'primeng/chart';
|
|
6
6
|
import { ChartModule } from 'primeng/chart';
|
|
7
7
|
import * as i8 from '@ngx-translate/core';
|
|
@@ -1389,4 +1389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1389
1389
|
}] } });
|
|
1390
1390
|
|
|
1391
1391
|
export { ChartListComponent };
|
|
1392
|
-
//# sourceMappingURL=wuic-framework-lib-chart-list.component-
|
|
1392
|
+
//# sourceMappingURL=wuic-framework-lib-chart-list.component-Bd81NAA4.mjs.map
|
|
@@ -6,7 +6,7 @@ import * as i1$1 from '@materia-ui/ngx-monaco-editor';
|
|
|
6
6
|
import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
|
|
7
7
|
import { filter, take } from 'rxjs/operators';
|
|
8
8
|
import { Emitter } from 'monaco-editor/esm/vs/base/common/event';
|
|
9
|
-
import { W as WtoolboxService, M as MetadataProviderService, g as MetadatiColonna, o as MetaInfo, U as UserInfoService, h as DataProviderService } from './wuic-framework-lib-wuic-framework-lib-
|
|
9
|
+
import { W as WtoolboxService, M as MetadataProviderService, g as MetadatiColonna, o as MetaInfo, U as UserInfoService, h as DataProviderService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
10
10
|
import { NgTemplateOutlet, NgClass, NgStyle } from '@angular/common';
|
|
11
11
|
import * as i14 from 'primeng/contextmenu';
|
|
12
12
|
import { ContextMenuModule } from 'primeng/contextmenu';
|
|
@@ -4160,4 +4160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
4160
4160
|
}] } });
|
|
4161
4161
|
|
|
4162
4162
|
export { CodeEditorComponent };
|
|
4163
|
-
//# sourceMappingURL=wuic-framework-lib-code-editor.component-
|
|
4163
|
+
//# sourceMappingURL=wuic-framework-lib-code-editor.component-CT9RQP0j.mjs.map
|
|
@@ -5,7 +5,7 @@ import { SplitterModule } from 'primeng/splitter';
|
|
|
5
5
|
import * as i12 from 'primeng/dragdrop';
|
|
6
6
|
import { DragDropModule } from 'primeng/dragdrop';
|
|
7
7
|
import { NgClass, NgStyle, NgTemplateOutlet, AsyncPipe, JsonPipe, NgFor, NgIf, NgComponentOutlet } from '@angular/common';
|
|
8
|
-
import { W as WtoolboxService, D as DynamicGenericTemplateComponent, a as DynamicCompilerService, b as DataSourceComponent, c as DataRepeaterComponent, F as FilterBarComponent, L as LazyParametricDialogComponent, P as PagerComponent, M as MetadataProviderService, t as toHsbaModel, d as clampAlpha, e as toPersistedColor, f as ParametricDialogComponent, g as MetadatiColonna, h as DataProviderService, U as UserInfoService, T as TranslationManagerService, i as MetadataEditorService, C as ChatbotHostRegistryService, j as WorkflowRuntimeMetadataService, k as FieldEditorComponent, l as MetadataEditorComponent, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-
|
|
8
|
+
import { W as WtoolboxService, D as DynamicGenericTemplateComponent, a as DynamicCompilerService, b as DataSourceComponent, c as DataRepeaterComponent, F as FilterBarComponent, L as LazyParametricDialogComponent, P as PagerComponent, M as MetadataProviderService, t as toHsbaModel, d as clampAlpha, e as toPersistedColor, f as ParametricDialogComponent, g as MetadatiColonna, h as DataProviderService, U as UserInfoService, T as TranslationManagerService, i as MetadataEditorService, C as ChatbotHostRegistryService, j as WorkflowRuntimeMetadataService, k as FieldEditorComponent, l as MetadataEditorComponent, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
9
9
|
import { fromEvent, BehaviorSubject, merge, filter, Observable, switchMap, take, map, takeUntil, tap, timeInterval, scan, mergeMap, of, delay, repeat, Subject, startWith, pairwise, skipWhile, combineLatest } from 'rxjs';
|
|
10
10
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
11
|
import { CdkAccordionModule, CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';
|
|
@@ -13240,4 +13240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
13240
13240
|
}] } });
|
|
13241
13241
|
|
|
13242
13242
|
export { DesignerComponent };
|
|
13243
|
-
//# sourceMappingURL=wuic-framework-lib-designer.component-
|
|
13243
|
+
//# sourceMappingURL=wuic-framework-lib-designer.component-DARgqyVY.mjs.map
|
|
@@ -6,7 +6,7 @@ import * as i1$1 from '@angular/forms';
|
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
7
|
import * as i1 from '@angular/common/http';
|
|
8
8
|
import { HttpContext } from '@angular/common/http';
|
|
9
|
-
import { G as GlobalHandler, W as WtoolboxService, p as WUIC_SUPPRESS_GLOBAL_ERROR } from './wuic-framework-lib-wuic-framework-lib-
|
|
9
|
+
import { G as GlobalHandler, W as WtoolboxService, p as WUIC_SUPPRESS_GLOBAL_ERROR } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
10
10
|
import { firstValueFrom } from 'rxjs';
|
|
11
11
|
import * as i8 from '@ngx-translate/core';
|
|
12
12
|
import { TranslateModule } from '@ngx-translate/core';
|
|
@@ -83,6 +83,7 @@ const FIRST_RUN_UI_BUNDLES = {
|
|
|
83
83
|
msg_integrated_security_mssql_only: 'Integrated Security è supportata solo su Microsoft SQL Server: per {{dbms}} servono user e password.',
|
|
84
84
|
msg_data_source_missing: 'Stringa DataSQLConnection non valida: manca data source/server/host.',
|
|
85
85
|
msg_pick_data_db: 'Seleziona un database dati dalla lista.',
|
|
86
|
+
msg_data_db_not_found: 'Il database \'{{db}}\' non esiste sul server. Scegline uno dalla lista: i nomi possono distinguere maiuscole e minuscole (su PostgreSQL un CREATE DATABASE senza virgolette li rende minuscoli).',
|
|
86
87
|
msg_test_connection_first: 'Testa prima la connessione dati per abilitare il database di destinazione.',
|
|
87
88
|
msg_admin_username_required: 'Inserisci un username per l\'utente admin iniziale.',
|
|
88
89
|
msg_admin_password_required: 'Inserisci una password (almeno 4 caratteri) per l\'utente admin iniziale.',
|
|
@@ -136,6 +137,7 @@ const FIRST_RUN_UI_BUNDLES = {
|
|
|
136
137
|
msg_integrated_security_mssql_only: 'Integrated Security is only supported on Microsoft SQL Server: {{dbms}} needs a user and a password.',
|
|
137
138
|
msg_data_source_missing: 'Invalid DataSQLConnection: data source/server/host is missing.',
|
|
138
139
|
msg_pick_data_db: 'Pick a data database from the list.',
|
|
140
|
+
msg_data_db_not_found: 'The database \'{{db}}\' does not exist on the server. Pick one from the list: names can be case-sensitive (on PostgreSQL an unquoted CREATE DATABASE lowercases them).',
|
|
139
141
|
msg_test_connection_first: 'Test the data connection first to enable the target database.',
|
|
140
142
|
msg_admin_username_required: 'Enter a username for the initial admin user.',
|
|
141
143
|
msg_admin_password_required: 'Enter a password (at least 4 characters) for the initial admin user.',
|
|
@@ -189,6 +191,7 @@ const FIRST_RUN_UI_BUNDLES = {
|
|
|
189
191
|
msg_integrated_security_mssql_only: 'Integrated Security n\'est pris en charge que sur Microsoft SQL Server : {{dbms}} exige un utilisateur et un mot de passe.',
|
|
190
192
|
msg_data_source_missing: 'DataSQLConnection invalide : data source/server/host manquant.',
|
|
191
193
|
msg_pick_data_db: 'Choisissez une base de données dans la liste.',
|
|
194
|
+
msg_data_db_not_found: 'La base de données \'{{db}}\' n\'existe pas sur le serveur. Choisissez-en une dans la liste : les noms peuvent être sensibles à la casse (sur PostgreSQL un CREATE DATABASE sans guillemets les met en minuscules).',
|
|
192
195
|
msg_test_connection_first: 'Testez d\'abord la connexion aux données pour activer la base cible.',
|
|
193
196
|
msg_admin_username_required: 'Saisissez un nom d\'utilisateur pour l\'administrateur initial.',
|
|
194
197
|
msg_admin_password_required: 'Saisissez un mot de passe (4 caractères minimum) pour l\'administrateur initial.',
|
|
@@ -242,6 +245,7 @@ const FIRST_RUN_UI_BUNDLES = {
|
|
|
242
245
|
msg_integrated_security_mssql_only: 'Integrated Security solo se admite en Microsoft SQL Server: {{dbms}} necesita usuario y contraseña.',
|
|
243
246
|
msg_data_source_missing: 'DataSQLConnection no válida: falta data source/server/host.',
|
|
244
247
|
msg_pick_data_db: 'Selecciona una base de datos de la lista.',
|
|
248
|
+
msg_data_db_not_found: 'La base de datos \'{{db}}\' no existe en el servidor. Elige una de la lista: los nombres pueden distinguir mayúsculas y minúsculas (en PostgreSQL un CREATE DATABASE sin comillas las pasa a minúsculas).',
|
|
245
249
|
msg_test_connection_first: 'Prueba primero la conexión de datos para habilitar la base de destino.',
|
|
246
250
|
msg_admin_username_required: 'Introduce un usuario para el administrador inicial.',
|
|
247
251
|
msg_admin_password_required: 'Introduce una contraseña (mínimo 4 caracteres) para el administrador inicial.',
|
|
@@ -295,6 +299,7 @@ const FIRST_RUN_UI_BUNDLES = {
|
|
|
295
299
|
msg_integrated_security_mssql_only: 'Integrated Security wird nur von Microsoft SQL Server unterstützt: {{dbms}} benötigt Benutzer und Passwort.',
|
|
296
300
|
msg_data_source_missing: 'Ungültige DataSQLConnection: data source/server/host fehlt.',
|
|
297
301
|
msg_pick_data_db: 'Wähle eine Datenbank aus der Liste.',
|
|
302
|
+
msg_data_db_not_found: 'Die Datenbank \'{{db}}\' existiert auf dem Server nicht. Wähle eine aus der Liste: Namen können Groß- und Kleinschreibung unterscheiden (bei PostgreSQL macht ein CREATE DATABASE ohne Anführungszeichen sie klein).',
|
|
298
303
|
msg_test_connection_first: 'Teste zuerst die Datenverbindung, um die Zieldatenbank zu aktivieren.',
|
|
299
304
|
msg_admin_username_required: 'Gib einen Benutzernamen für den ersten Administrator ein.',
|
|
300
305
|
msg_admin_password_required: 'Gib ein Passwort (mindestens 4 Zeichen) für den ersten Administrator ein.',
|
|
@@ -964,6 +969,27 @@ class WuicFirstRunWizardComponent {
|
|
|
964
969
|
this.firstRunError = this.translate.instant('firstrun.ui.msg_test_connection_first');
|
|
965
970
|
return;
|
|
966
971
|
}
|
|
972
|
+
// Il database dati deve essere UNO DI QUELLI che il server ha appena elencato.
|
|
973
|
+
//
|
|
974
|
+
// Il campo e' un p-select editabile, quindi accetta testo libero: fin qui un nome
|
|
975
|
+
// inesistente passava, finiva dentro `DataSQLConnection`, e da li' in poi ogni cosa che
|
|
976
|
+
// tocca il database dati falliva. Lo scaffolding, che e' best-effort e non blocca il primo
|
|
977
|
+
// avvio, moriva su `NpgsqlConnection.Open()` con `3D000: database "..." does not exist` e
|
|
978
|
+
// l'installazione si concludeva "con successo": utente amministratore creato, database dei
|
|
979
|
+
// metadati creato, login raggiunto, menu vuoto e nessuna traccia visibile del perche'.
|
|
980
|
+
// Verificato il 15/09 su PostgreSQL con un nome in CamelCase mentre il database reale era
|
|
981
|
+
// minuscolo — un solo carattere sbagliato, e un'installazione silenziosamente inutilizzabile.
|
|
982
|
+
// Su MySQL lo stesso errore non si vedeva perche' i nomi dei database non distinguono
|
|
983
|
+
// maiuscole e minuscole: e' una differenza fra motori, non una garanzia.
|
|
984
|
+
//
|
|
985
|
+
// Qui si ferma prima di scrivere qualsiasi cosa, e si dice quale nome non esiste. Il
|
|
986
|
+
// controllo non tocca la modalita' tutorial, dove il database dati lo crea il wizard e
|
|
987
|
+
// quindi non deve esistere ancora.
|
|
988
|
+
if (!isTutorialMode && this.firstRunDataDbOptions.length > 0
|
|
989
|
+
&& !this.firstRunDataDbOptions.some(x => String(x.value) === selectedDataDbName)) {
|
|
990
|
+
this.firstRunError = this.translate.instant('firstrun.ui.msg_data_db_not_found', { db: selectedDataDbName });
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
967
993
|
const adminUsername = String(this.firstRunForm.adminUsername || '').trim();
|
|
968
994
|
const adminPassword = String(this.firstRunForm.adminPassword || '');
|
|
969
995
|
if (!adminUsername) {
|
|
@@ -1627,4 +1653,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1627
1653
|
}] } });
|
|
1628
1654
|
|
|
1629
1655
|
export { WuicFirstRunWizardComponent };
|
|
1630
|
-
//# sourceMappingURL=wuic-framework-lib-first-run-wizard.component-
|
|
1656
|
+
//# sourceMappingURL=wuic-framework-lib-first-run-wizard.component-CpE5e6eG.mjs.map
|
|
@@ -16,12 +16,12 @@ import * as i1$3 from 'primeng/image';
|
|
|
16
16
|
import { ImageModule } from 'primeng/image';
|
|
17
17
|
import * as i8$1 from '@ngx-translate/core';
|
|
18
18
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
19
|
-
import { v as getThemeOptions, T as TranslationManagerService, U as UserInfoService } from './wuic-framework-lib-wuic-framework-lib-
|
|
19
|
+
import { v as getThemeOptions, T as TranslationManagerService, U as UserInfoService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
20
20
|
import * as i1 from '@angular/router';
|
|
21
21
|
|
|
22
22
|
const frameworkDocsContent = {
|
|
23
23
|
"version": "1.0.0",
|
|
24
|
-
"generatedAt": "2026-09-
|
|
24
|
+
"generatedAt": "2026-09-11T12:50:19.123Z",
|
|
25
25
|
"groups": [
|
|
26
26
|
{
|
|
27
27
|
"id": "primi-passi",
|
|
@@ -1153,7 +1153,7 @@ const frameworkDocsContent = {
|
|
|
1153
1153
|
{
|
|
1154
1154
|
"id": "overview",
|
|
1155
1155
|
"title": "Overview",
|
|
1156
|
-
"html": "<h1>Panoramica Framework</h1><p>WUIC Framework e' una piattaforma metadata-driven per creare interfacce business in modo rapido e coerente.</p><h2>Cosa include</h2><ul><li>DataSource e DataRepeater per orchestrare dati e rendering.</li><li>Archetypes visuali (list, map, scheduler, chart, carousel).</li><li>Designer runtime per dashboard e template dinamici.</li><li>Workflow designer/runner per processi operativi.</li><li>RAG Chatbot per interrogare la codebase in linguaggio naturale.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL e Oracle tramite provider drop-in (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Avvio ambiente dev</h2><p>Lo stack WUIC e' composto da piu' servizi. Avviali nell'ordine indicato.</p><h3>Prerequisiti</h3><table><thead><tr><th>Cosa</th><th>Verifica</th><th>Note</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle per IIS in produzione</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 e' la versione con cui il pacchetto e' testato; con npm 10.9.x installa solo grazie al <code>package-lock.json</code> incluso</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>La PowerShell preinstallata su Windows basta: <code>rename-project.ps1</code> e gli script <code>llm-workspace/</code> girano anche su 5.1. PowerShell 7 e' consigliata, non richiesta</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Se manca, <strong>il one-liner lo installa da se'</strong> (SQL Server Express, o il motore scelto con <code>-Dbms</code>); su Windows Server no, vedi il riquadro sotto. 2019 basta per i pacchetti senza <code>.bak</code>; il tutorial <code>.bak</code> e' un backup di SQL Server 2022 e richiede <strong>2022 o superiore</strong></td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Opzionale: accelera il RAG Chatbot (senza GPU gira su CPU)</td></tr></tbody></table><p>> <strong>Su Windows Server il database va installato prima.</strong> Il one-liner si procura i componenti</p><p>> mancanti tramite <code>winget</code>, che su Windows Server non e' presente: senza un'istanza gia'</p><p>> raggiungibile l'installazione si ferma con `No SQL Server instance reachable and winget is</p><p>> missing`. Installa quindi il motore prima di lanciare la riga - per SQL Server serve la</p><p>> <strong>2019 o superiore</strong> (la Express basta; <strong>2022 o superiore</strong> per il tutorial <code>.bak</code>), e una</p><p>> 2017 non viene accettata. Se l'istanza non e' quella predefinita, passala con</p><p>> <code>-SqlServer 'localhost\\NOMEISTANZA'</code>. Vale per tutti i motori, non solo SQL Server.</p><h3>1. Scarica il template di progetto</h3><p>Su Windows fai tutto con una riga di PowerShell: scarica il pacchetto, verifica .NET SDK 10 e Node.js 22</p><p>(installando cio' che manca), esegue <code>dotnet restore</code> e <code>npm install</code>, e installa</p><p>l'estensione WUIC Assistant in VS Code.</p><p>Snippet 1:</p><p>Opzioni utili sulla stessa riga: <code>-Dbms mysql</code> (oppure <code>postgres</code>, <code>oracle</code>) per un motore</p><p>diverso da SQL Server — che l'installer installa e configura da se' — e <code>-WithTutorial</code> per</p><p>scaricare anche il database di esempio.</p><p>Quando ha finito, l'ultima schermata e' gia' l'elenco delle cose da fare:</p><p>Snippet 2:</p><p>La stringa di connessione e' gia' pronta: al primo avvio il wizard non chiede altro. Con</p><p><code>-Dbms mysql</code> o <code>-Dbms postgres</code> la riga cambia di conseguenza e porta dentro di se' utente e</p><p>password, perche' la password del superutente <strong>la genera l'installer</strong>; la stessa password</p><p>viene salvata in <code>wuic-secrets.json</code>, accanto all'installazione, ed e' l'unico posto in cui</p><p>resta scritta.</p><p>Il percorso manuale resta valido e funziona su qualunque sistema:</p><p>Parti dal pacchetto <code>WuicTest-src-*.zip</code> (link nella sezione <strong>Download</strong> del sito).</p><p>Estrailo in una cartella di lavoro, es. <code>C:\\dev\\WuicTest</code> (i file vanno direttamente nella root,</p><p>NON dentro una sottocartella <code>src/</code>). Il pacchetto contiene:</p><ul><li><code>WuicTest.csproj</code> → progetto host con <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular con <code>package.json</code> che referenzia <code>wuic-framework-lib</code> da npm registry</li><li><code>appsettings.json</code> preconfigurato in modalita' <code>firstRun = "true"</code> con placeholder <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 template pronti (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Non serve clonare il repository del framework</strong>: <code>WuicCore</code> arriva come pacchetto NuGet da</p><p>> <code>nuget.org</code> e <code>wuic-framework-lib</code> come pacchetto npm da npm registry. Il sorgente del framework</p><p>> serve solo se vuoi modificarlo — tipicamente non e' il tuo caso.</p><p>> <strong>npm 10.9.x e i pacchetti precedenti alla 1.7.1</strong>: quei pacchetti non contengono</p><p>> <code>package-lock.json</code>, e senza lock npm 10.9.x (quello che installa Node 22 LTS) si ferma con</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> mentre risolve i peer. Scarica il lock</p><p>> pubblicato accanto alla release — <code>https://wuic-framework.com/downloads/locks/<nome-zip>.package-lock.json</code></p><p>> — mettilo in <code>wwwroot/</code> e rilancia <code>npm install</code>. Il one-liner <code>-Src</code> lo fa da solo.</p><h3>2. Database</h3><p>Serve un'istanza del motore raggiungibile. <strong>Con il one-liner non devi fare niente</strong>: la</p><p>installa e la configura lui, e la stringa di connessione da incollare nel wizard e' l'ultima</p><p>cosa che stampa. Nel percorso manuale l'istanza deve essere gia' presente.</p><p>Connessioni in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menu, tabelle, colonne, board, utenti)</li><li><code>DataSQLConnection</code> — DB dati applicativi</li></ul><p>Se e' la prima installazione (<code>AppSettings.firstRun = "true"</code> nel template),</p><p>il wizard di scaffolding al primo avvio crea lo schema metadata e popola il DB dati.</p><p>Vedi la pagina <em>Scaffolding iniziale</em> per il flusso guidato.</p><h3>3. Backend (.NET)</h3><p>Dalla root della cartella estratta (es. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>Il backend espone le API su <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>In una seconda shell, dalla sottocartella <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>Il frontend e' disponibile su <code>http://localhost:4200</code>.</p><p>Login di default (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (opzionale)</h3><p>Il RAG Chatbot (<code>Amministrazione > RAG Chat</code>) gira <strong>dentro il backend .NET</strong>:</p><p>il motore di retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) viene caricato dal backend quando <code>AppSettings.rag-use-dotnet-engine</code></p><p>e' <code>"true"</code> (default nei pacchetti di release). **Niente Python, niente venv,</p><p>nessun server separato da avviare.**</p><p>Alla <strong>prima</strong> apertura del chatbot (o a fine first-run) il backend scarica da</p><p>solo modelli ONNX (<code>bge-m3</code> + reranker), tokenizer e indice (~4,5 GB) da</p><p><code>rag-engine-models-url</code> (default <code>https://wuic-framework.com/rag-models</code>) in</p><p><code>rag-engine/artifacts/</code>. Serve una connessione internet una sola volta; il</p><p>download gira in background (1-5 min) e a inizio/fine download arriva una</p><p>notifica in-app. Nel frattempo il componente mostra lo stato <strong>RAG offline</strong> e</p><p>il resto dell'applicazione funziona normalmente.</p><p>Chiavi <code>AppSettings</code> rilevanti (tutte con default gia' pronti):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — attiva l'engine .NET (<code>false</code> = fallback Python, vedi sotto)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: con GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/query, su CPU ~15-25 s/query</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = sorgenti framework solo come firma; <code>internal</code> = indice integrale</li><li><code>rag-engine-models-url</code> — sorgente del download al primo avvio</li><li><code>rag-engine-cuda-path</code> = (vuoto) — cartella delle DLL CUDA/cuDNN se non installate a livello di sistema</li></ul><p>Per la chat con LLM valorizza <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude</p><p>via Anthropic, oppure un modello locale via Ollama con <code>rag-llm-base-url</code>).</p><p>Senza provider funziona solo la modalita' retrieval (ricerca snippet).</p><p>Dettaglio delle chiavi nella pagina <em>AppSettings</em>.</p><p>> Lo stack storico Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> su</p><p>> <code>127.0.0.1:8765</code>) resta utilizzabile solo come fallback con</p><p>> <code>rag-use-dotnet-engine = "false"</code> e non e' incluso nei pacchetti di release.</p><h2>Riepilogo servizi</h2><table><thead><tr><th>Servizio</th><th>Porta</th><th>Obbligatorio</th><th>Comando rapido</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>si</td><td>(servizio Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>si</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>si</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>no</td><td>caricato dal backend alla prima chat</td></tr></tbody></table><h2>Quick Start — primo componente</h2><p>1. Configura endpoint AsmxProxy.</p><p>2. Definisci route metadata e colonne.</p><p>3. Monta <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
1156
|
+
"html": "<h1>Panoramica Framework</h1><p>WUIC Framework e' una piattaforma metadata-driven per creare interfacce business in modo rapido e coerente.</p><h2>Cosa include</h2><ul><li>DataSource e DataRepeater per orchestrare dati e rendering.</li><li>Archetypes visuali (list, map, scheduler, chart, carousel).</li><li>Designer runtime per dashboard e template dinamici.</li><li>Workflow designer/runner per processi operativi.</li><li>RAG Chatbot per interrogare la codebase in linguaggio naturale.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL e Oracle tramite provider drop-in (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Avvio ambiente dev</h2><p>Lo stack WUIC e' composto da piu' servizi. Avviali nell'ordine indicato.</p><h3>Prerequisiti</h3><table><thead><tr><th>Cosa</th><th>Verifica</th><th>Note</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle per IIS in produzione</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 e' la versione con cui il pacchetto e' testato; con npm 10.9.x installa solo grazie al <code>package-lock.json</code> incluso</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>La PowerShell preinstallata su Windows basta: <code>rename-project.ps1</code> e gli script <code>llm-workspace/</code> girano anche su 5.1. PowerShell 7 e' consigliata, non richiesta</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Se manca, <strong>il one-liner lo installa da se'</strong> (SQL Server Express, o il motore scelto con <code>-Dbms</code>); su Windows Server no, vedi il riquadro sotto. 2019 basta per i pacchetti senza <code>.bak</code>; il tutorial <code>.bak</code> e' un backup di SQL Server 2022 e richiede <strong>2022 o superiore</strong></td></tr><tr><td>Linux (installer <code>install.sh</code>)</td><td><code>lsb_release -ds</code></td><td><strong>Ubuntu 22.04 o 24.04 LTS</strong> (24.04 raccomandata): sono le uniche Ubuntu su cui Microsoft supporta SQL Server, la <strong>26.04 non e' supportata</strong> (<a href=\"https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">Supported platforms</a>). Stessa raccomandazione con MySQL, PostgreSQL e Oracle, perche' l'installer e' provato su quelle</td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Opzionale: accelera il RAG Chatbot (senza GPU gira su CPU)</td></tr></tbody></table><p>> <strong>Su Windows Server il database va installato prima.</strong> Il one-liner si procura i componenti</p><p>> mancanti tramite <code>winget</code>, che su Windows Server non e' presente: senza un'istanza gia'</p><p>> raggiungibile l'installazione si ferma con `No SQL Server instance reachable and winget is</p><p>> missing`. Installa quindi il motore prima di lanciare la riga - per SQL Server serve la</p><p>> <strong>2019 o superiore</strong> (la Express basta; <strong>2022 o superiore</strong> per il tutorial <code>.bak</code>), e una</p><p>> 2017 non viene accettata. Se l'istanza non e' quella predefinita, passala con</p><p>> <code>-SqlServer 'localhost\\NOMEISTANZA'</code>. Vale per tutti i motori, non solo SQL Server.</p><h3>1. Scarica il template di progetto</h3><p>Su Windows fai tutto con una riga di PowerShell: scarica il pacchetto, verifica .NET SDK 10 e Node.js 22</p><p>(installando cio' che manca), esegue <code>dotnet restore</code> e <code>npm install</code>, e installa</p><p>l'estensione WUIC Assistant in VS Code.</p><p>Snippet 1:</p><p>Opzioni utili sulla stessa riga: <code>-Dbms mysql</code> (oppure <code>postgres</code>, <code>oracle</code>) per un motore</p><p>diverso da SQL Server — che l'installer installa e configura da se' — e <code>-WithTutorial</code> per</p><p>scaricare anche il database di esempio.</p><p>Quando ha finito, l'ultima schermata e' gia' l'elenco delle cose da fare:</p><p>Snippet 2:</p><p>La stringa di connessione e' gia' pronta: al primo avvio il wizard non chiede altro. Con</p><p><code>-Dbms mysql</code> o <code>-Dbms postgres</code> la riga cambia di conseguenza e porta dentro di se' utente e</p><p>password, perche' la password del superutente <strong>la genera l'installer</strong>; la stessa password</p><p>viene salvata in <code>wuic-secrets.json</code>, accanto all'installazione, ed e' l'unico posto in cui</p><p>resta scritta.</p><p>Il percorso manuale resta valido e funziona su qualunque sistema:</p><p>Parti dal pacchetto <code>WuicTest-src-*.zip</code> (link nella sezione <strong>Download</strong> del sito).</p><p>Estrailo in una cartella di lavoro, es. <code>C:\\dev\\WuicTest</code> (i file vanno direttamente nella root,</p><p>NON dentro una sottocartella <code>src/</code>). Il pacchetto contiene:</p><ul><li><code>WuicTest.csproj</code> → progetto host con <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular con <code>package.json</code> che referenzia <code>wuic-framework-lib</code> da npm registry</li><li><code>appsettings.json</code> preconfigurato in modalita' <code>firstRun = "true"</code> con placeholder <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 template pronti (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Non serve clonare il repository del framework</strong>: <code>WuicCore</code> arriva come pacchetto NuGet da</p><p>> <code>nuget.org</code> e <code>wuic-framework-lib</code> come pacchetto npm da npm registry. Il sorgente del framework</p><p>> serve solo se vuoi modificarlo — tipicamente non e' il tuo caso.</p><p>> <strong>npm 10.9.x e i pacchetti precedenti alla 1.7.1</strong>: quei pacchetti non contengono</p><p>> <code>package-lock.json</code>, e senza lock npm 10.9.x (quello che installa Node 22 LTS) si ferma con</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> mentre risolve i peer. Scarica il lock</p><p>> pubblicato accanto alla release — <code>https://wuic-framework.com/downloads/locks/<nome-zip>.package-lock.json</code></p><p>> — mettilo in <code>wwwroot/</code> e rilancia <code>npm install</code>. Il one-liner <code>-Src</code> lo fa da solo.</p><h3>2. Database</h3><p>Serve un'istanza del motore raggiungibile. <strong>Con il one-liner non devi fare niente</strong>: la</p><p>installa e la configura lui, e la stringa di connessione da incollare nel wizard e' l'ultima</p><p>cosa che stampa. Nel percorso manuale l'istanza deve essere gia' presente.</p><p>Connessioni in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menu, tabelle, colonne, board, utenti)</li><li><code>DataSQLConnection</code> — DB dati applicativi</li></ul><p>Se e' la prima installazione (<code>AppSettings.firstRun = "true"</code> nel template),</p><p>il wizard di scaffolding al primo avvio crea lo schema metadata e popola il DB dati.</p><p>Vedi la pagina <em>Scaffolding iniziale</em> per il flusso guidato.</p><h3>3. Backend (.NET)</h3><p>Dalla root della cartella estratta (es. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>Il backend espone le API su <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>In una seconda shell, dalla sottocartella <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>Il frontend e' disponibile su <code>http://localhost:4200</code>.</p><p>Login di default (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (opzionale)</h3><p>Il RAG Chatbot (<code>Amministrazione > RAG Chat</code>) gira <strong>dentro il backend .NET</strong>:</p><p>il motore di retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) viene caricato dal backend quando <code>AppSettings.rag-use-dotnet-engine</code></p><p>e' <code>"true"</code> (default nei pacchetti di release). **Niente Python, niente venv,</p><p>nessun server separato da avviare.**</p><p>Alla <strong>prima</strong> apertura del chatbot (o a fine first-run) il backend scarica da</p><p>solo modelli ONNX (<code>bge-m3</code> + reranker), tokenizer e indice (~4,5 GB) da</p><p><code>rag-engine-models-url</code> (default <code>https://wuic-framework.com/rag-models</code>) in</p><p><code>rag-engine/artifacts/</code>. Serve una connessione internet una sola volta; il</p><p>download gira in background (1-5 min) e a inizio/fine download arriva una</p><p>notifica in-app. Nel frattempo il componente mostra lo stato <strong>RAG offline</strong> e</p><p>il resto dell'applicazione funziona normalmente.</p><p>Chiavi <code>AppSettings</code> rilevanti (tutte con default gia' pronti):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — attiva l'engine .NET (<code>false</code> = fallback Python, vedi sotto)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: con GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/query, su CPU ~15-25 s/query</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = sorgenti framework solo come firma; <code>internal</code> = indice integrale</li><li><code>rag-engine-models-url</code> — sorgente del download al primo avvio</li><li><code>rag-engine-cuda-path</code> = (vuoto) — cartella delle DLL CUDA/cuDNN se non installate a livello di sistema</li></ul><p>Per la chat con LLM valorizza <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude</p><p>via Anthropic, oppure un modello locale via Ollama con <code>rag-llm-base-url</code>).</p><p>Senza provider funziona solo la modalita' retrieval (ricerca snippet).</p><p>Dettaglio delle chiavi nella pagina <em>AppSettings</em>.</p><p>> Lo stack storico Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> su</p><p>> <code>127.0.0.1:8765</code>) resta utilizzabile solo come fallback con</p><p>> <code>rag-use-dotnet-engine = "false"</code> e non e' incluso nei pacchetti di release.</p><h2>Riepilogo servizi</h2><table><thead><tr><th>Servizio</th><th>Porta</th><th>Obbligatorio</th><th>Comando rapido</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>si</td><td>(servizio Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>si</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>si</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>no</td><td>caricato dal backend alla prima chat</td></tr></tbody></table><h2>Quick Start — primo componente</h2><p>1. Configura endpoint AsmxProxy.</p><p>2. Definisci route metadata e colonne.</p><p>3. Monta <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
1157
1157
|
"codeSamples": [
|
|
1158
1158
|
{
|
|
1159
1159
|
"id": "code_1",
|
|
@@ -7861,7 +7861,7 @@ const frameworkDocsContent = {
|
|
|
7861
7861
|
{
|
|
7862
7862
|
"id": "overview",
|
|
7863
7863
|
"title": "Overview",
|
|
7864
|
-
"html": "<h1>Framework Overview</h1><p>WUIC Framework is a metadata-driven platform for building business interfaces quickly and consistently.</p><h2>What It Includes</h2><ul><li>DataSource and DataRepeater for orchestrating data and rendering.</li><li>Visual archetypes (list, map, scheduler, chart, carousel).</li><li>Runtime designer for dashboards and dynamic templates.</li><li>Workflow designer/runner for operational processes.</li><li>RAG Chatbot for querying the codebase in natural language.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL and Oracle via drop-in providers (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Starting the Dev Environment</h2><p>The WUIC stack is composed of several services. Start them in the order below.</p><h3>Prerequisites</h3><table><thead><tr><th>What</th><th>Check</th><th>Notes</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle for IIS in production</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>22 is the version the package is tested with; on npm 10.9.x it installs thanks to the bundled <code>package-lock.json</code></td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>The Windows PowerShell that ships with Windows is enough: <code>rename-project.ps1</code> and the <code>llm-workspace/</code> scripts run on 5.1 too. PowerShell 7 is recommended, not required</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>If missing, <strong>the one-liner installs it for you</strong> (SQL Server Express, or the engine chosen with <code>-Dbms</code>); not on Windows Server, see the box below. 2019 is enough for the packages without <code>.bak</code>; the <code>.bak</code> tutorial is a SQL Server 2022 backup and needs <strong>2022 or newer</strong></td></tr><tr><td>NVIDIA GPU (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optional: speeds up the RAG Chatbot (runs on CPU without it)</td></tr></tbody></table><p>> <strong>On Windows Server the database must be installed first.</strong> The one-liner pulls missing</p><p>> components through <code>winget</code>, which is not present on Windows Server: without an instance</p><p>> already reachable the installation stops with `No SQL Server instance reachable and winget is</p><p>> missing`. Install the engine before running the line - SQL Server must be <strong>2019 or newer</strong></p><p>> (Express is enough; <strong>2022 or newer</strong> for the <code>.bak</code> tutorial), and a 2017 instance is not</p><p>> accepted. If the instance is not the default one, pass it with</p><p>> <code>-SqlServer 'localhost\\INSTANCENAME'</code>. This applies to every engine, not just SQL Server.</p><h3>1. Download the project template</h3><p>On Windows one PowerShell line does all of it: it downloads the package, checks the .NET SDK 10</p><p>and Node.js 22 (installing what is missing), runs <code>dotnet restore</code> and <code>npm install</code>,</p><p>and installs the WUIC Assistant extension in VS Code.</p><p>Snippet 1:</p><p>Useful options on the same line: <code>-Dbms mysql</code> (or <code>postgres</code>, <code>oracle</code>) for an engine other</p><p>than SQL Server — the installer installs and configures it for you — and <code>-WithTutorial</code> to</p><p>download the sample database as well.</p><p>When it is done, the last screen is already your to-do list:</p><p>Snippet 2:</p><p>The connection string is ready to use: at first start the wizard asks for nothing else. With</p><p><code>-Dbms mysql</code> or <code>-Dbms postgres</code> that line changes accordingly and carries user and password</p><p>inside it, because the superuser password is <strong>generated by the installer</strong>; the same password</p><p>is saved in <code>wuic-secrets.json</code>, next to the installation, and that is the only place where it</p><p>stays written.</p><p>The manual path still works, on any operating system:</p><p>Start from the <code>WuicTest-src-*.zip</code> package (link in the <strong>Download</strong> section of the site).</p><p>Extract it to a working folder, e.g. <code>C:\\dev\\WuicTest</code> (files go directly at the root —</p><p>NOT inside a <code>src/</code> subfolder). The package contains:</p><ul><li><code>WuicTest.csproj</code> → host project with <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → Angular app whose <code>package.json</code> references <code>wuic-framework-lib</code> from the npm registry</li><li><code>appsettings.json</code> preconfigured in <code>firstRun = "true"</code> mode with <code>__SET_*__</code> placeholders</li><li><code>appsettings-samples/</code> → 6 ready templates (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>No need to clone the framework repository</strong>: <code>WuicCore</code> ships as a NuGet package from</p><p>> <code>nuget.org</code> and <code>wuic-framework-lib</code> as an npm package from the npm registry. The framework</p><p>> source is only needed if you want to modify it — typically not your case.</p><p>> <strong>npm 10.9.x and packages older than 1.7.1</strong>: those packages carry no <code>package-lock.json</code>, and</p><p>> without a lock npm 10.9.x (the version Node 22 LTS installs) stops with</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> while resolving peer dependencies.</p><p>> Download the lock published next to the release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<zip-name>.package-lock.json</code> — drop it in <code>wwwroot/</code></p><p>> and run <code>npm install</code> again. The <code>-Src</code> one-liner does it for you.</p><h3>2. Database</h3><p>You need a reachable engine instance. <strong>With the one-liner there is nothing to do</strong>: it</p><p>installs and configures the instance, and the connection string to paste into the wizard is the</p><p>last thing it prints. On the manual path the instance must already exist.</p><p>Connections in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — metadata DB (menu, tables, columns, boards, users)</li><li><code>DataSQLConnection</code> — application data DB</li></ul><p>If this is the first installation (<code>AppSettings.firstRun = "true"</code> in the template),</p><p>the scaffolding wizard on first startup creates the metadata schema and populates the data DB.</p><p>See the <em>Initial Scaffolding</em> page for the guided flow.</p><h3>3. Backend (.NET)</h3><p>From the root of the extracted folder (e.g. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>The backend exposes APIs on <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>In a second shell, from the <code>wwwroot/</code> subfolder:</p><p>Snippet 4:</p><p>The frontend is available on <code>http://localhost:4200</code>.</p><p>Default login (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optional)</h3><p>The RAG Chatbot (<code>Administration > RAG Chat</code>) runs <strong>inside the .NET backend</strong>:</p><p>the retrieval engine (<code>rag-engine/WuicRagEngine.dll</code>, in-process ONNX Runtime)</p><p>is loaded by the backend when <code>AppSettings.rag-use-dotnet-engine</code> is <code>"true"</code></p><p>(the default in release packages). **No Python, no venv, no separate server</p><p>to start.**</p><p>The <strong>first</strong> time the chatbot is opened (or at the end of the first run) the</p><p>backend downloads by itself the ONNX models (<code>bge-m3</code> + reranker), tokenizer</p><p>and index (~4.5 GB) from <code>rag-engine-models-url</code> (default</p><p><code>https://wuic-framework.com/rag-models</code>) into <code>rag-engine/artifacts/</code>. An</p><p>internet connection is needed only once; the download runs in the background</p><p>(1-5 min) and an in-app notification is sent when it starts and when it ends.</p><p>Meanwhile the component shows the <strong>RAG offline</strong> status and the rest of the</p><p>application works normally.</p><p>Relevant <code>AppSettings</code> keys (all with ready defaults):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — enables the .NET engine (<code>false</code> = Python fallback, see below)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: with an NVIDIA GPU (CUDA 12.x + cuDNN 9) ~1 s/query, on CPU ~15-25 s/query</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = framework sources as signatures only; <code>internal</code> = full index</li><li><code>rag-engine-models-url</code> — download source on first start</li><li><code>rag-engine-cuda-path</code> = (empty) — folder of the CUDA/cuDNN DLLs when they are not installed system-wide</li></ul><p>For LLM chat set <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude via Anthropic,</p><p>or a local model via Ollama with <code>rag-llm-base-url</code>). Without a provider only</p><p>the retrieval mode (snippet search) works. Key details on the <em>AppSettings</em></p><p>page.</p><p>> The legacy Python stack (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> on</p><p>> <code>127.0.0.1:8765</code>) is only usable as a fallback with</p><p>> <code>rag-use-dotnet-engine = "false"</code> and is not shipped in release packages.</p><h2>Services Summary</h2><table><thead><tr><th>Service</th><th>Port</th><th>Required</th><th>Quick command</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>yes</td><td>(Windows service)</td></tr><tr><td>.NET Backend</td><td>5000</td><td>yes</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Angular Frontend</td><td>4200</td><td>yes</td><td><code>npm run serve:dev</code></td></tr><tr><td>.NET RAG engine (ONNX)</td><td>in-process</td><td>no</td><td>loaded by the backend on the first chat</td></tr></tbody></table><h2>Quick Start — First Component</h2><p>1. Configure the AsmxProxy endpoint.</p><p>2. Define route metadata and columns.</p><p>3. Mount <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
7864
|
+
"html": "<h1>Framework Overview</h1><p>WUIC Framework is a metadata-driven platform for building business interfaces quickly and consistently.</p><h2>What It Includes</h2><ul><li>DataSource and DataRepeater for orchestrating data and rendering.</li><li>Visual archetypes (list, map, scheduler, chart, carousel).</li><li>Runtime designer for dashboards and dynamic templates.</li><li>Workflow designer/runner for operational processes.</li><li>RAG Chatbot for querying the codebase in natural language.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL and Oracle via drop-in providers (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Starting the Dev Environment</h2><p>The WUIC stack is composed of several services. Start them in the order below.</p><h3>Prerequisites</h3><table><thead><tr><th>What</th><th>Check</th><th>Notes</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle for IIS in production</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>22 is the version the package is tested with; on npm 10.9.x it installs thanks to the bundled <code>package-lock.json</code></td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>The Windows PowerShell that ships with Windows is enough: <code>rename-project.ps1</code> and the <code>llm-workspace/</code> scripts run on 5.1 too. PowerShell 7 is recommended, not required</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>If missing, <strong>the one-liner installs it for you</strong> (SQL Server Express, or the engine chosen with <code>-Dbms</code>); not on Windows Server, see the box below. 2019 is enough for the packages without <code>.bak</code>; the <code>.bak</code> tutorial is a SQL Server 2022 backup and needs <strong>2022 or newer</strong></td></tr><tr><td>Linux (<code>install.sh</code> installer)</td><td><code>lsb_release -ds</code></td><td><strong>Ubuntu 22.04 or 24.04 LTS</strong> (24.04 recommended): they are the only Ubuntu releases Microsoft supports for SQL Server, and <strong>26.04 is not supported</strong> (<a href=\"https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">Supported platforms</a>). Same recommendation with MySQL, PostgreSQL and Oracle, because the installer is tested on those releases</td></tr><tr><td>NVIDIA GPU (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optional: speeds up the RAG Chatbot (runs on CPU without it)</td></tr></tbody></table><p>> <strong>On Windows Server the database must be installed first.</strong> The one-liner pulls missing</p><p>> components through <code>winget</code>, which is not present on Windows Server: without an instance</p><p>> already reachable the installation stops with `No SQL Server instance reachable and winget is</p><p>> missing`. Install the engine before running the line - SQL Server must be <strong>2019 or newer</strong></p><p>> (Express is enough; <strong>2022 or newer</strong> for the <code>.bak</code> tutorial), and a 2017 instance is not</p><p>> accepted. If the instance is not the default one, pass it with</p><p>> <code>-SqlServer 'localhost\\INSTANCENAME'</code>. This applies to every engine, not just SQL Server.</p><h3>1. Download the project template</h3><p>On Windows one PowerShell line does all of it: it downloads the package, checks the .NET SDK 10</p><p>and Node.js 22 (installing what is missing), runs <code>dotnet restore</code> and <code>npm install</code>,</p><p>and installs the WUIC Assistant extension in VS Code.</p><p>Snippet 1:</p><p>Useful options on the same line: <code>-Dbms mysql</code> (or <code>postgres</code>, <code>oracle</code>) for an engine other</p><p>than SQL Server — the installer installs and configures it for you — and <code>-WithTutorial</code> to</p><p>download the sample database as well.</p><p>When it is done, the last screen is already your to-do list:</p><p>Snippet 2:</p><p>The connection string is ready to use: at first start the wizard asks for nothing else. With</p><p><code>-Dbms mysql</code> or <code>-Dbms postgres</code> that line changes accordingly and carries user and password</p><p>inside it, because the superuser password is <strong>generated by the installer</strong>; the same password</p><p>is saved in <code>wuic-secrets.json</code>, next to the installation, and that is the only place where it</p><p>stays written.</p><p>The manual path still works, on any operating system:</p><p>Start from the <code>WuicTest-src-*.zip</code> package (link in the <strong>Download</strong> section of the site).</p><p>Extract it to a working folder, e.g. <code>C:\\dev\\WuicTest</code> (files go directly at the root —</p><p>NOT inside a <code>src/</code> subfolder). The package contains:</p><ul><li><code>WuicTest.csproj</code> → host project with <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → Angular app whose <code>package.json</code> references <code>wuic-framework-lib</code> from the npm registry</li><li><code>appsettings.json</code> preconfigured in <code>firstRun = "true"</code> mode with <code>__SET_*__</code> placeholders</li><li><code>appsettings-samples/</code> → 6 ready templates (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>No need to clone the framework repository</strong>: <code>WuicCore</code> ships as a NuGet package from</p><p>> <code>nuget.org</code> and <code>wuic-framework-lib</code> as an npm package from the npm registry. The framework</p><p>> source is only needed if you want to modify it — typically not your case.</p><p>> <strong>npm 10.9.x and packages older than 1.7.1</strong>: those packages carry no <code>package-lock.json</code>, and</p><p>> without a lock npm 10.9.x (the version Node 22 LTS installs) stops with</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> while resolving peer dependencies.</p><p>> Download the lock published next to the release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<zip-name>.package-lock.json</code> — drop it in <code>wwwroot/</code></p><p>> and run <code>npm install</code> again. The <code>-Src</code> one-liner does it for you.</p><h3>2. Database</h3><p>You need a reachable engine instance. <strong>With the one-liner there is nothing to do</strong>: it</p><p>installs and configures the instance, and the connection string to paste into the wizard is the</p><p>last thing it prints. On the manual path the instance must already exist.</p><p>Connections in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — metadata DB (menu, tables, columns, boards, users)</li><li><code>DataSQLConnection</code> — application data DB</li></ul><p>If this is the first installation (<code>AppSettings.firstRun = "true"</code> in the template),</p><p>the scaffolding wizard on first startup creates the metadata schema and populates the data DB.</p><p>See the <em>Initial Scaffolding</em> page for the guided flow.</p><h3>3. Backend (.NET)</h3><p>From the root of the extracted folder (e.g. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>The backend exposes APIs on <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>In a second shell, from the <code>wwwroot/</code> subfolder:</p><p>Snippet 4:</p><p>The frontend is available on <code>http://localhost:4200</code>.</p><p>Default login (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optional)</h3><p>The RAG Chatbot (<code>Administration > RAG Chat</code>) runs <strong>inside the .NET backend</strong>:</p><p>the retrieval engine (<code>rag-engine/WuicRagEngine.dll</code>, in-process ONNX Runtime)</p><p>is loaded by the backend when <code>AppSettings.rag-use-dotnet-engine</code> is <code>"true"</code></p><p>(the default in release packages). **No Python, no venv, no separate server</p><p>to start.**</p><p>The <strong>first</strong> time the chatbot is opened (or at the end of the first run) the</p><p>backend downloads by itself the ONNX models (<code>bge-m3</code> + reranker), tokenizer</p><p>and index (~4.5 GB) from <code>rag-engine-models-url</code> (default</p><p><code>https://wuic-framework.com/rag-models</code>) into <code>rag-engine/artifacts/</code>. An</p><p>internet connection is needed only once; the download runs in the background</p><p>(1-5 min) and an in-app notification is sent when it starts and when it ends.</p><p>Meanwhile the component shows the <strong>RAG offline</strong> status and the rest of the</p><p>application works normally.</p><p>Relevant <code>AppSettings</code> keys (all with ready defaults):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — enables the .NET engine (<code>false</code> = Python fallback, see below)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: with an NVIDIA GPU (CUDA 12.x + cuDNN 9) ~1 s/query, on CPU ~15-25 s/query</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = framework sources as signatures only; <code>internal</code> = full index</li><li><code>rag-engine-models-url</code> — download source on first start</li><li><code>rag-engine-cuda-path</code> = (empty) — folder of the CUDA/cuDNN DLLs when they are not installed system-wide</li></ul><p>For LLM chat set <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude via Anthropic,</p><p>or a local model via Ollama with <code>rag-llm-base-url</code>). Without a provider only</p><p>the retrieval mode (snippet search) works. Key details on the <em>AppSettings</em></p><p>page.</p><p>> The legacy Python stack (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> on</p><p>> <code>127.0.0.1:8765</code>) is only usable as a fallback with</p><p>> <code>rag-use-dotnet-engine = "false"</code> and is not shipped in release packages.</p><h2>Services Summary</h2><table><thead><tr><th>Service</th><th>Port</th><th>Required</th><th>Quick command</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>yes</td><td>(Windows service)</td></tr><tr><td>.NET Backend</td><td>5000</td><td>yes</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Angular Frontend</td><td>4200</td><td>yes</td><td><code>npm run serve:dev</code></td></tr><tr><td>.NET RAG engine (ONNX)</td><td>in-process</td><td>no</td><td>loaded by the backend on the first chat</td></tr></tbody></table><h2>Quick Start — First Component</h2><p>1. Configure the AsmxProxy endpoint.</p><p>2. Define route metadata and columns.</p><p>3. Mount <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
7865
7865
|
"codeSamples": [
|
|
7866
7866
|
{
|
|
7867
7867
|
"id": "code_1",
|
|
@@ -14569,7 +14569,7 @@ const frameworkDocsContent = {
|
|
|
14569
14569
|
{
|
|
14570
14570
|
"id": "overview",
|
|
14571
14571
|
"title": "Overview",
|
|
14572
|
-
"html": "<h1>Panorama du Framework</h1><p>WUIC Framework est une plateforme pilotee par metadata pour creer des interfaces metier de maniere rapide et coherente.</p><h2>Contenu</h2><ul><li>DataSource et DataRepeater pour orchestrer les donnees et le rendu.</li><li>Archetypes visuels (list, map, scheduler, chart, carousel).</li><li>Designer runtime pour les dashboards et les templates dynamiques.</li><li>Workflow designer/runner pour les processus operationnels.</li><li>RAG Chatbot pour interroger la codebase en langage naturel.</li><li>Multi-SGBD : SQL Server, MySQL, PostgreSQL et Oracle via des providers drop-in (<code>dbms</code> : <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Demarrage de l'environnement dev</h2><p>La stack WUIC est composee de plusieurs services. Demarrez-les dans l'ordre indique.</p><h3>Prerequis</h3><table><thead><tr><th>Element</th><th>Verification</th><th>Notes</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle pour IIS en production</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 est la version avec laquelle le paquet est teste ; avec npm 10.9.x l'installation passe grace au <code>package-lock.json</code> inclus</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>Le Windows PowerShell livre avec Windows suffit : <code>rename-project.ps1</code> et les scripts <code>llm-workspace/</code> fonctionnent aussi sur 5.1. PowerShell 7 est recommande, pas requis</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>S'il manque, <strong>la ligne unique l'installe elle-meme</strong> (SQL Server Express, ou le moteur choisi avec <code>-Dbms</code>) ; pas sur Windows Server, voir l'encadre ci-dessous. 2019 suffit pour les packages sans <code>.bak</code> ; le tutoriel <code>.bak</code> est une sauvegarde SQL Server 2022 et exige <strong>2022 ou plus recent</strong></td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optionnel : accelere le RAG Chatbot (sans GPU il tourne sur CPU)</td></tr></tbody></table><p>> <strong>Sur Windows Server la base de donnees doit etre installee avant.</strong> La ligne unique recupere</p><p>> les composants manquants via <code>winget</code>, absent sur Windows Server : sans une instance deja</p><p>> joignable, l'installation s'arrete avec `No SQL Server instance reachable and winget is</p><p>> missing`. Installe donc le moteur avant de lancer la ligne - SQL Server doit etre **2019 ou</p><p>> superieur<strong> (Express suffit ; </strong>2022 ou superieur** pour le tutoriel <code>.bak</code>), et une 2017</p><p>> n'est pas acceptee. Si l'instance n'est pas celle par defaut, passe-la avec</p><p>> <code>-SqlServer 'localhost\\NOMINSTANCE'</code>. Cela vaut pour tous les moteurs, pas seulement SQL Server.</p><h3>1. Telecharger le template de projet</h3><p>Sous Windows, une seule ligne PowerShell fait tout : elle telecharge le paquet, verifie le SDK .NET 10</p><p>et Node.js 22 (en installant ce qui manque), execute <code>dotnet restore</code> et <code>npm install</code>,</p><p>et installe l'extension WUIC Assistant dans VS Code.</p><p>Snippet 1:</p><p>Options utiles sur la meme ligne : <code>-Dbms mysql</code> (ou <code>postgres</code>, <code>oracle</code>) pour un moteur</p><p>autre que SQL Server — l'installeur l'installe et le configure lui-meme — et <code>-WithTutorial</code></p><p>pour telecharger aussi la base de donnees d'exemple.</p><p>Quand c'est termine, le dernier ecran est deja votre liste de taches :</p><p>Snippet 2:</p><p>La chaine de connexion est prete a l'emploi : au premier demarrage le wizard ne demande rien</p><p>d'autre. Avec <code>-Dbms mysql</code> ou <code>-Dbms postgres</code> cette ligne change en consequence et porte en</p><p>elle l'utilisateur et le mot de passe, parce que le mot de passe du superutilisateur est</p><p><strong>genere par l'installeur</strong> ; ce meme mot de passe est enregistre dans <code>wuic-secrets.json</code>, a</p><p>cote de l'installation, et c'est le seul endroit ou il reste ecrit.</p><p>Le chemin manuel reste valable, sur n'importe quel systeme :</p><p>Partez du paquet <code>WuicTest-src-*.zip</code> (lien dans la section <strong>Download</strong> du site).</p><p>Extrayez-le dans un dossier de travail, ex. <code>C:\\dev\\WuicTest</code> (les fichiers vont directement</p><p>a la racine, PAS dans un sous-dossier <code>src/</code>). Le paquet contient :</p><ul><li><code>WuicTest.csproj</code> → projet host avec <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular avec <code>package.json</code> qui reference <code>wuic-framework-lib</code> depuis le registre npm</li><li><code>appsettings.json</code> preconfigure en mode <code>firstRun = "true"</code> avec placeholders <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 templates prets (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Pas besoin de cloner le repository du framework</strong> : <code>WuicCore</code> arrive comme paquet NuGet</p><p>> depuis <code>nuget.org</code> et <code>wuic-framework-lib</code> comme paquet npm depuis le registre npm. Le source</p><p>> du framework n'est necessaire que si vous voulez le modifier — typiquement pas votre cas.</p><p>> <strong>npm 10.9.x et les paquets anterieurs a la 1.7.1</strong> : ces paquets ne contiennent pas de</p><p>> <code>package-lock.json</code>, et sans lock npm 10.9.x (la version installee par Node 22 LTS) s'arrete avec</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> pendant la resolution des peers.</p><p>> Telechargez le lock publie a cote de la release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<nom-du-zip>.package-lock.json</code> — placez-le dans</p><p>> <code>wwwroot/</code> et relancez <code>npm install</code>. La ligne unique <code>-Src</code> le fait pour vous.</p><h3>2. Base de donnees</h3><p>Il faut une instance du moteur joignable. <strong>Avec la ligne unique, rien a faire</strong> : elle</p><p>installe et configure l'instance, et la chaine de connexion a coller dans le wizard est la</p><p>derniere chose qu'elle affiche. Sur le chemin manuel, l'instance doit deja exister.</p><p>Connexions dans <code>appsettings.json</code> :</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menu, tables, colonnes, board, utilisateurs)</li><li><code>DataSQLConnection</code> — DB donnees applicatives</li></ul><p>S'il s'agit de la premiere installation (<code>AppSettings.firstRun = "true"</code> dans le template),</p><p>le wizard de scaffolding au premier demarrage cree le schema metadata et peuple le DB donnees.</p><p>Voir la page <em>Scaffolding initial</em> pour le flux guide.</p><h3>3. Backend (.NET)</h3><p>Depuis la racine du dossier extrait (ex. <code>C:\\dev\\WuicTest</code>) :</p><p>Snippet 3:</p><p>Le backend expose les API sur <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>Dans un second shell, depuis le sous-dossier <code>wwwroot/</code> :</p><p>Snippet 4:</p><p>Le frontend est disponible sur <code>http://localhost:4200</code>.</p><p>Login par defaut (post-firstRun) : <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optionnel)</h3><p>Le RAG Chatbot (<code>Administration > RAG Chat</code>) tourne <strong>dans le backend .NET</strong> :</p><p>le moteur de retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) est charge par le backend quand <code>AppSettings.rag-use-dotnet-engine</code></p><p>vaut <code>"true"</code> (valeur par defaut des packages de release). **Pas de Python, pas</p><p>de venv, aucun serveur separe a demarrer.**</p><p>A la <strong>premiere</strong> ouverture du chatbot (ou a la fin du first-run) le backend</p><p>telecharge seul les modeles ONNX (<code>bge-m3</code> + reranker), le tokenizer et</p><p>l'index (~4,5 Go) depuis <code>rag-engine-models-url</code> (par defaut</p><p><code>https://wuic-framework.com/rag-models</code>) dans <code>rag-engine/artifacts/</code>. Une</p><p>connexion internet n'est necessaire qu'une seule fois ; le telechargement</p><p>tourne en arriere-plan (1-5 min) et une notification in-app arrive au debut</p><p>et a la fin. Entre-temps le composant affiche l'etat <strong>RAG offline</strong> et le</p><p>reste de l'application fonctionne normalement.</p><p>Cles <code>AppSettings</code> pertinentes (toutes avec des valeurs par defaut pretes) :</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — active le moteur .NET (<code>false</code> = fallback Python, voir ci-dessous)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code> : avec GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/requete, sur CPU ~15-25 s/requete</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = sources du framework en signature seulement ; <code>internal</code> = index integral</li><li><code>rag-engine-models-url</code> — source du telechargement au premier demarrage</li><li><code>rag-engine-cuda-path</code> = (vide) — dossier des DLL CUDA/cuDNN si elles ne sont pas installees au niveau systeme</li></ul><p>Pour le chat avec LLM, renseignez <code>rag-llm-provider</code> + <code>rag-llm-api-key</code></p><p>(Claude via Anthropic, ou un modele local via Ollama avec <code>rag-llm-base-url</code>).</p><p>Sans provider, seul le mode retrieval (recherche de snippets) fonctionne.</p><p>Detail des cles sur la page <em>AppSettings</em>.</p><p>> L'ancien stack Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> sur</p><p>> <code>127.0.0.1:8765</code>) n'est utilisable qu'en fallback avec</p><p>> <code>rag-use-dotnet-engine = "false"</code> et n'est pas inclus dans les packages de release.</p><h2>Recapitulatif des services</h2><table><thead><tr><th>Service</th><th>Port</th><th>Obligatoire</th><th>Commande rapide</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>oui</td><td>(service Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>oui</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>oui</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>non</td><td>charge par le backend au premier chat</td></tr></tbody></table><h2>Quick Start — premier composant</h2><p>1. Configurez l'endpoint AsmxProxy.</p><p>2. Definissez la route metadata et les colonnes.</p><p>3. Montez <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
14572
|
+
"html": "<h1>Panorama du Framework</h1><p>WUIC Framework est une plateforme pilotee par metadata pour creer des interfaces metier de maniere rapide et coherente.</p><h2>Contenu</h2><ul><li>DataSource et DataRepeater pour orchestrer les donnees et le rendu.</li><li>Archetypes visuels (list, map, scheduler, chart, carousel).</li><li>Designer runtime pour les dashboards et les templates dynamiques.</li><li>Workflow designer/runner pour les processus operationnels.</li><li>RAG Chatbot pour interroger la codebase en langage naturel.</li><li>Multi-SGBD : SQL Server, MySQL, PostgreSQL et Oracle via des providers drop-in (<code>dbms</code> : <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Demarrage de l'environnement dev</h2><p>La stack WUIC est composee de plusieurs services. Demarrez-les dans l'ordre indique.</p><h3>Prerequis</h3><table><thead><tr><th>Element</th><th>Verification</th><th>Notes</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle pour IIS en production</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 est la version avec laquelle le paquet est teste ; avec npm 10.9.x l'installation passe grace au <code>package-lock.json</code> inclus</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>Le Windows PowerShell livre avec Windows suffit : <code>rename-project.ps1</code> et les scripts <code>llm-workspace/</code> fonctionnent aussi sur 5.1. PowerShell 7 est recommande, pas requis</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>S'il manque, <strong>la ligne unique l'installe elle-meme</strong> (SQL Server Express, ou le moteur choisi avec <code>-Dbms</code>) ; pas sur Windows Server, voir l'encadre ci-dessous. 2019 suffit pour les packages sans <code>.bak</code> ; le tutoriel <code>.bak</code> est une sauvegarde SQL Server 2022 et exige <strong>2022 ou plus recent</strong></td></tr><tr><td>Linux (installeur <code>install.sh</code>)</td><td><code>lsb_release -ds</code></td><td><strong>Ubuntu 22.04 ou 24.04 LTS</strong> (24.04 recommandee) : ce sont les seules versions d'Ubuntu supportees par Microsoft pour SQL Server, la <strong>26.04 n'est pas supportee</strong> (<a href=\"https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">Supported platforms</a>). Meme recommandation avec MySQL, PostgreSQL et Oracle, car l'installeur est teste sur ces versions</td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optionnel : accelere le RAG Chatbot (sans GPU il tourne sur CPU)</td></tr></tbody></table><p>> <strong>Sur Windows Server la base de donnees doit etre installee avant.</strong> La ligne unique recupere</p><p>> les composants manquants via <code>winget</code>, absent sur Windows Server : sans une instance deja</p><p>> joignable, l'installation s'arrete avec `No SQL Server instance reachable and winget is</p><p>> missing`. Installe donc le moteur avant de lancer la ligne - SQL Server doit etre **2019 ou</p><p>> superieur<strong> (Express suffit ; </strong>2022 ou superieur** pour le tutoriel <code>.bak</code>), et une 2017</p><p>> n'est pas acceptee. Si l'instance n'est pas celle par defaut, passe-la avec</p><p>> <code>-SqlServer 'localhost\\NOMINSTANCE'</code>. Cela vaut pour tous les moteurs, pas seulement SQL Server.</p><h3>1. Telecharger le template de projet</h3><p>Sous Windows, une seule ligne PowerShell fait tout : elle telecharge le paquet, verifie le SDK .NET 10</p><p>et Node.js 22 (en installant ce qui manque), execute <code>dotnet restore</code> et <code>npm install</code>,</p><p>et installe l'extension WUIC Assistant dans VS Code.</p><p>Snippet 1:</p><p>Options utiles sur la meme ligne : <code>-Dbms mysql</code> (ou <code>postgres</code>, <code>oracle</code>) pour un moteur</p><p>autre que SQL Server — l'installeur l'installe et le configure lui-meme — et <code>-WithTutorial</code></p><p>pour telecharger aussi la base de donnees d'exemple.</p><p>Quand c'est termine, le dernier ecran est deja votre liste de taches :</p><p>Snippet 2:</p><p>La chaine de connexion est prete a l'emploi : au premier demarrage le wizard ne demande rien</p><p>d'autre. Avec <code>-Dbms mysql</code> ou <code>-Dbms postgres</code> cette ligne change en consequence et porte en</p><p>elle l'utilisateur et le mot de passe, parce que le mot de passe du superutilisateur est</p><p><strong>genere par l'installeur</strong> ; ce meme mot de passe est enregistre dans <code>wuic-secrets.json</code>, a</p><p>cote de l'installation, et c'est le seul endroit ou il reste ecrit.</p><p>Le chemin manuel reste valable, sur n'importe quel systeme :</p><p>Partez du paquet <code>WuicTest-src-*.zip</code> (lien dans la section <strong>Download</strong> du site).</p><p>Extrayez-le dans un dossier de travail, ex. <code>C:\\dev\\WuicTest</code> (les fichiers vont directement</p><p>a la racine, PAS dans un sous-dossier <code>src/</code>). Le paquet contient :</p><ul><li><code>WuicTest.csproj</code> → projet host avec <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular avec <code>package.json</code> qui reference <code>wuic-framework-lib</code> depuis le registre npm</li><li><code>appsettings.json</code> preconfigure en mode <code>firstRun = "true"</code> avec placeholders <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 templates prets (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Pas besoin de cloner le repository du framework</strong> : <code>WuicCore</code> arrive comme paquet NuGet</p><p>> depuis <code>nuget.org</code> et <code>wuic-framework-lib</code> comme paquet npm depuis le registre npm. Le source</p><p>> du framework n'est necessaire que si vous voulez le modifier — typiquement pas votre cas.</p><p>> <strong>npm 10.9.x et les paquets anterieurs a la 1.7.1</strong> : ces paquets ne contiennent pas de</p><p>> <code>package-lock.json</code>, et sans lock npm 10.9.x (la version installee par Node 22 LTS) s'arrete avec</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> pendant la resolution des peers.</p><p>> Telechargez le lock publie a cote de la release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<nom-du-zip>.package-lock.json</code> — placez-le dans</p><p>> <code>wwwroot/</code> et relancez <code>npm install</code>. La ligne unique <code>-Src</code> le fait pour vous.</p><h3>2. Base de donnees</h3><p>Il faut une instance du moteur joignable. <strong>Avec la ligne unique, rien a faire</strong> : elle</p><p>installe et configure l'instance, et la chaine de connexion a coller dans le wizard est la</p><p>derniere chose qu'elle affiche. Sur le chemin manuel, l'instance doit deja exister.</p><p>Connexions dans <code>appsettings.json</code> :</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menu, tables, colonnes, board, utilisateurs)</li><li><code>DataSQLConnection</code> — DB donnees applicatives</li></ul><p>S'il s'agit de la premiere installation (<code>AppSettings.firstRun = "true"</code> dans le template),</p><p>le wizard de scaffolding au premier demarrage cree le schema metadata et peuple le DB donnees.</p><p>Voir la page <em>Scaffolding initial</em> pour le flux guide.</p><h3>3. Backend (.NET)</h3><p>Depuis la racine du dossier extrait (ex. <code>C:\\dev\\WuicTest</code>) :</p><p>Snippet 3:</p><p>Le backend expose les API sur <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>Dans un second shell, depuis le sous-dossier <code>wwwroot/</code> :</p><p>Snippet 4:</p><p>Le frontend est disponible sur <code>http://localhost:4200</code>.</p><p>Login par defaut (post-firstRun) : <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optionnel)</h3><p>Le RAG Chatbot (<code>Administration > RAG Chat</code>) tourne <strong>dans le backend .NET</strong> :</p><p>le moteur de retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) est charge par le backend quand <code>AppSettings.rag-use-dotnet-engine</code></p><p>vaut <code>"true"</code> (valeur par defaut des packages de release). **Pas de Python, pas</p><p>de venv, aucun serveur separe a demarrer.**</p><p>A la <strong>premiere</strong> ouverture du chatbot (ou a la fin du first-run) le backend</p><p>telecharge seul les modeles ONNX (<code>bge-m3</code> + reranker), le tokenizer et</p><p>l'index (~4,5 Go) depuis <code>rag-engine-models-url</code> (par defaut</p><p><code>https://wuic-framework.com/rag-models</code>) dans <code>rag-engine/artifacts/</code>. Une</p><p>connexion internet n'est necessaire qu'une seule fois ; le telechargement</p><p>tourne en arriere-plan (1-5 min) et une notification in-app arrive au debut</p><p>et a la fin. Entre-temps le composant affiche l'etat <strong>RAG offline</strong> et le</p><p>reste de l'application fonctionne normalement.</p><p>Cles <code>AppSettings</code> pertinentes (toutes avec des valeurs par defaut pretes) :</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — active le moteur .NET (<code>false</code> = fallback Python, voir ci-dessous)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code> : avec GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/requete, sur CPU ~15-25 s/requete</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = sources du framework en signature seulement ; <code>internal</code> = index integral</li><li><code>rag-engine-models-url</code> — source du telechargement au premier demarrage</li><li><code>rag-engine-cuda-path</code> = (vide) — dossier des DLL CUDA/cuDNN si elles ne sont pas installees au niveau systeme</li></ul><p>Pour le chat avec LLM, renseignez <code>rag-llm-provider</code> + <code>rag-llm-api-key</code></p><p>(Claude via Anthropic, ou un modele local via Ollama avec <code>rag-llm-base-url</code>).</p><p>Sans provider, seul le mode retrieval (recherche de snippets) fonctionne.</p><p>Detail des cles sur la page <em>AppSettings</em>.</p><p>> L'ancien stack Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> sur</p><p>> <code>127.0.0.1:8765</code>) n'est utilisable qu'en fallback avec</p><p>> <code>rag-use-dotnet-engine = "false"</code> et n'est pas inclus dans les packages de release.</p><h2>Recapitulatif des services</h2><table><thead><tr><th>Service</th><th>Port</th><th>Obligatoire</th><th>Commande rapide</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>oui</td><td>(service Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>oui</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>oui</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>non</td><td>charge par le backend au premier chat</td></tr></tbody></table><h2>Quick Start — premier composant</h2><p>1. Configurez l'endpoint AsmxProxy.</p><p>2. Definissez la route metadata et les colonnes.</p><p>3. Montez <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
14573
14573
|
"codeSamples": [
|
|
14574
14574
|
{
|
|
14575
14575
|
"id": "code_1",
|
|
@@ -21277,7 +21277,7 @@ const frameworkDocsContent = {
|
|
|
21277
21277
|
{
|
|
21278
21278
|
"id": "overview",
|
|
21279
21279
|
"title": "Overview",
|
|
21280
|
-
"html": "<h1>Panorámica del Framework</h1><p>WUIC Framework es una plataforma metadata-driven para crear interfaces de negocio de forma rápida y coherente.</p><h2>Qué incluye</h2><ul><li>DataSource y DataRepeater para orquestar datos y renderizado.</li><li>Archetypes visuales (list, map, scheduler, chart, carousel).</li><li>Designer runtime para dashboards y templates dinámicos.</li><li>Workflow designer/runner para procesos operativos.</li><li>RAG Chatbot para consultar la codebase en lenguaje natural.</li><li>Multi-SGBD: SQL Server, MySQL, PostgreSQL y Oracle mediante providers drop-in (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Arranque del entorno dev</h2><p>El stack WUIC está compuesto por varios servicios. Arráncalos en el orden indicado.</p><h3>Prerrequisitos</h3><table><thead><tr><th>Qué</th><th>Verificación</th><th>Notas</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle para IIS en producción</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 es la version con la que se prueba el paquete; con npm 10.9.x la instalacion funciona gracias al <code>package-lock.json</code> incluido</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>El Windows PowerShell preinstalado es suficiente: <code>rename-project.ps1</code> y los scripts <code>llm-workspace/</code> tambien funcionan en 5.1. PowerShell 7 es recomendable, no obligatorio</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Si falta, <strong>la línea única lo instala por su cuenta</strong> (SQL Server Express, o el motor elegido con <code>-Dbms</code>); en Windows Server no, ver el recuadro de abajo. 2019 basta para los paquetes sin <code>.bak</code>; el tutorial <code>.bak</code> es una copia de SQL Server 2022 y requiere <strong>2022 o superior</strong></td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Opcional: acelera el RAG Chatbot (sin GPU funciona en CPU)</td></tr></tbody></table><p>> <strong>En Windows Server la base de datos debe instalarse antes.</strong> La linea unica obtiene los</p><p>> componentes que faltan mediante <code>winget</code>, que no esta presente en Windows Server: sin una</p><p>> instancia ya accesible la instalacion se detiene con `No SQL Server instance reachable and</p><p>> winget is missing`. Instala el motor antes de ejecutar la linea - SQL Server debe ser **2019 o</p><p>> superior<strong> (Express es suficiente; </strong>2022 o superior** para el tutorial <code>.bak</code>), y una 2017 no</p><p>> se acepta. Si la instancia no es la predeterminada, pasala con</p><p>> <code>-SqlServer 'localhost\\NOMBREINSTANCIA'</code>. Vale para todos los motores, no solo SQL Server.</p><h3>1. Descarga el template de proyecto</h3><p>En Windows una sola linea de PowerShell lo hace todo: descarga el paquete, comprueba el SDK de .NET 10</p><p>y Node.js 22 (instalando lo que falte), ejecuta <code>dotnet restore</code> y <code>npm install</code>,</p><p>e instala la extension WUIC Assistant en VS Code.</p><p>Snippet 1:</p><p>Opciones útiles en la misma línea: <code>-Dbms mysql</code> (o <code>postgres</code>, <code>oracle</code>) para un motor</p><p>distinto de SQL Server — el instalador lo instala y lo configura él mismo — y <code>-WithTutorial</code></p><p>para descargar también la base de datos de ejemplo.</p><p>Cuando termina, la última pantalla ya es tu lista de tareas:</p><p>Snippet 2:</p><p>La cadena de conexión ya está lista: en el primer arranque el wizard no pide nada más. Con</p><p><code>-Dbms mysql</code> o <code>-Dbms postgres</code> esa línea cambia en consecuencia y lleva dentro usuario y</p><p>contraseña, porque la contraseña del superusuario <strong>la genera el instalador</strong>; esa misma</p><p>contraseña se guarda en <code>wuic-secrets.json</code>, junto a la instalación, y es el único sitio donde</p><p>queda escrita.</p><p>La via manual sigue siendo valida, en cualquier sistema:</p><p>Parte del paquete <code>WuicTest-src-*.zip</code> (enlace en la sección <strong>Download</strong> del sitio).</p><p>Extráelo en una carpeta de trabajo, p. ej. <code>C:\\dev\\WuicTest</code> (los archivos van directamente</p><p>en la raíz, NO dentro de una subcarpeta <code>src/</code>). El paquete contiene:</p><ul><li><code>WuicTest.csproj</code> → proyecto host con <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular cuyo <code>package.json</code> referencia <code>wuic-framework-lib</code> desde el registry npm</li><li><code>appsettings.json</code> preconfigurado en modo <code>firstRun = "true"</code> con placeholders <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 templates listos (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>No hace falta clonar el repositorio del framework</strong>: <code>WuicCore</code> llega como paquete NuGet</p><p>> desde <code>nuget.org</code> y <code>wuic-framework-lib</code> como paquete npm desde el registry npm. El código</p><p>> fuente del framework solo se necesita si quieres modificarlo — típicamente no es tu caso.</p><p>> <strong>npm 10.9.x y los paquetes anteriores a 1.7.1</strong>: esos paquetes no incluyen <code>package-lock.json</code>, y</p><p>> sin lock npm 10.9.x (la version que instala Node 22 LTS) se detiene con</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> al resolver las dependencias peer.</p><p>> Descarga el lock publicado junto a la release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<nombre-del-zip>.package-lock.json</code> — colocalo en</p><p>> <code>wwwroot/</code> y ejecuta <code>npm install</code> otra vez. La linea unica <code>-Src</code> lo hace por ti.</p><h3>2. Database</h3><p>Hace falta una instancia del motor accesible. <strong>Con la línea única no hay nada que hacer</strong>:</p><p>la instala y la configura ella, y la cadena de conexión que hay que pegar en el wizard es lo</p><p>último que imprime. En la vía manual la instancia debe existir ya.</p><p>Conexiones en <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menú, tablas, columnas, boards, usuarios)</li><li><code>DataSQLConnection</code> — DB datos de la aplicación</li></ul><p>Si es la primera instalación (<code>AppSettings.firstRun = "true"</code> en el template),</p><p>el wizard de scaffolding en el primer arranque crea el esquema metadata y puebla el DB datos.</p><p>Ver la página <em>Scaffolding inicial</em> para el flujo guiado.</p><h3>3. Backend (.NET)</h3><p>Desde la raíz de la carpeta extraída (p. ej. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>El backend expone las API en <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>En una segunda shell, desde la subcarpeta <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>El frontend está disponible en <code>http://localhost:4200</code>.</p><p>Login por defecto (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (opcional)</h3><p>El RAG Chatbot (<code>Administración > RAG Chat</code>) se ejecuta **dentro del backend</p><p>.NET**: el motor de retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) lo carga el backend cuando <code>AppSettings.rag-use-dotnet-engine</code> es</p><p><code>"true"</code> (valor por defecto en los paquetes de release). **Sin Python, sin</p><p>venv, ningún servidor separado que arrancar.**</p><p>La <strong>primera</strong> vez que se abre el chatbot (o al final del first-run) el</p><p>backend descarga por sí solo los modelos ONNX (<code>bge-m3</code> + reranker), el</p><p>tokenizer y el índice (~4,5 GB) desde <code>rag-engine-models-url</code> (por defecto</p><p><code>https://wuic-framework.com/rag-models</code>) en <code>rag-engine/artifacts/</code>. Solo hace</p><p>falta conexión a internet una vez; la descarga corre en segundo plano (1-5 min)</p><p>y llega una notificación in-app al inicio y al final. Mientras tanto el</p><p>componente muestra el estado <strong>RAG offline</strong> y el resto de la aplicación</p><p>funciona con normalidad.</p><p>Claves <code>AppSettings</code> relevantes (todas con valores por defecto listos):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — activa el motor .NET (<code>false</code> = fallback Python, ver abajo)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: con GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/consulta, en CPU ~15-25 s/consulta</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = fuentes del framework solo como firma; <code>internal</code> = índice completo</li><li><code>rag-engine-models-url</code> — origen de la descarga en el primer arranque</li><li><code>rag-engine-cuda-path</code> = (vacío) — carpeta de las DLL CUDA/cuDNN si no están instaladas a nivel de sistema</li></ul><p>Para el chat con LLM configura <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude</p><p>vía Anthropic, o un modelo local vía Ollama con <code>rag-llm-base-url</code>). Sin</p><p>provider solo funciona la modalidad retrieval (búsqueda de snippets). Detalle</p><p>de las claves en la página <em>AppSettings</em>.</p><p>> El stack histórico Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> en</p><p>> <code>127.0.0.1:8765</code>) solo puede usarse como fallback con</p><p>> <code>rag-use-dotnet-engine = "false"</code> y no se incluye en los paquetes de release.</p><h2>Resumen de servicios</h2><table><thead><tr><th>Servicio</th><th>Puerto</th><th>Obligatorio</th><th>Comando rápido</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>sí</td><td>(servicio Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>sí</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>sí</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>no</td><td>cargado por el backend en el primer chat</td></tr></tbody></table><h2>Quick Start — primer componente</h2><p>1. Configura el endpoint AsmxProxy.</p><p>2. Define route metadata y columnas.</p><p>3. Monta <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
21280
|
+
"html": "<h1>Panorámica del Framework</h1><p>WUIC Framework es una plataforma metadata-driven para crear interfaces de negocio de forma rápida y coherente.</p><h2>Qué incluye</h2><ul><li>DataSource y DataRepeater para orquestar datos y renderizado.</li><li>Archetypes visuales (list, map, scheduler, chart, carousel).</li><li>Designer runtime para dashboards y templates dinámicos.</li><li>Workflow designer/runner para procesos operativos.</li><li>RAG Chatbot para consultar la codebase en lenguaje natural.</li><li>Multi-SGBD: SQL Server, MySQL, PostgreSQL y Oracle mediante providers drop-in (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Arranque del entorno dev</h2><p>El stack WUIC está compuesto por varios servicios. Arráncalos en el orden indicado.</p><h3>Prerrequisitos</h3><table><thead><tr><th>Qué</th><th>Verificación</th><th>Notas</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle para IIS en producción</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>La 22 es la version con la que se prueba el paquete; con npm 10.9.x la instalacion funciona gracias al <code>package-lock.json</code> incluido</td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>El Windows PowerShell preinstalado es suficiente: <code>rename-project.ps1</code> y los scripts <code>llm-workspace/</code> tambien funcionan en 5.1. PowerShell 7 es recomendable, no obligatorio</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Si falta, <strong>la línea única lo instala por su cuenta</strong> (SQL Server Express, o el motor elegido con <code>-Dbms</code>); en Windows Server no, ver el recuadro de abajo. 2019 basta para los paquetes sin <code>.bak</code>; el tutorial <code>.bak</code> es una copia de SQL Server 2022 y requiere <strong>2022 o superior</strong></td></tr><tr><td>Linux (instalador <code>install.sh</code>)</td><td><code>lsb_release -ds</code></td><td><strong>Ubuntu 22.04 o 24.04 LTS</strong> (24.04 recomendada): son las unicas versiones de Ubuntu que Microsoft soporta para SQL Server, la <strong>26.04 no esta soportada</strong> (<a href=\"https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">Supported platforms</a>). Misma recomendacion con MySQL, PostgreSQL y Oracle, porque el instalador esta probado en esas versiones</td></tr><tr><td>GPU NVIDIA (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Opcional: acelera el RAG Chatbot (sin GPU funciona en CPU)</td></tr></tbody></table><p>> <strong>En Windows Server la base de datos debe instalarse antes.</strong> La linea unica obtiene los</p><p>> componentes que faltan mediante <code>winget</code>, que no esta presente en Windows Server: sin una</p><p>> instancia ya accesible la instalacion se detiene con `No SQL Server instance reachable and</p><p>> winget is missing`. Instala el motor antes de ejecutar la linea - SQL Server debe ser **2019 o</p><p>> superior<strong> (Express es suficiente; </strong>2022 o superior** para el tutorial <code>.bak</code>), y una 2017 no</p><p>> se acepta. Si la instancia no es la predeterminada, pasala con</p><p>> <code>-SqlServer 'localhost\\NOMBREINSTANCIA'</code>. Vale para todos los motores, no solo SQL Server.</p><h3>1. Descarga el template de proyecto</h3><p>En Windows una sola linea de PowerShell lo hace todo: descarga el paquete, comprueba el SDK de .NET 10</p><p>y Node.js 22 (instalando lo que falte), ejecuta <code>dotnet restore</code> y <code>npm install</code>,</p><p>e instala la extension WUIC Assistant en VS Code.</p><p>Snippet 1:</p><p>Opciones útiles en la misma línea: <code>-Dbms mysql</code> (o <code>postgres</code>, <code>oracle</code>) para un motor</p><p>distinto de SQL Server — el instalador lo instala y lo configura él mismo — y <code>-WithTutorial</code></p><p>para descargar también la base de datos de ejemplo.</p><p>Cuando termina, la última pantalla ya es tu lista de tareas:</p><p>Snippet 2:</p><p>La cadena de conexión ya está lista: en el primer arranque el wizard no pide nada más. Con</p><p><code>-Dbms mysql</code> o <code>-Dbms postgres</code> esa línea cambia en consecuencia y lleva dentro usuario y</p><p>contraseña, porque la contraseña del superusuario <strong>la genera el instalador</strong>; esa misma</p><p>contraseña se guarda en <code>wuic-secrets.json</code>, junto a la instalación, y es el único sitio donde</p><p>queda escrita.</p><p>La via manual sigue siendo valida, en cualquier sistema:</p><p>Parte del paquete <code>WuicTest-src-*.zip</code> (enlace en la sección <strong>Download</strong> del sitio).</p><p>Extráelo en una carpeta de trabajo, p. ej. <code>C:\\dev\\WuicTest</code> (los archivos van directamente</p><p>en la raíz, NO dentro de una subcarpeta <code>src/</code>). El paquete contiene:</p><ul><li><code>WuicTest.csproj</code> → proyecto host con <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → app Angular cuyo <code>package.json</code> referencia <code>wuic-framework-lib</code> desde el registry npm</li><li><code>appsettings.json</code> preconfigurado en modo <code>firstRun = "true"</code> con placeholders <code>__SET_*__</code></li><li><code>appsettings-samples/</code> → 6 templates listos (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>No hace falta clonar el repositorio del framework</strong>: <code>WuicCore</code> llega como paquete NuGet</p><p>> desde <code>nuget.org</code> y <code>wuic-framework-lib</code> como paquete npm desde el registry npm. El código</p><p>> fuente del framework solo se necesita si quieres modificarlo — típicamente no es tu caso.</p><p>> <strong>npm 10.9.x y los paquetes anteriores a 1.7.1</strong>: esos paquetes no incluyen <code>package-lock.json</code>, y</p><p>> sin lock npm 10.9.x (la version que instala Node 22 LTS) se detiene con</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> al resolver las dependencias peer.</p><p>> Descarga el lock publicado junto a la release —</p><p>> <code>https://wuic-framework.com/downloads/locks/<nombre-del-zip>.package-lock.json</code> — colocalo en</p><p>> <code>wwwroot/</code> y ejecuta <code>npm install</code> otra vez. La linea unica <code>-Src</code> lo hace por ti.</p><h3>2. Database</h3><p>Hace falta una instancia del motor accesible. <strong>Con la línea única no hay nada que hacer</strong>:</p><p>la instala y la configura ella, y la cadena de conexión que hay que pegar en el wizard es lo</p><p>último que imprime. En la vía manual la instancia debe existir ya.</p><p>Conexiones en <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — DB metadata (menú, tablas, columnas, boards, usuarios)</li><li><code>DataSQLConnection</code> — DB datos de la aplicación</li></ul><p>Si es la primera instalación (<code>AppSettings.firstRun = "true"</code> en el template),</p><p>el wizard de scaffolding en el primer arranque crea el esquema metadata y puebla el DB datos.</p><p>Ver la página <em>Scaffolding inicial</em> para el flujo guiado.</p><h3>3. Backend (.NET)</h3><p>Desde la raíz de la carpeta extraída (p. ej. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>El backend expone las API en <code>http://localhost:5000</code>.</p><h3>4. Frontend (Angular)</h3><p>En una segunda shell, desde la subcarpeta <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>El frontend está disponible en <code>http://localhost:4200</code>.</p><p>Login por defecto (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (opcional)</h3><p>El RAG Chatbot (<code>Administración > RAG Chat</code>) se ejecuta **dentro del backend</p><p>.NET**: el motor de retrieval (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime</p><p>in-process) lo carga el backend cuando <code>AppSettings.rag-use-dotnet-engine</code> es</p><p><code>"true"</code> (valor por defecto en los paquetes de release). **Sin Python, sin</p><p>venv, ningún servidor separado que arrancar.**</p><p>La <strong>primera</strong> vez que se abre el chatbot (o al final del first-run) el</p><p>backend descarga por sí solo los modelos ONNX (<code>bge-m3</code> + reranker), el</p><p>tokenizer y el índice (~4,5 GB) desde <code>rag-engine-models-url</code> (por defecto</p><p><code>https://wuic-framework.com/rag-models</code>) en <code>rag-engine/artifacts/</code>. Solo hace</p><p>falta conexión a internet una vez; la descarga corre en segundo plano (1-5 min)</p><p>y llega una notificación in-app al inicio y al final. Mientras tanto el</p><p>componente muestra el estado <strong>RAG offline</strong> y el resto de la aplicación</p><p>funciona con normalidad.</p><p>Claves <code>AppSettings</code> relevantes (todas con valores por defecto listos):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — activa el motor .NET (<code>false</code> = fallback Python, ver abajo)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: con GPU NVIDIA (CUDA 12.x + cuDNN 9) ~1 s/consulta, en CPU ~15-25 s/consulta</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = fuentes del framework solo como firma; <code>internal</code> = índice completo</li><li><code>rag-engine-models-url</code> — origen de la descarga en el primer arranque</li><li><code>rag-engine-cuda-path</code> = (vacío) — carpeta de las DLL CUDA/cuDNN si no están instaladas a nivel de sistema</li></ul><p>Para el chat con LLM configura <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> (Claude</p><p>vía Anthropic, o un modelo local vía Ollama con <code>rag-llm-base-url</code>). Sin</p><p>provider solo funciona la modalidad retrieval (búsqueda de snippets). Detalle</p><p>de las claves en la página <em>AppSettings</em>.</p><p>> El stack histórico Python (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> en</p><p>> <code>127.0.0.1:8765</code>) solo puede usarse como fallback con</p><p>> <code>rag-use-dotnet-engine = "false"</code> y no se incluye en los paquetes de release.</p><h2>Resumen de servicios</h2><table><thead><tr><th>Servicio</th><th>Puerto</th><th>Obligatorio</th><th>Comando rápido</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>sí</td><td>(servicio Windows)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>sí</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>sí</td><td><code>npm run serve:dev</code></td></tr><tr><td>Engine RAG .NET (ONNX)</td><td>in-process</td><td>no</td><td>cargado por el backend en el primer chat</td></tr></tbody></table><h2>Quick Start — primer componente</h2><p>1. Configura el endpoint AsmxProxy.</p><p>2. Define route metadata y columnas.</p><p>3. Monta <code>wuic-data-source</code> + <code>wuic-data-repeater</code>.</p><p>Snippet 5:</p>",
|
|
21281
21281
|
"codeSamples": [
|
|
21282
21282
|
{
|
|
21283
21283
|
"id": "code_1",
|
|
@@ -27985,7 +27985,7 @@ const frameworkDocsContent = {
|
|
|
27985
27985
|
{
|
|
27986
27986
|
"id": "overview",
|
|
27987
27987
|
"title": "Overview",
|
|
27988
|
-
"html": "<h1>Framework-Uebersicht</h1><p>WUIC Framework ist eine metadata-gesteuerte Plattform zum schnellen und konsistenten Erstellen von Business-Oberflaechen.</p><h2>Was ist enthalten</h2><ul><li>DataSource und DataRepeater zur Orchestrierung von Daten und Rendering.</li><li>Visuelle Archetypes (list, map, scheduler, chart, carousel).</li><li>Runtime-Designer fuer Dashboards und dynamische Templates.</li><li>Workflow-Designer/Runner fuer operative Prozesse.</li><li>RAG Chatbot zum Abfragen der Codebasis in natuerlicher Sprache.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL und Oracle ueber Drop-in-Provider (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Dev-Umgebung starten</h2><p>Der WUIC-Stack besteht aus mehreren Diensten. Starte sie in der angegebenen Reihenfolge.</p><h3>Voraussetzungen</h3><table><thead><tr><th>Was</th><th>Verifikation</th><th>Hinweise</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle fuer IIS in Produktion</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>Mit 22 wird das Paket getestet; unter npm 10.9.x gelingt die Installation dank der mitgelieferten <code>package-lock.json</code></td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>Die vorinstallierte Windows PowerShell genuegt: <code>rename-project.ps1</code> und die <code>llm-workspace/</code>-Skripte laufen auch unter 5.1. PowerShell 7 wird empfohlen, ist nicht erforderlich</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Fehlt er, <strong>installiert ihn der Einzeiler selbst</strong> (SQL Server Express, oder die mit <code>-Dbms</code> gewaehlte Engine); auf Windows Server nicht, siehe Kasten unten. 2019 reicht fuer die Pakete ohne <code>.bak</code>; das <code>.bak</code>-Tutorial ist ein SQL Server 2022-Backup und benoetigt <strong>2022 oder neuer</strong></td></tr><tr><td>NVIDIA-GPU (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optional: beschleunigt den RAG Chatbot (ohne GPU laeuft er auf CPU)</td></tr></tbody></table><p>> <strong>Auf Windows Server muss die Datenbank vorher installiert werden.</strong> Der Einzeiler beschafft</p><p>> fehlende Komponenten ueber <code>winget</code>, das auf Windows Server nicht vorhanden ist: ohne eine</p><p>> bereits erreichbare Instanz bricht die Installation mit `No SQL Server instance reachable and</p><p>> winget is missing` ab. Installiere die Engine also vor dem Ausfuehren der Zeile - SQL Server</p><p>> muss <strong>2019 oder neuer</strong> sein (Express genuegt; <strong>2022 oder neuer</strong> fuer das <code>.bak</code>-Tutorial),</p><p>> eine 2017 wird nicht akzeptiert. Ist es nicht die Standardinstanz, uebergib sie mit</p><p>> <code>-SqlServer 'localhost\\INSTANZNAME'</code>. Das gilt fuer alle Engines, nicht nur SQL Server.</p><h3>1. Projekt-Template herunterladen</h3><p>Unter Windows erledigt eine PowerShell-Zeile alles: sie laedt das Paket, prueft .NET SDK 10</p><p>und Node.js 22 (und installiert, was fehlt), fuehrt <code>dotnet restore</code> und <code>npm install</code> aus</p><p>und installiert die Erweiterung WUIC Assistant in VS Code.</p><p>Snippet 1:</p><p>Nuetzliche Optionen auf derselben Zeile: <code>-Dbms mysql</code> (oder <code>postgres</code>, <code>oracle</code>) fuer eine</p><p>andere Engine als SQL Server — der Installer installiert und konfiguriert sie selbst — und</p><p><code>-WithTutorial</code>, um auch die Beispieldatenbank herunterzuladen.</p><p>Wenn er fertig ist, ist der letzte Bildschirm bereits die Aufgabenliste:</p><p>Snippet 2:</p><p>Die Verbindungszeichenfolge ist fertig: beim ersten Start fragt der Wizard nach nichts</p><p>weiterem. Mit <code>-Dbms mysql</code> oder <code>-Dbms postgres</code> aendert sich diese Zeile entsprechend und</p><p>traegt Benutzer und Passwort in sich, denn das Superuser-Passwort <strong>erzeugt der Installer</strong>;</p><p>dasselbe Passwort wird in <code>wuic-secrets.json</code> neben der Installation gespeichert, und das ist</p><p>der einzige Ort, an dem es geschrieben bleibt.</p><p>Der manuelle Weg bleibt gueltig, auf jedem System:</p><p>Starten Sie mit dem Paket <code>WuicTest-src-*.zip</code> (Link im <strong>Download</strong>-Bereich der Website).</p><p>Entpacken Sie es in einen Arbeitsordner, z.B. <code>C:\\dev\\WuicTest</code> (die Dateien kommen direkt</p><p>in den Root, NICHT in einen <code>src/</code>-Unterordner). Das Paket enthaelt:</p><ul><li><code>WuicTest.csproj</code> → Host-Projekt mit <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → Angular-App, deren <code>package.json</code> <code>wuic-framework-lib</code> aus der npm-Registry referenziert</li><li><code>appsettings.json</code> vorkonfiguriert im <code>firstRun = "true"</code>-Modus mit <code>__SET_*__</code>-Platzhaltern</li><li><code>appsettings-samples/</code> → 6 fertige Templates (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Kein Klonen des Framework-Repositories noetig</strong>: <code>WuicCore</code> kommt als NuGet-Paket von</p><p>> <code>nuget.org</code> und <code>wuic-framework-lib</code> als npm-Paket aus der npm-Registry. Der Framework-</p><p>> Quellcode wird nur benoetigt, wenn Sie ihn modifizieren wollen — typischerweise nicht Ihr Fall.</p><p>> <strong>npm 10.9.x und Pakete aelter als 1.7.1</strong>: diese Pakete enthalten keine <code>package-lock.json</code>, und</p><p>> ohne Lock bricht npm 10.9.x (die Version, die Node 22 LTS mitbringt) mit</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> bei der Peer-Aufloesung ab.</p><p>> Laden Sie den neben der Release veroeffentlichten Lock herunter —</p><p>> <code>https://wuic-framework.com/downloads/locks/<zip-name>.package-lock.json</code> — legen Sie ihn in</p><p>> <code>wwwroot/</code> und starten Sie <code>npm install</code> erneut. Der <code>-Src</code>-Einzeiler erledigt das selbst.</p><h3>2. Datenbank</h3><p>Es braucht eine erreichbare Instanz der Engine. <strong>Mit dem Einzeiler ist nichts zu tun</strong>: er</p><p>installiert und konfiguriert die Instanz, und die Verbindungszeichenfolge zum Einfuegen in den</p><p>Wizard ist das Letzte, was er ausgibt. Auf dem manuellen Weg muss die Instanz bereits</p><p>vorhanden sein.</p><p>Verbindungen in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — Metadata-DB (Menue, Tabellen, Spalten, Board, Benutzer)</li><li><code>DataSQLConnection</code> — Anwendungsdaten-DB</li></ul><p>Bei Erstinstallation (<code>AppSettings.firstRun = "true"</code> im Template) erstellt der Scaffolding-</p><p>Wizard beim ersten Start das Metadata-Schema und befuellt die Daten-DB.</p><p>Siehe Seite <em>Initial Scaffolding</em> fuer den gefuehrten Flow.</p><h3>3. Backend (.NET)</h3><p>Aus dem Root des entpackten Ordners (z.B. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>Das Backend stellt die APIs auf <code>http://localhost:5000</code> bereit.</p><h3>4. Frontend (Angular)</h3><p>In einer zweiten Shell, aus dem Unterordner <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>Das Frontend ist auf <code>http://localhost:4200</code> verfuegbar.</p><p>Standard-Login (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optional)</h3><p>Der RAG Chatbot (<code>Amministrazione > RAG Chat</code>) laeuft <strong>im .NET-Backend</strong>: die</p><p>Retrieval-Engine (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime in-process) wird</p><p>vom Backend geladen, wenn <code>AppSettings.rag-use-dotnet-engine</code> auf <code>"true"</code></p><p>steht (Default in den Release-Paketen). **Kein Python, keine venv, kein</p><p>separater Server, der gestartet werden muss.**</p><p>Beim <strong>ersten</strong> Oeffnen des Chatbots (oder am Ende des First-Run) laedt das</p><p>Backend selbststaendig die ONNX-Modelle (<code>bge-m3</code> + Reranker), den Tokenizer</p><p>und den Index (~4,5 GB) von <code>rag-engine-models-url</code> (Default</p><p><code>https://wuic-framework.com/rag-models</code>) nach <code>rag-engine/artifacts/</code>. Eine</p><p>Internetverbindung wird nur einmal benoetigt; der Download laeuft im</p><p>Hintergrund (1-5 Min.) und eine In-App-Benachrichtigung erscheint zu Beginn</p><p>und am Ende. Solange zeigt die Komponente den Status <strong>RAG offline</strong>, der Rest</p><p>der Anwendung funktioniert normal.</p><p>Relevante <code>AppSettings</code>-Schluessel (alle mit fertigen Defaults):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — aktiviert die .NET-Engine (<code>false</code> = Python-Fallback, siehe unten)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: mit NVIDIA-GPU (CUDA 12.x + cuDNN 9) ~1 s/Abfrage, auf CPU ~15-25 s/Abfrage</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = Framework-Quellen nur als Signatur; <code>internal</code> = vollstaendiger Index</li><li><code>rag-engine-models-url</code> — Download-Quelle beim ersten Start</li><li><code>rag-engine-cuda-path</code> = (leer) — Ordner der CUDA/cuDNN-DLLs, falls nicht systemweit installiert</li></ul><p>Fuer den Chat mit LLM <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> setzen (Claude</p><p>via Anthropic oder ein lokales Modell via Ollama mit <code>rag-llm-base-url</code>). Ohne</p><p>Provider funktioniert nur der Retrieval-Modus (Snippet-Suche). Details zu den</p><p>Schluesseln auf der Seite <em>AppSettings</em>.</p><p>> Der historische Python-Stack (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> auf</p><p>> <code>127.0.0.1:8765</code>) ist nur als Fallback mit <code>rag-use-dotnet-engine = "false"</code></p><p>> nutzbar und ist in den Release-Paketen nicht enthalten.</p><h2>Dienste-Zusammenfassung</h2><table><thead><tr><th>Dienst</th><th>Port</th><th>Erforderlich</th><th>Schnellbefehl</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>ja</td><td>(Windows-Dienst)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>ja</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>ja</td><td><code>npm run serve:dev</code></td></tr><tr><td>RAG-Engine .NET (ONNX)</td><td>in-process</td><td>nein</td><td>wird vom Backend beim ersten Chat geladen</td></tr></tbody></table><h2>Quick Start — erste Komponente</h2><p>1. AsmxProxy-Endpoint konfigurieren.</p><p>2. Route-Metadata und Spalten definieren.</p><p>3. <code>wuic-data-source</code> + <code>wuic-data-repeater</code> montieren.</p><p>Snippet 5:</p>",
|
|
27988
|
+
"html": "<h1>Framework-Uebersicht</h1><p>WUIC Framework ist eine metadata-gesteuerte Plattform zum schnellen und konsistenten Erstellen von Business-Oberflaechen.</p><h2>Was ist enthalten</h2><ul><li>DataSource und DataRepeater zur Orchestrierung von Daten und Rendering.</li><li>Visuelle Archetypes (list, map, scheduler, chart, carousel).</li><li>Runtime-Designer fuer Dashboards und dynamische Templates.</li><li>Workflow-Designer/Runner fuer operative Prozesse.</li><li>RAG Chatbot zum Abfragen der Codebasis in natuerlicher Sprache.</li><li>Multi-DBMS: SQL Server, MySQL, PostgreSQL und Oracle ueber Drop-in-Provider (<code>dbms</code>: <code>mssql</code> | <code>mysql</code> | <code>postgresql</code> | <code>oracle</code>).</li></ul><h2>First Steps — Dev-Umgebung starten</h2><p>Der WUIC-Stack besteht aus mehreren Diensten. Starte sie in der angegebenen Reihenfolge.</p><h3>Voraussetzungen</h3><table><thead><tr><th>Was</th><th>Verifikation</th><th>Hinweise</th></tr></thead><tbody><tr><td>.NET 10 SDK</td><td><code>dotnet --version</code></td><td>Hosting Bundle fuer IIS in Produktion</td></tr><tr><td>Node.js 22 LTS</td><td><code>node --version</code></td><td>Mit 22 wird das Paket getestet; unter npm 10.9.x gelingt die Installation dank der mitgelieferten <code>package-lock.json</code></td></tr><tr><td>PowerShell 5.1+</td><td><code>$PSVersionTable.PSVersion</code></td><td>Die vorinstallierte Windows PowerShell genuegt: <code>rename-project.ps1</code> und die <code>llm-workspace/</code>-Skripte laufen auch unter 5.1. PowerShell 7 wird empfohlen, ist nicht erforderlich</td></tr><tr><td>SQL Server 2019+</td><td><code>sqlcmd -S localhost\\sqlexpress -E -C -Q "SELECT 1"</code></td><td>Fehlt er, <strong>installiert ihn der Einzeiler selbst</strong> (SQL Server Express, oder die mit <code>-Dbms</code> gewaehlte Engine); auf Windows Server nicht, siehe Kasten unten. 2019 reicht fuer die Pakete ohne <code>.bak</code>; das <code>.bak</code>-Tutorial ist ein SQL Server 2022-Backup und benoetigt <strong>2022 oder neuer</strong></td></tr><tr><td>Linux (Installer <code>install.sh</code>)</td><td><code>lsb_release -ds</code></td><td><strong>Ubuntu 22.04 oder 24.04 LTS</strong> (24.04 empfohlen): nur diese Ubuntu-Versionen werden von Microsoft fuer SQL Server unterstuetzt, die <strong>26.04 wird nicht unterstuetzt</strong> (<a href=\"https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver17\" target=\"_blank\" rel=\"noopener noreferrer\">Supported platforms</a>). Gleiche Empfehlung mit MySQL, PostgreSQL und Oracle, da der Installer auf diesen Versionen getestet ist</td></tr><tr><td>NVIDIA-GPU (CUDA 12.x + cuDNN 9)</td><td><code>nvidia-smi</code></td><td>Optional: beschleunigt den RAG Chatbot (ohne GPU laeuft er auf CPU)</td></tr></tbody></table><p>> <strong>Auf Windows Server muss die Datenbank vorher installiert werden.</strong> Der Einzeiler beschafft</p><p>> fehlende Komponenten ueber <code>winget</code>, das auf Windows Server nicht vorhanden ist: ohne eine</p><p>> bereits erreichbare Instanz bricht die Installation mit `No SQL Server instance reachable and</p><p>> winget is missing` ab. Installiere die Engine also vor dem Ausfuehren der Zeile - SQL Server</p><p>> muss <strong>2019 oder neuer</strong> sein (Express genuegt; <strong>2022 oder neuer</strong> fuer das <code>.bak</code>-Tutorial),</p><p>> eine 2017 wird nicht akzeptiert. Ist es nicht die Standardinstanz, uebergib sie mit</p><p>> <code>-SqlServer 'localhost\\INSTANZNAME'</code>. Das gilt fuer alle Engines, nicht nur SQL Server.</p><h3>1. Projekt-Template herunterladen</h3><p>Unter Windows erledigt eine PowerShell-Zeile alles: sie laedt das Paket, prueft .NET SDK 10</p><p>und Node.js 22 (und installiert, was fehlt), fuehrt <code>dotnet restore</code> und <code>npm install</code> aus</p><p>und installiert die Erweiterung WUIC Assistant in VS Code.</p><p>Snippet 1:</p><p>Nuetzliche Optionen auf derselben Zeile: <code>-Dbms mysql</code> (oder <code>postgres</code>, <code>oracle</code>) fuer eine</p><p>andere Engine als SQL Server — der Installer installiert und konfiguriert sie selbst — und</p><p><code>-WithTutorial</code>, um auch die Beispieldatenbank herunterzuladen.</p><p>Wenn er fertig ist, ist der letzte Bildschirm bereits die Aufgabenliste:</p><p>Snippet 2:</p><p>Die Verbindungszeichenfolge ist fertig: beim ersten Start fragt der Wizard nach nichts</p><p>weiterem. Mit <code>-Dbms mysql</code> oder <code>-Dbms postgres</code> aendert sich diese Zeile entsprechend und</p><p>traegt Benutzer und Passwort in sich, denn das Superuser-Passwort <strong>erzeugt der Installer</strong>;</p><p>dasselbe Passwort wird in <code>wuic-secrets.json</code> neben der Installation gespeichert, und das ist</p><p>der einzige Ort, an dem es geschrieben bleibt.</p><p>Der manuelle Weg bleibt gueltig, auf jedem System:</p><p>Starten Sie mit dem Paket <code>WuicTest-src-*.zip</code> (Link im <strong>Download</strong>-Bereich der Website).</p><p>Entpacken Sie es in einen Arbeitsordner, z.B. <code>C:\\dev\\WuicTest</code> (die Dateien kommen direkt</p><p>in den Root, NICHT in einen <code>src/</code>-Unterordner). Das Paket enthaelt:</p><ul><li><code>WuicTest.csproj</code> → Host-Projekt mit <code><PackageReference Include="WuicCore" Version="..." /></code></li><li><code>wwwroot/</code> → Angular-App, deren <code>package.json</code> <code>wuic-framework-lib</code> aus der npm-Registry referenziert</li><li><code>appsettings.json</code> vorkonfiguriert im <code>firstRun = "true"</code>-Modus mit <code>__SET_*__</code>-Platzhaltern</li><li><code>appsettings-samples/</code> → 6 fertige Templates (<code>mssql</code>/<code>mysql</code>, firstRun/post-firstRun, <code>Development</code>)</li></ul><p>> <strong>Kein Klonen des Framework-Repositories noetig</strong>: <code>WuicCore</code> kommt als NuGet-Paket von</p><p>> <code>nuget.org</code> und <code>wuic-framework-lib</code> als npm-Paket aus der npm-Registry. Der Framework-</p><p>> Quellcode wird nur benoetigt, wenn Sie ihn modifizieren wollen — typischerweise nicht Ihr Fall.</p><p>> <strong>npm 10.9.x und Pakete aelter als 1.7.1</strong>: diese Pakete enthalten keine <code>package-lock.json</code>, und</p><p>> ohne Lock bricht npm 10.9.x (die Version, die Node 22 LTS mitbringt) mit</p><p>> <code>Cannot read properties of null (reading 'edgesOut')</code> bei der Peer-Aufloesung ab.</p><p>> Laden Sie den neben der Release veroeffentlichten Lock herunter —</p><p>> <code>https://wuic-framework.com/downloads/locks/<zip-name>.package-lock.json</code> — legen Sie ihn in</p><p>> <code>wwwroot/</code> und starten Sie <code>npm install</code> erneut. Der <code>-Src</code>-Einzeiler erledigt das selbst.</p><h3>2. Datenbank</h3><p>Es braucht eine erreichbare Instanz der Engine. <strong>Mit dem Einzeiler ist nichts zu tun</strong>: er</p><p>installiert und konfiguriert die Instanz, und die Verbindungszeichenfolge zum Einfuegen in den</p><p>Wizard ist das Letzte, was er ausgibt. Auf dem manuellen Weg muss die Instanz bereits</p><p>vorhanden sein.</p><p>Verbindungen in <code>appsettings.json</code>:</p><ul><li><code>MetaDataSQLConnection</code> — Metadata-DB (Menue, Tabellen, Spalten, Board, Benutzer)</li><li><code>DataSQLConnection</code> — Anwendungsdaten-DB</li></ul><p>Bei Erstinstallation (<code>AppSettings.firstRun = "true"</code> im Template) erstellt der Scaffolding-</p><p>Wizard beim ersten Start das Metadata-Schema und befuellt die Daten-DB.</p><p>Siehe Seite <em>Initial Scaffolding</em> fuer den gefuehrten Flow.</p><h3>3. Backend (.NET)</h3><p>Aus dem Root des entpackten Ordners (z.B. <code>C:\\dev\\WuicTest</code>):</p><p>Snippet 3:</p><p>Das Backend stellt die APIs auf <code>http://localhost:5000</code> bereit.</p><h3>4. Frontend (Angular)</h3><p>In einer zweiten Shell, aus dem Unterordner <code>wwwroot/</code>:</p><p>Snippet 4:</p><p>Das Frontend ist auf <code>http://localhost:4200</code> verfuegbar.</p><p>Standard-Login (post-firstRun): <code>admin</code> / <code>admin</code>.</p><h3>5. RAG Chatbot (optional)</h3><p>Der RAG Chatbot (<code>Amministrazione > RAG Chat</code>) laeuft <strong>im .NET-Backend</strong>: die</p><p>Retrieval-Engine (<code>rag-engine/WuicRagEngine.dll</code>, ONNX Runtime in-process) wird</p><p>vom Backend geladen, wenn <code>AppSettings.rag-use-dotnet-engine</code> auf <code>"true"</code></p><p>steht (Default in den Release-Paketen). **Kein Python, keine venv, kein</p><p>separater Server, der gestartet werden muss.**</p><p>Beim <strong>ersten</strong> Oeffnen des Chatbots (oder am Ende des First-Run) laedt das</p><p>Backend selbststaendig die ONNX-Modelle (<code>bge-m3</code> + Reranker), den Tokenizer</p><p>und den Index (~4,5 GB) von <code>rag-engine-models-url</code> (Default</p><p><code>https://wuic-framework.com/rag-models</code>) nach <code>rag-engine/artifacts/</code>. Eine</p><p>Internetverbindung wird nur einmal benoetigt; der Download laeuft im</p><p>Hintergrund (1-5 Min.) und eine In-App-Benachrichtigung erscheint zu Beginn</p><p>und am Ende. Solange zeigt die Komponente den Status <strong>RAG offline</strong>, der Rest</p><p>der Anwendung funktioniert normal.</p><p>Relevante <code>AppSettings</code>-Schluessel (alle mit fertigen Defaults):</p><ul><li><code>rag-use-dotnet-engine</code> = <code>true</code> — aktiviert die .NET-Engine (<code>false</code> = Python-Fallback, siehe unten)</li><li><code>rag-engine-device</code> = <code>auto</code> — <code>auto</code> | <code>cuda</code> | <code>cpu</code>: mit NVIDIA-GPU (CUDA 12.x + cuDNN 9) ~1 s/Abfrage, auf CPU ~15-25 s/Abfrage</li><li><code>rag-engine-profile</code> = <code>release</code> — <code>release</code> = Framework-Quellen nur als Signatur; <code>internal</code> = vollstaendiger Index</li><li><code>rag-engine-models-url</code> — Download-Quelle beim ersten Start</li><li><code>rag-engine-cuda-path</code> = (leer) — Ordner der CUDA/cuDNN-DLLs, falls nicht systemweit installiert</li></ul><p>Fuer den Chat mit LLM <code>rag-llm-provider</code> + <code>rag-llm-api-key</code> setzen (Claude</p><p>via Anthropic oder ein lokales Modell via Ollama mit <code>rag-llm-base-url</code>). Ohne</p><p>Provider funktioniert nur der Retrieval-Modus (Snippet-Suche). Details zu den</p><p>Schluesseln auf der Seite <em>AppSettings</em>.</p><p>> Der historische Python-Stack (<code>scripts/rag-setup.ps1</code> + <code>rag_server.py</code> auf</p><p>> <code>127.0.0.1:8765</code>) ist nur als Fallback mit <code>rag-use-dotnet-engine = "false"</code></p><p>> nutzbar und ist in den Release-Paketen nicht enthalten.</p><h2>Dienste-Zusammenfassung</h2><table><thead><tr><th>Dienst</th><th>Port</th><th>Erforderlich</th><th>Schnellbefehl</th></tr></thead><tbody><tr><td>SQL Server</td><td>1433</td><td>ja</td><td>(Windows-Dienst)</td></tr><tr><td>Backend .NET</td><td>5000</td><td>ja</td><td><code>dotnet watch ... run</code></td></tr><tr><td>Frontend Angular</td><td>4200</td><td>ja</td><td><code>npm run serve:dev</code></td></tr><tr><td>RAG-Engine .NET (ONNX)</td><td>in-process</td><td>nein</td><td>wird vom Backend beim ersten Chat geladen</td></tr></tbody></table><h2>Quick Start — erste Komponente</h2><p>1. AsmxProxy-Endpoint konfigurieren.</p><p>2. Route-Metadata und Spalten definieren.</p><p>3. <code>wuic-data-source</code> + <code>wuic-data-repeater</code> montieren.</p><p>Snippet 5:</p>",
|
|
27989
27989
|
"codeSamples": [
|
|
27990
27990
|
{
|
|
27991
27991
|
"id": "code_1",
|
|
@@ -35168,4 +35168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
35168
35168
|
}] } });
|
|
35169
35169
|
|
|
35170
35170
|
export { FrameworkDocsComponent };
|
|
35171
|
-
//# sourceMappingURL=wuic-framework-lib-framework-docs.component-
|
|
35171
|
+
//# sourceMappingURL=wuic-framework-lib-framework-docs.component-C04bapkD.mjs.map
|
|
@@ -25,7 +25,7 @@ import { TableModule } from 'primeng/table';
|
|
|
25
25
|
import { Tabs, TabList, Tab, TabPanels, TabPanel } from 'primeng/tabs';
|
|
26
26
|
import * as i1$3 from '@materia-ui/ngx-monaco-editor';
|
|
27
27
|
import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
|
|
28
|
-
import { W as WtoolboxService, U as UserInfoService, T as TranslationManagerService, M as MetadataProviderService, h as DataProviderService, o as MetaInfo, g as MetadatiColonna, q as FilterInfo, G as GlobalHandler, m as WuicClientException, n as WuicErrorCodes, r as LicenseFeatureService, C as ChatbotHostRegistryService, b as DataSourceComponent, F as FilterBarComponent } from './wuic-framework-lib-wuic-framework-lib-
|
|
28
|
+
import { W as WtoolboxService, U as UserInfoService, T as TranslationManagerService, M as MetadataProviderService, h as DataProviderService, o as MetaInfo, g as MetadatiColonna, q as FilterInfo, G as GlobalHandler, m as WuicClientException, n as WuicErrorCodes, r as LicenseFeatureService, C as ChatbotHostRegistryService, b as DataSourceComponent, F as FilterBarComponent } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
29
29
|
import * as i7 from 'primeng/tooltip';
|
|
30
30
|
import { TooltipModule } from 'primeng/tooltip';
|
|
31
31
|
import { ClassicPreset, NodeEditor } from 'rete';
|
|
@@ -4950,4 +4950,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
4950
4950
|
}] } });
|
|
4951
4951
|
|
|
4952
4952
|
export { PivotBuilderComponent };
|
|
4953
|
-
//# sourceMappingURL=wuic-framework-lib-pivot-builder.component-
|
|
4953
|
+
//# sourceMappingURL=wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs.map
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter, Output, Input, Component } from '@angular/core';
|
|
3
3
|
import * as i2 from 'primeng/dialog';
|
|
4
4
|
import { DialogModule } from 'primeng/dialog';
|
|
5
|
-
import { f as ParametricDialogComponent } from './wuic-framework-lib-wuic-framework-lib-
|
|
5
|
+
import { f as ParametricDialogComponent } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
|
|
6
6
|
|
|
7
7
|
class PromptDialogFallbackHostComponent {
|
|
8
8
|
datasource;
|
|
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
96
96
|
}] } });
|
|
97
97
|
|
|
98
98
|
export { PromptDialogFallbackHostComponent };
|
|
99
|
-
//# sourceMappingURL=wuic-framework-lib-prompt-dialog-fallback-host.component-
|
|
99
|
+
//# sourceMappingURL=wuic-framework-lib-prompt-dialog-fallback-host.component-CHdqlPlh.mjs.map
|