@chill-sharp/ui-core 1.1.12 → 1.1.15

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.
Files changed (69) hide show
  1. package/README.md +103 -103
  2. package/fesm2022/chill-sharp-ui-core.mjs +2446 -2446
  3. package/fesm2022/chill-sharp-ui-core.mjs.map +1 -1
  4. package/lib/lib/chill-form.component.d.ts +1 -1
  5. package/package.json +3 -3
  6. package/service-worker/chill-sharp-service-worker.js +166 -166
  7. package/styles/core-theme.scss +1235 -1235
  8. package/.agents/skills/chillsharp-current-user-preferences/SKILL.md +0 -70
  9. package/.agents/skills/chillsharp-ui-template/SKILL.md +0 -18
  10. package/doc/AIAssistedDevelopment/README.md +0 -185
  11. package/doc/AttachmentModel/README.md +0 -173
  12. package/doc/AuthenticationModel/README.md +0 -213
  13. package/doc/AuthenticationModel/how-to-integreate-auth-minimal-api.md +0 -293
  14. package/doc/ChillSharpClient.md +0 -464
  15. package/doc/ClientGeneration/README.md +0 -172
  16. package/doc/ComplianceGuide/README.md +0 -178
  17. package/doc/Configuration/README.md +0 -94
  18. package/doc/CurrentUserPreferences.md +0 -114
  19. package/doc/DateTimePolicy/README.md +0 -154
  20. package/doc/DateTimeSerialization.md +0 -423
  21. package/doc/Endpoints.md +0 -260
  22. package/doc/HowTo/01-simple-blog-sqlite.md +0 -153
  23. package/doc/HowTo/02-blog-schema-labels.md +0 -140
  24. package/doc/HowTo/03-authentication.md +0 -218
  25. package/doc/HowTo/04-blog-posts-one-to-many.md +0 -194
  26. package/doc/HowTo/05-docker-env-variables.md +0 -274
  27. package/doc/HowTo/06-chunk-transactions-autocomplete.md +0 -196
  28. package/doc/Mcp/ChatGPT.md +0 -291
  29. package/doc/Mcp/README.md +0 -799
  30. package/doc/MenuGuide/README.md +0 -49
  31. package/doc/ModelPreparation.md +0 -255
  32. package/doc/PermissionModel/README.md +0 -277
  33. package/doc/README.md +0 -228
  34. package/doc/ReferenceExistence.md +0 -130
  35. package/doc/RegisterContext.md +0 -217
  36. package/doc/UiCore/CRUD.md +0 -170
  37. package/doc/UiCore/README.md +0 -13
  38. package/doc/ValidationModel/README.md +0 -117
  39. package/doc/it/AIAssistedDevelopment/README.md +0 -185
  40. package/doc/it/AttachmentModel/README.md +0 -173
  41. package/doc/it/AuthenticationModel/README.md +0 -171
  42. package/doc/it/AuthenticationModel/how-to-integreate-auth-minimal-api.md +0 -292
  43. package/doc/it/ChillSharpClient.md +0 -464
  44. package/doc/it/ClientGeneration/README.md +0 -152
  45. package/doc/it/ComplianceGuide/README.md +0 -178
  46. package/doc/it/Configuration/README.md +0 -94
  47. package/doc/it/CurrentUserPreferences.md +0 -114
  48. package/doc/it/DateTimePolicy/README.md +0 -154
  49. package/doc/it/DateTimeSerialization.md +0 -423
  50. package/doc/it/Endpoints.md +0 -260
  51. package/doc/it/HowTo/01-simple-blog-sqlite.md +0 -152
  52. package/doc/it/HowTo/02-blog-schema-labels.md +0 -139
  53. package/doc/it/HowTo/03-authentication.md +0 -221
  54. package/doc/it/HowTo/04-blog-posts-one-to-many.md +0 -193
  55. package/doc/it/HowTo/05-docker-env-variables.md +0 -268
  56. package/doc/it/HowTo/06-chunk-transactions-autocomplete.md +0 -196
  57. package/doc/it/Mcp/ChatGPT.md +0 -291
  58. package/doc/it/Mcp/README.md +0 -799
  59. package/doc/it/MenuGuide/README.md +0 -49
  60. package/doc/it/ModelPreparation.md +0 -254
  61. package/doc/it/PermissionModel/README.md +0 -190
  62. package/doc/it/README.md +0 -172
  63. package/doc/it/ReferenceExistence.md +0 -130
  64. package/doc/it/RegisterContext.md +0 -218
  65. package/doc/it/UiCore/CRUD.md +0 -170
  66. package/doc/it/UiCore/README.md +0 -13
  67. package/doc/it/ValidationModel/README.md +0 -117
  68. package/template-customization/upgrade.ps1.template +0 -342
  69. package/template-customization/upgrade.sh.template +0 -271
