> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/it/config/repository.md).

# Repository

Configuri l'archiviazione del repository di PowerShell Universal, la configurazione basata su file, le risorse del database, i modelli e la codifica dei file.

PowerShell Universal archivia principalmente la configurazione nel proprio repository. La cartella predefinita del repository è `%ProgramData%\UniversalAutomation\Repository`; modifichi la posizione in `appsettings.json`.

Il repository contiene script di configurazione PowerShell e file XML creati dalla console di amministrazione. PowerShell Universal monitora la cartella per rilevare le modifiche e ricarica la configurazione interessata. Quando la sincronizzazione Git è abilitata, questa è la cartella sincronizzata con il repository remoto.

Tutti i cmdlet di configurazione fanno parte del [modulo Universal](https://www.powershellgallery.com/packages/Universal).

## Cosa viene archiviato nel repository

La configurazione viene archiviata come testo normale per ottenere diff compatibili con il controllo del codice sorgente. Le risorse basate sul repository includono autenticazione, agenti e strumenti IA, app, endpoint, ambienti, licenze, pagine di accesso, pagine, cartelle pubblicate, limiti di frequenza, ruoli, pianificazioni, script, impostazioni, tag, trigger, variabili e casseforti.

I token delle app, le identità e la cronologia dei processi vengono archiviati nel database di PowerShell Universal.

## Modifica del repository

Modifichi i file del repository nella console di amministrazione in **Source Control > Files / Repository > Files**, dove è possibile creare cartelle e modificare i file nella directory del repository. È anche possibile modificare i file su disco con un editor come Visual Studio Code.

Quando si effettuano modifiche su disco, abiliti il ricaricamento automatico o risolva le modifiche manualmente. Visualizzi le modifiche in sospeso in **Source Control > Files / Repository > Configuration Changes**.

## Script di configurazione

Gli script di configurazione si trovano nella directory `.universal`. La console di amministrazione gestisce le parti generate di questi file, mentre le aree `PSUHeader` e `PSUFooter` rimangono in sola lettura. Utilizzi queste aree per la logica personalizzata, le risorse generate o le classi richieste dagli schemi OpenAPI.

```powershell
#region PSUHeader

1..100 | ForEach-Object {
    New-PSUEndpoint -Url "/endpoint/$_" -Endpoint { }
}

#endregion

New-PSUEndpoint -Url '/user' -Endpoint { }

#region PSUFooter
#endregion
```

| File                           | Scopo                                                                                                |
| ------------------------------ | ---------------------------------------------------------------------------------------------------- |
| `authentication.ps1`           | Configurazione dell'autenticazione tramite form.                                                     |
| `aiAgents.ps1` e `aiTools.ps1` | Agenti e strumenti IA.                                                                               |
| `branding.ps1`                 | Impostazioni di branding.                                                                            |
| `dashboards.ps1`               | Registrazione delle app e metadati.                                                                  |
| `endpoints.ps1`                | Definizioni degli endpoint API.                                                                      |
| `environments.ps1`             | Ambienti di esecuzione.                                                                              |
| `healthChecks.ps1`             | Controlli di integrità.                                                                              |
| `initialize.ps1`               | Viene eseguito prima dell'avvio dell'individuazione della configurazione.                            |
| `licenses.ps1`                 | Configurazione della licenza del prodotto.                                                           |
| `middleware.ps1`               | Personalizzazione delle richieste HTTP.                                                              |
| `publishedFolders.ps1`         | Cartelle pubblicate.                                                                                 |
| `rateLimits.ps1`               | Limiti di frequenza.                                                                                 |
| `roles.ps1`                    | Ruoli.                                                                                               |
| `schedules.ps1`                | Pianificazioni.                                                                                      |
| `scripts.ps1`                  | Metadati degli script; i percorsi degli script possono essere relativi al repository o assoluti.     |
| `settings.ps1`                 | Impostazioni della piattaforma.                                                                      |
| `tags.ps1`                     | Tag.                                                                                                 |
| `triggers.ps1`                 | Trigger.                                                                                             |
| `variables.ps1`                | Variabili.                                                                                           |
| `vaults.ps1`                   | Casseforti.                                                                                          |
| `workflows.ps1`                | Definizioni dei flussi di lavoro quando i flussi di lavoro utilizzano la persistenza nel repository. |

## Modelli

Utilizzi la cartella `Templates` per fornire modelli per le risorse create più frequentemente nella console di amministrazione. Gli script PowerShell nelle cartelle seguenti vengono visualizzati come modelli:

* `Templates\App`
* `Templates\AppPage`
* `Templates\Endpoint`
* `Templates\Script`

## .psuignore

Utilizzi `.psuignore` per escludere file e percorsi dal watcher del file system della configurazione. Questo è utile per i log o altri file archiviati accanto alla configurazione. Aggiunga un'espressione regolare per riga; i percorsi corrispondenti vengono ignorati.

```
logs.*
.git.*
```

## Codifica dei file

Configuri la codifica dei file in **Settings gear > General**. Il valore predefinito è UTF-8 con un byte-order mark (`utf-8-bom`). Selezioni `utf-8` per omettere il byte-order mark.

PowerShell Universal supporta le codifiche restituite da [Encoding.GetEncodings](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-10.0), tra cui `utf-32`, `utf-32-bom`, `utf-8`, `utf-8-bom` e `windows-1250`. Aggiunga `-bom` a un nome di codifica per includere un byte-order mark.

## Risorse del database

È possibile archiviare determinate risorse nel database invece che nel repository di configurazione. Le risorse basate sul database sono disponibili immediatamente su tutti i computer connessi in un cluster PowerShell Universal.

> \[!WARNING] Quando una risorsa è configurata per la persistenza nel database, PowerShell Universal ignora il relativo file di configurazione nel repository.

Le app, gli endpoint con percorsi, gli script e i moduli non possono utilizzare la persistenza nel database.

Configuri una risorsa impostando `Data:Persistence:<ResourceType>` su `Database` in `appsettings.json`, quindi riavvii PowerShell Universal. Ad esempio, in questo modo i flussi di lavoro vengono archiviati nel database invece che in `.universal\workflows.ps1`:

```json
{
  "Data": {
    "Persistence": {
      "Workflow": "Database"
    }
  }
}
```

Imposti la variabile di ambiente equivalente prima di avviare PowerShell Universal:

```
Data__Persistence__Workflow=Database
```

Dopo il riavvio, i flussi di lavoro nuovi e modificati vengono salvati nel database e conservati tra i riavvii. I parametri dei flussi di lavoro seguono l'impostazione di persistenza del flusso di lavoro padre, pertanto vengono archiviati anch'essi nel database. Lo stesso schema di impostazione si applica a ogni risorsa del database supportata.

Ad esempio, quanto segue archivia le pianificazioni e i parametri delle pianificazioni nel database:

```json
{
  "Data": {
    "Persistence": {
      "Schedule": "Database",
      "ScheduleParameter": "Database"
    }
  }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/it/config/repository.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