@@ -1,423 +0,0 @@
1
- # Serializzazione di data e ora ChillSharp
2
-
3
- Versione originale in inglese: [English](../DateTimeSerialization.md)
4
-
5
-
6
- Questo documento spiega come ChillSharp serializza e analizza i valori `DateTimeOffset`, `DateTime`, `DateOnly` e `TimeOnly` nei payload DTO.
7
-
8
- Confronta inoltre il comportamento di ChillSharp con il comportamento predefinito ASP.NET Core `System.Text.Json` in modo da poter vedere rapidamente qual è il comportamento .NET standard e qual è il comportamento specifico di ChillSharp.
9
-
10
- ## Perché è importante
11
-
12
- ChillSharp sposta i dati attraverso i contenitori delle proprietà DTO anziché tramite parametri del controller fortemente tipizzati. Ciò significa che i valori di data e ora vengono convertiti esplicitamente all'interno del mappatore DTO.
13
-
14
- Per la maggior parte delle applicazioni le domande importanti sono:
15
-
16
- - quale formato di stringa lascia il server
17
- - quale formato di stringa il server accetta in input
18
- - se gli offset e i fusi orari vengono preservati, normalizzati o ignorati
19
-
20
- ChillSharp ora segue il comportamento .NET standard per `DateOnly` e `TimeOnly`, accettando comunque stringhe data-ora ISO 8601 complete durante la rilettura in tali tipi CLR.
21
-
22
- ## Tabella di confronto rapido
23
-
24
- | Tipo CLR | ASP.NET Core predefinito/`System.Text.Json` | Uscita ChillSharp |
25
- | --- | --- | --- |
26
- | | Data-ora ISO 8601 con offset | Data-ora ISO 8601 con offset |
27
- | | Data-ora ISO 8601, basato su `DateTime.Kind` | Data e ora ISO 8601 convertite nel fuso orario del sistema ChillSharp |
28
- | | | |
29
- | | | |
30
-
31
- ## Fuso orario del sistema ChillSharp
32
-
33
- ChillSharp utilizza un fuso orario di sistema configurabile solo per `DateTime` e alcuni casi di normalizzazione `DateTimeOffset`.
34
-
35
- Variabile d'ambiente:
36
-
37
- ```text
38
- CHILLSHARP_SYSTEM_TIMEZONE
39
- ```
40
-
41
- Predefinito:
42
-
43
- ```text
44
- Europe/Rome
45
- ```
46
-
47
- Valore atteso:
48
-
49
- - un ID fuso orario IANA come `Europe/Rome`
50
- - un altro esempio è `America/New_York`
51
-
52
- Questa impostazione **non** modifica il formato di output di `DateOnly` o `TimeOnly`.
53
-
54
- ## Serializzazione in uscita
55
-
56
- La serializzazione in uscita avviene quando ChillSharp legge i valori CLR di entità/query e li scrive in DTO `Properties`.
57
-
58
- ### `DateTimeOffset`
59
-
60
- ChillSharp scrive `DateTimeOffset` esattamente come data-ora ISO 8601 con offset.
61
-
62
- Esempio di valore CLR:
63
-
64
- ```csharp
65
- new DateTimeOffset(2026, 4, 11, 14, 30, 0, TimeSpan.FromHours(2))
66
- ```
67
-
68
- Serializzato da ChillSharp:
69
-
70
- ```json
71
- "2026-04-11T14:30:00.0000000+02:00"
72
- ```
73
-
74
- Questo è effettivamente allineato con la normale serializzazione JSON ASP.NET Core.
75
-
76
- ### `DateTime`
77
-
78
- ChillSharp scrive `DateTime` come data/ora ISO 8601 nel fuso orario del sistema ChillSharp configurato.
79
-
80
- Se il valore di origine è UTC, ChillSharp lo converte nel fuso orario del sistema configurato prima della scrittura.
81
-
82
- Esempio con `CHILLSHARP_SYSTEM_TIMEZONE=Europe/Rome`:
83
-
84
- ```csharp
85
- new DateTime(2026, 4, 11, 12, 30, 0, DateTimeKind.Utc)
86
- ```
87
-
88
- Serializzato da ChillSharp:
89
-
90
- ```json
91
- "2026-04-11T14:30:00.0000000+02:00"
92
- ```
93
-
94
- Un altro esempio con un `DateTime` non specificato:
95
-
96
- ```csharp
97
- new DateTime(2026, 4, 11, 14, 30, 0, DateTimeKind.Unspecified)
98
- ```
99
-
100
- Serializzato da ChillSharp:
101
-
102
- ```json
103
- "2026-04-11T14:30:00.0000000+02:00"
104
- ```
105
-
106
- La differenza rispetto al semplice ASP.NET Core è che ChillSharp applica in modo coerente un fuso orario di sistema configurato durante la scrittura di `DateTime`.
107
-
108
- ### `DateOnly`
109
-
110
- ChillSharp ora mantiene il comportamento .NET standard per `DateOnly`.
111
-
112
- Esempio di valore CLR:
113
-
114
- ```csharp
115
- new DateOnly(2026, 4, 11)
116
- ```
117
-
118
- Serializzato da ChillSharp:
119
-
120
- ```json
121
- "2026-04-11"
122
- ```
123
-
124
- Questo è intenzionalmente semplice. Non sono presenti offset, componenti temporali e conversioni del fuso orario sull'output.
125
-
126
- ### `TimeOnly`
127
-
128
- ChillSharp ora mantiene il comportamento .NET standard per `TimeOnly`.
129
-
130
- Esempio di valore CLR:
131
-
132
- ```csharp
133
- new TimeOnly(14, 30, 15, 123)
134
- ```
135
-
136
- Serializzato da ChillSharp:
137
-
138
- ```json
139
- "14:30:15.1230000"
140
- ```
141
-
142
- Non è presente alcuna conversione di data e fuso orario sull'output.
143
-
144
- ## Analisi in entrata
145
-
146
- L'analisi in entrata avviene quando ChillSharp legge DTO `Properties` e li applica a oggetti CLR entità/query.
147
-
148
- Questo è il lato più permissivo del mappatore.
149
-
150
- ### `DateTimeOffset` regole di input
151
-
152
- Se il JSON in entrata contiene:
153
-
154
- -
155
- - un offset UTC esplicito
156
-
157
- e il target CLR è `DateTimeOffset`, ChillSharp si comporta in questo modo:
158
-
159
- - se il valore è UTC (`Z` o `+00:00`), converte il valore nel fuso orario del sistema ChillSharp configurato
160
- - Se il valore ha un altro offset esplicito, mantiene l'offset così com'è
161
-
162
- Ingresso di esempio:
163
-
164
- ```json
165
- "2026-04-11T12:30:00Z"
166
- ```
167
-
168
- Memorizzato in una proprietà `DateTimeOffset` con fuso orario del sistema `Europe/Rome`:
169
-
170
- ```csharp
171
- 2026-04-11 14:30:00 +02:00
172
- ```
173
-
174
- Ingresso di esempio:
175
-
176
- ```json
177
- "2026-04-11T12:30:00+01:00"
178
- ```
179
-
180
- Memorizzato in una proprietà `DateTimeOffset`:
181
-
182
- ```csharp
183
- 2026-04-11 12:30:00 +01:00
184
- ```
185
-
186
- ### `DateTime` regole di input
187
-
188
- Se la destinazione CLR è `DateTime`:
189
-
190
- - L'input UTC viene convertito nel fuso orario del sistema ChillSharp configurato
191
- - Anche l'input con un offset esplicito viene convertito nel fuso orario del sistema ChillSharp configurato
192
- - l'input senza offset viene analizzato come un normale valore data-ora
193
-
194
- Ingresso di esempio:
195
-
196
- ```json
197
- "2026-04-11T12:30:00Z"
198
- ```
199
-
200
- Memorizzato in una proprietà `DateTime` con fuso orario del sistema `Europe/Rome`:
201
-
202
- ```csharp
203
- 2026-04-11 14:30:00
204
- ```
205
-
206
- Ingresso di esempio:
207
-
208
- ```json
209
- "2026-04-11T12:30:00+01:00"
210
- ```
211
-
212
- Memorizzato in una proprietà `DateTime` con fuso orario del sistema `Europe/Rome`:
213
-
214
- ```csharp
215
- 2026-04-11 13:30:00
216
- ```
217
-
218
- ### `DateOnly` regole di input
219
-
220
- Se la destinazione CLR è `DateOnly`, ChillSharp estrae solo l'anno, il mese e il giorno.
221
-
222
- Ciò significa che accetta entrambi:
223
-
224
- - una semplice stringa di data
225
- - una stringa data-ora ISO 8601 completa
226
-
227
- e ignora le informazioni su ora, offset e fuso orario.
228
-
229
- Ingresso di esempio:
230
-
231
- ```json
232
- "2026-04-11"
233
- ```
234
-
235
- Memorizzato come:
236
-
237
- ```csharp
238
- new DateOnly(2026, 4, 11)
239
- ```
240
-
241
- Ingresso di esempio:
242
-
243
- ```json
244
- "2026-04-11T23:59:58.321-05:00"
245
- ```
246
-
247
- Memorizzato come:
248
-
249
- ```csharp
250
- new DateOnly(2026, 4, 11)
251
- ```
252
-
253
- Questa regola è intenzionale. `DateOnly` rappresenta solo una data di calendario, quindi ChillSharp scarta i dettagli di ora e zona durante l'assegnazione.
254
-
255
- ### `TimeOnly` regole di input
256
-
257
- Se la destinazione CLR è `TimeOnly`, ChillSharp estrae solo la parte temporale.
258
-
259
- Ciò significa che accetta entrambi:
260
-
261
- - una semplice stringa temporale
262
- - una stringa data-ora ISO 8601 completa
263
-
264
- e ignora le informazioni su data, offset e fuso orario.
265
-
266
- Ingresso di esempio:
267
-
268
- ```json
269
- "14:30:15.1230000"
270
- ```
271
-
272
- Memorizzato come:
273
-
274
- ```csharp
275
- new TimeOnly(14, 30, 15, 123)
276
- ```
277
-
278
- Ingresso di esempio:
279
-
280
- ```json
281
- "2026-04-11T23:59:58.321-05:00"
282
- ```
283
-
284
- Memorizzato come:
285
-
286
- ```csharp
287
- new TimeOnly(23, 59, 58, 321)
288
- ```
289
-
290
- Ciò è utile quando i client inviano un timestamp completo ma il campo di destinazione rappresenta concettualmente solo l'ora dell'orologio locale.
291
-
292
- ## Esempi affiancati
293
-
294
- Assumere:
295
-
296
- ```text
297
- CHILLSHARP_SYSTEM_TIMEZONE=Europe/Rome
298
- ```
299
-
300
- ### Esempio 1: `DateTimeOffset`
301
-
302
- Valore CLR:
303
-
304
- ```csharp
305
- new DateTimeOffset(2026, 4, 11, 14, 30, 0, TimeSpan.FromHours(2))
306
- ```
307
-
308
- Output ASP.NET Core predefinito:
309
-
310
- ```json
311
- "2026-04-11T14:30:00+02:00"
312
- ```
313
-
314
- Uscita ChillSharp:
315
-
316
- ```json
317
- "2026-04-11T14:30:00.0000000+02:00"
318
- ```
319
-
320
- ### Esempio 2: `DateTime` in UTC
321
-
322
- Valore CLR:
323
-
324
- ```csharp
325
- new DateTime(2026, 4, 11, 12, 30, 0, DateTimeKind.Utc)
326
- ```
327
-
328
- Output ASP.NET Core predefinito:
329
-
330
- ```json
331
- "2026-04-11T12:30:00Z"
332
- ```
333
-
334
- Uscita ChillSharp:
335
-
336
- ```json
337
- "2026-04-11T14:30:00.0000000+02:00"
338
- ```
339
-
340
- ### Esempio 3: `DateOnly`
341
-
342
- Valore CLR:
343
-
344
- ```csharp
345
- new DateOnly(2026, 4, 11)
346
- ```
347
-
348
- Output ASP.NET Core predefinito:
349
-
350
- ```json
351
- "2026-04-11"
352
- ```
353
-
354
- Uscita ChillSharp:
355
-
356
- ```json
357
- "2026-04-11"
358
- ```
359
-
360
- ### Esempio 4: `TimeOnly`
361
-
362
- Valore CLR:
363
-
364
- ```csharp
365
- new TimeOnly(14, 30, 15, 123)
366
- ```
367
-
368
- Output ASP.NET Core predefinito:
369
-
370
- ```json
371
- "14:30:15.1230000"
372
- ```
373
-
374
- Uscita ChillSharp:
375
-
376
- ```json
377
- "14:30:15.1230000"
378
- ```
379
-
380
- ### Esempio 5: timestamp completo inviato a `DateOnly`
381
-
382
- JSON in entrata:
383
-
384
- ```json
385
- "2026-04-11T23:59:58.321-05:00"
386
- ```
387
-
388
- Archiviato da ChillSharp in una proprietà `DateOnly`:
389
-
390
- ```csharp
391
- new DateOnly(2026, 4, 11)
392
- ```
393
-
394
- ### Esempio 6: timestamp completo inviato a `TimeOnly`
395
-
396
- JSON in entrata:
397
-
398
- ```json
399
- "2026-04-11T23:59:58.321-05:00"
400
- ```
401
-
402
- Archiviato da ChillSharp in una proprietà `TimeOnly`:
403
-
404
- ```csharp
405
- new TimeOnly(23, 59, 58, 321)
406
- ```
407
-
408
- ## Guida pratica
409
-
410
- - Utilizzare `DateTimeOffset` quando l'offset stesso è importante e deve sopravvivere ai viaggi di andata e ritorno.
411
- - Utilizzare `DateTime` quando l'applicazione considera un valore come l'ora locale nel fuso orario del sistema ChillSharp configurato.
412
- - Utilizza `DateOnly` per compleanni, date contabili, date lavorative, scadenze per giorno di calendario e concetti simili.
413
- - Utilizzare `TimeOnly` per orari di apertura, orari degli appuntamenti e altri valori che non sono intenzionalmente timestamp completi.
414
-
415
- ## Configurazione correlata
416
-
417
- Per il riferimento alle variabili d'ambiente, vedere:
418
-
419
- - [Configurazione/README.md](./Configuration/README.md)
420
-
421
- Per esempi di Docker e ambiente runtime, vedere:
422
-
423
- - [HowTo/05-docker-env-variables.md](./HowTo/05-docker-env-variables.md)
@@ -1,260 +0,0 @@
1
- # Endpoint ChillSharp
2
-
3
- Versione originale in inglese: [English](../Endpoints.md)
4
-
5
-
6
- Questo documento elenca gli endpoint HTTP, SignalR e MCP esposti dai moduli API ChillSharp integrati.
7
-
8
- ## Percorso base
9
-
10
- Gli endpoint ChillSharp sono montati in un percorso base API configurabile.
11
-
12
- Predefinito:
13
-
14
- ```text
15
- /api
16
- ```
17
-
18
- Configurazione:
19
-
20
- ```text
21
- CHILLSHARP_API_BASE_PATH=/api
22
- ```
23
-
24
- o nel codice:
25
-
26
- ```csharp
27
- builder.Services.AddChillApi<MyDbContext>(options =>
28
- {
29
- options.ApiBasePath = "/api";
30
- });
31
-
32
- app.MapChillApi();
33
- ```
34
-
35
- Gli esempi seguenti utilizzano il percorso di base predefinito `/api`. Se imposti `CHILLSHARP_API_BASE_PATH=/backend`, sostituisci `/api` con `/backend`.
36
-
37
- ## Radice e diagnostica
38
-
39
- Questi endpoint sono registrati da `MapChillApi()`.
40
-
41
- | Metodo | Percorso | Descrizione |
42
- | --- | --- | --- |
43
- | OTTIENI | | Risposta sanitaria di base di ChillSharp, abbinata anche quando i chiamanti richiedono `/api/`. |
44
- | OTTIENI | | Risposta sanitaria di base di ChillSharp. |
45
- | OTTIENI | | Restituisce la licenza ChillSharp e i metadati del progetto. |
46
-
47
- ## API DTO principale
48
-
49
- Questi endpoint sono abilitati da `AddChillApi<TContext>()` e sono disponibili quando viene registrata l'API Chill di base.
50
-
51
- Itinerario base:
52
-
53
- ```text
54
- /api/chill
55
- ```
56
-
57
- | Metodo | Percorso | Descrizione |
58
- | --- | --- | --- |
59
- | POST | | Esegue un `ChillDtoQuery` dinamico. |
60
- | POST | | Esegue una ricerca full-text rispetto al tipo di entità richiesto. |
61
- | POST | | Trova un'entità per tipo e GUID. |
62
- | POST | | Crea un'entità da `ChillDtoEntity`. |
63
- | POST | | Aggiorna un'entità da `ChillDtoEntity`. |
64
- | POST | | Elimina un'entità identificata da `ChillDtoEntity`. |
65
- | POST | | Esegue la logica di completamento automatico per un'entità o una query DTO. |
66
- | POST | | Esegue la convalida per un'entità o una query DTO. |
67
- | POST | | Esegue un elenco di operazioni di raffreddamento in una richiesta. |
68
-
69
- Quando i servizi ACL dell'entità vengono registrati e il chiamante viene autenticato, questi endpoint possono anche applicare autorizzazioni a livello di entità.
70
-
71
- ## Notifiche SignalR
72
-
73
- L'hub di notifica è registrato da `MapChillApi()`.
74
-
75
- | Protocollo | Percorso | Descrizione |
76
- | --- | --- | --- |
77
- | SegnaleR | | Hub per le notifiche di modifica dell'entità. |
78
-
79
- Metodi dell'hub:
80
-
81
- | Metodo | Parametri | Descrizione |
82
- | --- | --- | --- |
83
- | | `chillType`, opzionale `guid` | Sottoscrive la connessione a tutte le modifiche per un tipo o un'entità. |
84
- | | `chillType`, opzionale `guid` | Rimuove un abbonamento precedente. |
85
-
86
- Metodo da server a client:
87
-
88
- | Metodo | Descrizione |
89
- | --- | --- |
90
- | | Inviato quando le entità sottoscritte cambiano. |
91
-
92
- ## API di autenticazione
93
-
94
- Abilitato quando `ChillApiOptions.EnableAuthApi` è `true` e il contesto implementa `IChillAuthDbContext`.
95
-
96
- Itinerario base:
97
-
98
- ```text
99
- /api/chill-auth
100
- ```
101
-
102
- ### Endpoint dell'account
103
-
104
- | Metodo | Percorso | Aut. | Descrizione |
105
- | --- | --- | --- | --- |
106
- | POST | | Anonimo | Registra un nuovo account di identità e restituisce i token. |
107
- | POST | | Anonimo | Autentica e restituisce token. |
108
- | POST | | Anonimo | Scambia un token di aggiornamento con nuovi token. |
109
- | POST | | Obbligatorio | Revoca la sessione corrente. |
110
- | POST | | Obbligatorio | Modifica la password dell'utente corrente. |
111
- | POST | | Anonimo | Richiede o genera un token di reimpostazione della password. |
112
- | POST | | Anonimo | Reimposta una password con un token di reimpostazione. |
113
-
114
- ### Utente corrente e metadati
115
-
116
- | Metodo | Percorso | Aut. | Descrizione |
117
- | --- | --- | --- | --- |
118
- | OTTIENI | | Facoltativo | Restituisce le autorizzazioni dirette, di ruolo e derivate dal ruolo per l'utente corrente. |
119
- | OTTIENI | | Gestione | Restituisce un elenco utenti semplificato per le interfacce utente di gestione. |
120
- | OTTIENI | | Gestione | Restituisce un elenco di ruoli semplificato per le interfacce utente di gestione. |
121
- | OTTIENI | | Gestione | Restituisce i moduli logici disponibili. |
122
- | OTTIENI | | Gestione | Restituisce le entità per un modulo. |
123
- | OTTIENI | | Gestione | Restituisce le query per un modulo. |
124
- | OTTIENI | | Gestione | Restituisce le proprietà per un tipo Chill. |
125
-
126
- ### Utenti
127
-
128
- | Metodo | Percorso | Aut. | Descrizione |
129
- | --- | --- | --- | --- |
130
- | OTTIENI | | Gestione | Elenca gli utenti autorizzati. |
131
- | OTTIENI | | Gestione | Ottiene un utente con autorizzazione. |
132
- | POST | | Gestione | Crea un utente di autorizzazione. |
133
- | METTERE | | Gestione | Aggiorna un utente di autorizzazione. |
134
- | ELIMINA | | Gestione | Elimina un utente autorizzato. |
135
- | OTTIENI | | Gestione | Elenca i ruoli assegnati a un utente. |
136
- | METTERE | | Gestione | Assegna un ruolo a un utente. |
137
- | ELIMINA | | Gestione | Rimuove un ruolo da un utente. |
138
-
139
- ### Ruoli
140
-
141
- | Metodo | Percorso | Aut. | Descrizione |
142
- | --- | --- | --- | --- |
143
- | OTTIENI | | Gestione | Elenca i ruoli. |
144
- | OTTIENI | | Gestione | Ottiene un ruolo. |
145
- | POST | | Gestione | Crea un ruolo. |
146
- | METTERE | | Gestione | Aggiorna un ruolo. |
147
- | ELIMINA | | Gestione | Elimina un ruolo. |
148
-
149
- ### Regole di autorizzazione
150
-
151
- | Metodo | Percorso | Aut. | Descrizione |
152
- | --- | --- | --- | --- |
153
- | OTTIENI | | Gestione | Elenca le regole di autorizzazione, facoltativamente filtrate da `userGuid` o `roleGuid`. |
154
- | OTTIENI | | Gestione | Ottiene una regola di autorizzazione. |
155
- | POST | | Gestione | Crea una regola di autorizzazione. |
156
- | METTERE | | Gestione | Aggiorna una regola di autorizzazione. |
157
- | ELIMINA | | Gestione | Elimina una regola di autorizzazione. |
158
-
159
- `Management` significa che l'endpoint è protetto da `ChillAuthManagementAccessFilter`.
160
-
161
- ## API dello schema
162
-
163
- Abilitato quando `ChillApiOptions.EnableSchemaApi` è `true` e il contesto implementa `IChillSchemaDbContext`.
164
-
165
- Itinerario base:
166
-
167
- ```text
168
- /api/chill-schema
169
- ```
170
-
171
- | Metodo | Percorso | Aut. | Descrizione |
172
- | --- | --- | --- | --- |
173
- | OTTIENI | | Dipende dalla protezione API globale | Ottiene uno schema. |
174
- | OTTIENI | | Dipende dalla protezione API globale | Elenca i riepiloghi delle entità e degli schemi di query. |
175
- | POST | | Gestione dello schema | Crea o aggiorna uno schema. |
176
- | OTTIENI | | Gestione dello schema | Ottiene le opzioni dello schema per un tipo di entità. |
177
- | POST | | Gestione dello schema | Crea o aggiorna le opzioni dell'entità. |
178
- | OTTIENI | | Dipende dalla protezione API globale | Restituisce le voci del menu, filtrate in base ai metadati di autenticazione quando disponibili. |
179
- | POST | | Gestione dello schema | Crea o aggiorna una voce di menu. |
180
- | ELIMINA | | Gestione dello schema | Elimina una voce di menu. |
181
-
182
- `Schema management` significa che l'endpoint è protetto da `ChillSchemaManagementAccessFilter`.
183
-
184
- ## API I18n
185
-
186
- Abilitato quando `ChillApiOptions.EnableI18nApi` è `true` e il contesto implementa `IChillI18nDbContext`.
187
-
188
- Itinerario base:
189
-
190
- ```text
191
- /api/chill-i18n
192
- ```
193
-
194
- | Metodo | Percorso | Aut. | Descrizione |
195
- | --- | --- | --- | --- |
196
- | POST | | Anonimo | Ottiene un testo localizzato. |
197
- | POST | | Anonimo | Ottiene più testi localizzati. |
198
- | METTERE | | Dipende dalla protezione API globale | Crea o aggiorna il testo localizzato. |
199
-
200
- ## API per gli allegati
201
-
202
- Abilitato quando `ChillApiOptions.EnableAttachmentApi` è `true` e il contesto implementa `IChillAttachmentDbContext`.
203
-
204
- Itinerario base:
205
-
206
- ```text
207
- /api/chill-attachment
208
- ```
209
-
210
- | Metodo | Percorso | Aut. | Descrizione |
211
- | --- | --- | --- | --- |
212
- | OTTIENI | | Anonimo per i file pubblici; autenticato per file privati ​​| Scarica un allegato archiviato. |
213
- | POST | | Dipende dalla protezione API globale | Carica uno o più file come dati del modulo multiparte. |
214
-
215
- Carica i campi del modulo:
216
-
217
- | Campo | Obbligatorio | Descrizione |
218
- | --- | --- | --- |
219
- | | Sì | Tipo di raffreddamento dell'entità a cui appartiene l'allegato. |
220
- | | Sì | GUID dell'entità a cui appartiene l'allegato. |
221
- | | Sì | Uno o più file caricati. |
222
- | | No | Visualizza il titolo. Il valore predefinito è il nome file senza estensione. |
223
- | | No | Descrizione dell'allegato facoltativa. |
224
- | | No | Se i chiamanti anonimi possono scaricare il file. |
225
-
226
- ## API MCP
227
-
228
- Abilitato quando `ChillApiOptions.EnableMcpApi` è `true`, `ChillMcpOptions.Enabled` è `true` e il contesto implementa `IChillSchemaDbContext`.
229
-
230
- Percorso predefinito:
231
-
232
- ```text
233
- /api/chill-mcp
234
- ```
235
-
236
- L'endpoint MCP viene registrato tramite `MapMcp(...)` dal Model Context Protocol ASP.NET Core SDK. Il suo comportamento HTTP segue il contratto di trasporto dell'SDK MCP.
237
-
238
- Puoi sovrascrivere direttamente il percorso MCP:
239
-
240
- ```csharp
241
- builder.Services.AddChillMcpApi<MyDbContext>(options =>
242
- {
243
- options.RoutePattern = "/api/chill-mcp";
244
- });
245
- ```
246
-
247
- Se `RoutePattern` è relativo, ad esempio `chill-mcp`, ChillSharp lo inserisce nel percorso base API configurato.
248
-
249
- ## Regole di protezione
250
-
251
- `ChillApiOptions.ProtectedApi` applica l'autorizzazione agli endpoint del controller mappato e all'hub SignalR. Alcuni endpoint consentono esplicitamente l'accesso anonimo, ad esempio login/registrazione di autenticazione, endpoint di lettura i18n e download di allegati pubblici.
252
-
253
- Gli endpoint di gestione specifici del modulo aggiungono filtri più rigidi:
254
-
255
- | Filtra | Utilizzato da |
256
- | --- | --- |
257
- | | Utenti di autenticazione, ruoli, autorizzazioni e metadati di gestione. |
258
- | | Operazioni di scrittura di schemi e menu. |
259
-
260
- I controlli ACL dell'entità possono essere applicati anche alle operazioni DTO principali e agli allegati quando è registrato un `IChillEntityAclService`.