)
+
+## Preparation
+
+After having cloned the repository, move in the root folder and follow these steps:
+
+1. launch `setup-tools.bat`: this will check the current Powershell environment and try to install required modules
+2. launch `setup-json-environment.bat`: follow the instrucions to generate a base environment file starting form the structure defined in the `env.json.template` file; at the end of the process you should have a `env.json` file in the root folder containing base values and secrets
+
+### Bruno collections
+
+If you have Bruno installed and intend to use it as the main tool, also do the following:
+
+1. launch `update-bruno-environments.bat`: the script will generate an environment file named `.env` in each one of the Bruno collection folders, using the base environment generated in the previous step; this minimizes the manual intervention needed to insert secrets in those collections
+2. launch Bruno and open the base collection folder named `bruno`.
+
+### httpyac requests
+
+If you want to use VSCode with httpyac extension, also do the following:
+
+1. launch `generate-httpyac-requests.bat`: the script will create an `autodocs/httpyac` folder in the root of the project containing the same Bruno requests in a standard HTTP format which can be read by VSCode and/or httpyac extension
+2. launch `update-httpyac-environments.bat`: the script will generate an environment file named `.env` in each one of the generated folders, using the base environment generated in the previous step
+3. launch VSCode and open the base project folder: with the explorer navigate to the `autodocs/httpyac` folder and browse to the request you want to use
+
+## Development
+
+**The main development tool to be used to manage API requests is Bruno.**
+
+The autodocs folder and its subfolder is (and must be) excluded from versioning: if you need to persist updates of any kind, this must be done through Bruno, because modifications to anything under autodocs will be ignored.
+
+### Secrets management
+
+Be careful to not save secret values in Bruno requests or anywhere else!
+
+To make secret management easier in Bruno, in each collection there is an environment file called `.env.template`: this file contains the Bruno variables whose values must not be versioned with an empty value.
+
+**Note**: it's strongly suggested to use the `update-*-environments.bat` scripts to automatically generate the local environment files.
+
+If you want to proceed manually, you should just copy-paste the template file to a new `.env` file and insert the appropriate secret values; this works because only the `.env.template` file is versioned, while all other `.env*` files are excluded.
diff --git a/collections/ESSE3 Anagrafica API/.env.template b/bruno/collections/ESSE3 Anagrafica API/.env.template
similarity index 100%
rename from collections/ESSE3 Anagrafica API/.env.template
rename to bruno/collections/ESSE3 Anagrafica API/.env.template
diff --git a/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al documento di identità.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al documento di identità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al documento di identità.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al documento di identità.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al tratto di carriera.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al tratto di carriera.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al tratto di carriera.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/cancellazione allegato al tratto di carriera.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/folder.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato dichiarazione handicap.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato dichiarazione handicap.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato dichiarazione handicap.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato dichiarazione handicap.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato documento identità.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato documento identità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato documento identità.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato documento identità.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato foto della persona.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato foto della persona.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato foto della persona.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato foto della persona.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato matricola.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato matricola.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato matricola.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato matricola.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato maturità.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato maturità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato maturità.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato maturità.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un autorizzato.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un autorizzato.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un autorizzato.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un autorizzato.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un documento d'identità di un autorizzato.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un documento d'identità di un autorizzato.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un documento d'identità di un autorizzato.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato relativo ad un documento d'identità di un autorizzato.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario italiano.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario italiano.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario italiano.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario italiano.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario straniero.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario straniero.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario straniero.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/inserimento metadati allegato titolo universitario straniero.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati dichiarazioni handicap.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati dichiarazioni handicap.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati dichiarazioni handicap.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati dichiarazioni handicap.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati documento identità.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati documento identità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati documento identità.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati documento identità.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati matricola.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati matricola.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati matricola.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati matricola.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati maturità.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati maturità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati maturità.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati maturità.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ad un autorizzato.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ad un autorizzato.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ad un autorizzato.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ad un autorizzato.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ai documenti d'identità di un autorizzato.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ai documenti d'identità di un autorizzato.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ai documenti d'identità di un autorizzato.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati relativi ai documenti d'identità di un autorizzato.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari italiani.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari italiani.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari italiani.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari italiani.yml
diff --git a/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari stranieri.yml b/bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari stranieri.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari stranieri.yml
rename to bruno/collections/ESSE3 Anagrafica API/allegati/recupero metadati allegati titoli universitari stranieri.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Effettua l'aggiornamento dei consensi del soggetto esterno.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Effettua l'aggiornamento dei consensi del soggetto esterno.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Effettua l'aggiornamento dei consensi del soggetto esterno.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Effettua l'aggiornamento dei consensi del soggetto esterno.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap per cui sono presenti dichiarazioni da valutare.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap per cui sono presenti dichiarazioni da valutare.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap per cui sono presenti dichiarazioni da valutare.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap per cui sono presenti dichiarazioni da valutare.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di handicap.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di parentele.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di parentele.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di parentele.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupera le tipologie di parentele.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei stranieri.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei stranieri.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei stranieri.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei stranieri.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero atenei.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero corsi di studio di un ateneo.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero corsi di studio di un ateneo.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero corsi di studio di un ateneo.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero corsi di studio di un ateneo.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero delle normative legate alle dichiarazioni di handicap.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero delle normative legate alle dichiarazioni di handicap.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero delle normative legate alle dichiarazioni di handicap.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero delle normative legate alle dichiarazioni di handicap.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero istituti.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero istituti.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero istituti.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero istituti.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero range voti maturità.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero range voti maturità.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero range voti maturità.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero range voti maturità.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi cotutela.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi cotutela.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi cotutela.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi cotutela.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi istituto superiore.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi istituto superiore.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi istituto superiore.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi istituto superiore.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli scuola superiore.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli scuola superiore.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli scuola superiore.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli scuola superiore.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli stranieri.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli stranieri.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli stranieri.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipi titoli stranieri.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipologie di dichiarazione dei titoli stranieri.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipologie di dichiarazione dei titoli stranieri.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/Recupero tipologie di dichiarazione dei titoli stranieri.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/Recupero tipologie di dichiarazione dei titoli stranieri.yml
diff --git a/collections/ESSE3 Anagrafica API/anagrafica/folder.yml b/bruno/collections/ESSE3 Anagrafica API/anagrafica/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/anagrafica/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/anagrafica/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/autorizzati/folder.yml b/bruno/collections/ESSE3 Anagrafica API/autorizzati/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/autorizzati/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/autorizzati/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/autorizzati/recupero delle regole di richiesta tutori.yml b/bruno/collections/ESSE3 Anagrafica API/autorizzati/recupero delle regole di richiesta tutori.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/autorizzati/recupero delle regole di richiesta tutori.yml
rename to bruno/collections/ESSE3 Anagrafica API/autorizzati/recupero delle regole di richiesta tutori.yml
diff --git a/collections/ESSE3 Anagrafica API/datiBancari/folder.yml b/bruno/collections/ESSE3 Anagrafica API/datiBancari/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/datiBancari/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/datiBancari/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/datiBancari/recupero dei dati bancari.yml b/bruno/collections/ESSE3 Anagrafica API/datiBancari/recupero dei dati bancari.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/datiBancari/recupero dei dati bancari.yml
rename to bruno/collections/ESSE3 Anagrafica API/datiBancari/recupero dei dati bancari.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica (PUT).yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica (PUT).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica (PUT).yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica (PUT).yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Aggiornamento di una dichiarazioni di handicap legata ad un'anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Recupera il blob dell'allegato richiesto.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Recupera il blob dell'allegato richiesto.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Recupera il blob dell'allegato richiesto.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/Recupera il blob dell'allegato richiesto.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica. (PUT).yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica. (PUT).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica. (PUT).yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica. (PUT).yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/effettua l'aggiornamento dei dettagli di una misura compensative associate alla dichiarazione di invalidità di una anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/folder.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/misure compensative per i bisogni speciali degli studeneti (GET).yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/misure compensative per i bisogni speciali degli studeneti (GET).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/misure compensative per i bisogni speciali degli studeneti (GET).yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/misure compensative per i bisogni speciali degli studeneti (GET).yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero delle dichiarazioni di handicap legate ad un'anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero delle dichiarazioni di handicap legate ad un'anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero delle dichiarazioni di handicap legate ad un'anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero delle dichiarazioni di handicap legate ad un'anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero di una dichiarazioni di handicap legata ad un'anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero di una dichiarazioni di handicap legata ad un'anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero di una dichiarazioni di handicap legata ad un'anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/dichiarazioni_invalidità/recupero di una dichiarazioni di handicap legata ad un'anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/docenti/folder.yml b/bruno/collections/ESSE3 Anagrafica API/docenti/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/docenti/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/docenti/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/docenti/getDocente.yml b/bruno/collections/ESSE3 Anagrafica API/docenti/getDocente.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/docenti/getDocente.yml
rename to bruno/collections/ESSE3 Anagrafica API/docenti/getDocente.yml
diff --git a/collections/ESSE3 Anagrafica API/dream_apply/folder.yml b/bruno/collections/ESSE3 Anagrafica API/dream_apply/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dream_apply/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/dream_apply/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/dream_apply/refresh della data di scadenza del token dreamapply e recupero dell’url di attivazione.yml b/bruno/collections/ESSE3 Anagrafica API/dream_apply/refresh della data di scadenza del token dreamapply e recupero dell’url di attivazione.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/dream_apply/refresh della data di scadenza del token dreamapply e recupero dell’url di attivazione.yml
rename to bruno/collections/ESSE3 Anagrafica API/dream_apply/refresh della data di scadenza del token dreamapply e recupero dell’url di attivazione.yml
diff --git a/collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml b/bruno/collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml
similarity index 76%
rename from collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml
rename to bruno/collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml
index dd47f79..7cfd6dc 100644
--- a/collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml
+++ b/bruno/collections/ESSE3 Anagrafica API/environments/ESSE3 Anagrafica Pre-Prod #2.yml
@@ -1,6 +1,6 @@
-name: "ESSE3 Pre-Prod #2"
+name: "ESSE3 Anagrafica Pre-Prod #2"
variables:
- - name: rootUrl
+ - name: esse3apiRootUrl
value: https://unipr2.esse3.pp.cineca.it
- name: esse3apiUsername
value: "{{process.env.esse3apiUsername}}"
diff --git a/collections/ESSE3 Anagrafica API/misure_compensative/Recupero misure compensative.yml b/bruno/collections/ESSE3 Anagrafica API/misure_compensative/Recupero misure compensative.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/misure_compensative/Recupero misure compensative.yml
rename to bruno/collections/ESSE3 Anagrafica API/misure_compensative/Recupero misure compensative.yml
diff --git a/collections/ESSE3 Anagrafica API/misure_compensative/folder.yml b/bruno/collections/ESSE3 Anagrafica API/misure_compensative/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/misure_compensative/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/misure_compensative/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/opencollection.yml b/bruno/collections/ESSE3 Anagrafica API/opencollection.yml
similarity index 88%
rename from collections/ESSE3 Anagrafica API/opencollection.yml
rename to bruno/collections/ESSE3 Anagrafica API/opencollection.yml
index 7bca13a..c7974e6 100644
--- a/collections/ESSE3 Anagrafica API/opencollection.yml
+++ b/bruno/collections/ESSE3 Anagrafica API/opencollection.yml
@@ -21,7 +21,7 @@ request:
password: "{{esse3apiPassword}}"
variables:
- name: baseUrl
- value: "{{rootUrl}}/e3rest/api/anagrafica-service-v2"
+ value: "{{esse3apiRootUrl}}/anagrafica-service-v2"
bundled: false
extensions:
bruno:
diff --git a/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale (PATCH).yml b/bruno/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale (PATCH).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale (PATCH).yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale (PATCH).yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Dismette un indirizzo email istituzionale.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dei consensi dello studente.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dei consensi dello studente.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dei consensi dello studente.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dei consensi dello studente.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email istituzionale dello studente.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email istituzionale dello studente.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email istituzionale dello studente.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email istituzionale dello studente.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email personale dello studente.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email personale dello studente.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email personale dello studente.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento dell'email personale dello studente.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento o l'inserimento dei titoli di studio relativi ad una persona.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento o l'inserimento dei titoli di studio relativi ad una persona.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento o l'inserimento dei titoli di studio relativi ad una persona.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'aggiornamento o l'inserimento dei titoli di studio relativi ad una persona.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona (POST).yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona (POST).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona (POST).yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona (POST).yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Effettua l'inserimento dei titoli di studio relativi ad una persona.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupera i consensi relativi ad uno studente.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupera i consensi relativi ad uno studente.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupera i consensi relativi ad uno studente.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupera i consensi relativi ad uno studente.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona (GET).yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona (GET).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona (GET).yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona (GET).yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupera i titoli relativi ad una persona.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupero della carriera degli studenti.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupero della carriera degli studenti.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupero della carriera degli studenti.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupero della carriera degli studenti.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema (GET).yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema (GET).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema (GET).yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema (GET).yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle anagrafiche presenti a sistema.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid (GET).yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid (GET).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid (GET).yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid (GET).yml
diff --git a/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid.yml b/bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/Recupero delle informazioni relative ad una singola persona presente a sistema ed identificata dal persid.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/aggiornamento cellulare.yml b/bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento cellulare.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/aggiornamento cellulare.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento cellulare.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di domicilio.yml b/bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di domicilio.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di domicilio.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di domicilio.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di residenza.yml b/bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di residenza.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di residenza.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/aggiornamento telefono di residenza.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/folder.yml b/bruno/collections/ESSE3 Anagrafica API/persone/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/folder.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/getFotoPersona.yml b/bruno/collections/ESSE3 Anagrafica API/persone/getFotoPersona.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/getFotoPersona.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/getFotoPersona.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/getValidaFlgFoto.yml b/bruno/collections/ESSE3 Anagrafica API/persone/getValidaFlgFoto.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/getValidaFlgFoto.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/getValidaFlgFoto.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/misure compensative per i bisogni speciali degli studeneti.yml b/bruno/collections/ESSE3 Anagrafica API/persone/misure compensative per i bisogni speciali degli studeneti.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/misure compensative per i bisogni speciali degli studeneti.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/misure compensative per i bisogni speciali degli studeneti.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/recupero degli autorizzati legati ad una anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/persone/recupero degli autorizzati legati ad una anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/recupero degli autorizzati legati ad una anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/recupero degli autorizzati legati ad una anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/persone/recupero dei tutori legati ad una anagrafica.yml b/bruno/collections/ESSE3 Anagrafica API/persone/recupero dei tutori legati ad una anagrafica.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/persone/recupero dei tutori legati ad una anagrafica.yml
rename to bruno/collections/ESSE3 Anagrafica API/persone/recupero dei tutori legati ad una anagrafica.yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Elimina i dati di un soggetto esterno in esse3.yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Elimina i dati di un soggetto esterno in esse3.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Elimina i dati di un soggetto esterno in esse3.yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Elimina i dati di un soggetto esterno in esse3.yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Inserisce oppure aggiorna i dati di un soggetto esterno in esse3.yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Inserisce oppure aggiorna i dati di un soggetto esterno in esse3.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Inserisce oppure aggiorna i dati di un soggetto esterno in esse3.yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Inserisce oppure aggiorna i dati di un soggetto esterno in esse3.yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupera i consensi relativi ad un soggetto esterno.yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupera i consensi relativi ad un soggetto esterno.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Recupera i consensi relativi ad un soggetto esterno.yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupera i consensi relativi ad un soggetto esterno.yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (1).yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (1).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (1).yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (1).yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (GET).yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (GET).yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (GET).yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni (GET).yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni.yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni.yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/Recupero dei soggetti esterni.yml
diff --git a/collections/ESSE3 Anagrafica API/soggetti_esterni/folder.yml b/bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/folder.yml
similarity index 100%
rename from collections/ESSE3 Anagrafica API/soggetti_esterni/folder.yml
rename to bruno/collections/ESSE3 Anagrafica API/soggetti_esterni/folder.yml
diff --git a/collections/ESSE3 Common Auth API/.env.template b/bruno/collections/ESSE3 Common Auth API/.env.template
similarity index 100%
rename from collections/ESSE3 Common Auth API/.env.template
rename to bruno/collections/ESSE3 Common Auth API/.env.template
diff --git a/collections/ESSE3 Common Auth API/autenticazione/changeUserPassword.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/changeUserPassword.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/changeUserPassword.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/changeUserPassword.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/checkLogon.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/checkLogon.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/checkLogon.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/checkLogon.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/checkSessionId.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/checkSessionId.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/checkSessionId.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/checkSessionId.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/folder.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/folder.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/folder.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/folder.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/getCacheParams.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/getCacheParams.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/getCacheParams.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/getCacheParams.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/getCurrentSession.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/getCurrentSession.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/getCurrentSession.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/getCurrentSession.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/getJWT.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/getJWT.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/getJWT.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/getJWT.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/getLinguaCod.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/getLinguaCod.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/getLinguaCod.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/getLinguaCod.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/login.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/login.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/login.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/login.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/logout.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/logout.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/logout.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/logout.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/setCacheParams.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/setCacheParams.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/setCacheParams.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/setCacheParams.yml
diff --git a/collections/ESSE3 Common Auth API/autenticazione/setLinguaCod.yml b/bruno/collections/ESSE3 Common Auth API/autenticazione/setLinguaCod.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/autenticazione/setLinguaCod.yml
rename to bruno/collections/ESSE3 Common Auth API/autenticazione/setLinguaCod.yml
diff --git a/collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml b/bruno/collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml
similarity index 70%
rename from collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml
rename to bruno/collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml
index e515e23..b4148d6 100644
--- a/collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml
+++ b/bruno/collections/ESSE3 Common Auth API/environments/ESSE3 Common Auth Pre-Prod #2.yml
@@ -4,3 +4,5 @@ variables:
value: "{{process.env.esse3apiUsername}}"
- name: esse3apiPassword
value: "{{process.env.esse3apiPassword}}"
+ - name: esse3apiRootUrl
+ value: https://unipr2.esse3.pp.cineca.it/e3rest/api
diff --git a/collections/ESSE3 Common Auth API/jwt/folder.yml b/bruno/collections/ESSE3 Common Auth API/jwt/folder.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/jwt/folder.yml
rename to bruno/collections/ESSE3 Common Auth API/jwt/folder.yml
diff --git a/collections/ESSE3 Common Auth API/jwt/getJWK.yml b/bruno/collections/ESSE3 Common Auth API/jwt/getJWK.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/jwt/getJWK.yml
rename to bruno/collections/ESSE3 Common Auth API/jwt/getJWK.yml
diff --git a/collections/ESSE3 Common Auth API/jwt/refreshJWT.yml b/bruno/collections/ESSE3 Common Auth API/jwt/refreshJWT.yml
similarity index 100%
rename from collections/ESSE3 Common Auth API/jwt/refreshJWT.yml
rename to bruno/collections/ESSE3 Common Auth API/jwt/refreshJWT.yml
diff --git a/collections/ESSE3 Common Auth API/opencollection.yml b/bruno/collections/ESSE3 Common Auth API/opencollection.yml
similarity index 74%
rename from collections/ESSE3 Common Auth API/opencollection.yml
rename to bruno/collections/ESSE3 Common Auth API/opencollection.yml
index 57da171..57fa79c 100644
--- a/collections/ESSE3 Common Auth API/opencollection.yml
+++ b/bruno/collections/ESSE3 Common Auth API/opencollection.yml
@@ -21,11 +21,7 @@ request:
password: "{{esse3apiPassword}}"
variables:
- name: baseUrl
- value: https://unipr2.esse3.pp.cineca.it/e3rest/api
- - name: esse3apiUsername
- value: da2.rest
- - name: esse3apiPassword
- value: paperino
+ value: "{{esse3apiRootUrl}}"
bundled: false
extensions:
bruno:
diff --git a/collections/Gov.it OpenData/Get Organization Content.yml b/bruno/collections/Gov.it OpenData/Get Organization Content.yml
similarity index 100%
rename from collections/Gov.it OpenData/Get Organization Content.yml
rename to bruno/collections/Gov.it OpenData/Get Organization Content.yml
diff --git a/collections/Gov.it OpenData/Get Organization List.yml b/bruno/collections/Gov.it OpenData/Get Organization List.yml
similarity index 100%
rename from collections/Gov.it OpenData/Get Organization List.yml
rename to bruno/collections/Gov.it OpenData/Get Organization List.yml
diff --git a/collections/Gov.it OpenData/Get Package Content.yml b/bruno/collections/Gov.it OpenData/Get Package Content.yml
similarity index 100%
rename from collections/Gov.it OpenData/Get Package Content.yml
rename to bruno/collections/Gov.it OpenData/Get Package Content.yml
diff --git a/collections/Gov.it OpenData/Get Package List with Resources.yml b/bruno/collections/Gov.it OpenData/Get Package List with Resources.yml
similarity index 100%
rename from collections/Gov.it OpenData/Get Package List with Resources.yml
rename to bruno/collections/Gov.it OpenData/Get Package List with Resources.yml
diff --git a/collections/Gov.it OpenData/Get Package List.yml b/bruno/collections/Gov.it OpenData/Get Package List.yml
similarity index 100%
rename from collections/Gov.it OpenData/Get Package List.yml
rename to bruno/collections/Gov.it OpenData/Get Package List.yml
diff --git a/collections/Gov.it OpenData/opencollection.yml b/bruno/collections/Gov.it OpenData/opencollection.yml
similarity index 100%
rename from collections/Gov.it OpenData/opencollection.yml
rename to bruno/collections/Gov.it OpenData/opencollection.yml
diff --git a/bruno/collections/IDEM WebServices/.env.template b/bruno/collections/IDEM WebServices/.env.template
new file mode 100644
index 0000000..9bc94ce
--- /dev/null
+++ b/bruno/collections/IDEM WebServices/.env.template
@@ -0,0 +1,3 @@
+IdemApiUsername=
+IdemApiPassword=
+IdemApiKey=
diff --git a/collections/IDEM WebServices/Anagrafiche/Autorizzatori Centri.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori Centri.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Autorizzatori Centri.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori Centri.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Autorizzatori Struttura.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori Struttura.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Autorizzatori Struttura.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori Struttura.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Autorizzatori.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Autorizzatori.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Autorizzatori.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Dipendente (Codice fiscale).yml b/bruno/collections/IDEM WebServices/Anagrafiche/Dipendente (Codice fiscale).yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Dipendente (Codice fiscale).yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Dipendente (Codice fiscale).yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Dipendente (E-mail).yml b/bruno/collections/IDEM WebServices/Anagrafiche/Dipendente (E-mail).yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Dipendente (E-mail).yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Dipendente (E-mail).yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Dipendente by Codice Fiscale.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Dipendente by Codice Fiscale.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Dipendente by Codice Fiscale.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Dipendente by Codice Fiscale.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Dipendente by E-mail.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Dipendente by E-mail.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Dipendente by E-mail.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Dipendente by E-mail.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml b/bruno/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Studente (Codice Fiscale).yml b/bruno/collections/IDEM WebServices/Anagrafiche/Studente (Codice Fiscale).yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Studente (Codice Fiscale).yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Studente (Codice Fiscale).yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Studente (E-mail).yml b/bruno/collections/IDEM WebServices/Anagrafiche/Studente (E-mail).yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Studente (E-mail).yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Studente (E-mail).yml
diff --git a/collections/IDEM WebServices/Anagrafiche/Studente Carriere Dropdown (CF).yml b/bruno/collections/IDEM WebServices/Anagrafiche/Studente Carriere Dropdown (CF).yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/Studente Carriere Dropdown (CF).yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/Studente Carriere Dropdown (CF).yml
diff --git a/collections/IDEM WebServices/Anagrafiche/folder.yml b/bruno/collections/IDEM WebServices/Anagrafiche/folder.yml
similarity index 100%
rename from collections/IDEM WebServices/Anagrafiche/folder.yml
rename to bruno/collections/IDEM WebServices/Anagrafiche/folder.yml
diff --git a/collections/IDEM WebServices/Contratti/Contratti (IRIS GW).yml b/bruno/collections/IDEM WebServices/Contratti/Contratti (IRIS GW).yml
similarity index 100%
rename from collections/IDEM WebServices/Contratti/Contratti (IRIS GW).yml
rename to bruno/collections/IDEM WebServices/Contratti/Contratti (IRIS GW).yml
diff --git a/collections/IDEM WebServices/Contratti/Contratti Eseguiti (IRIS GW).yml b/bruno/collections/IDEM WebServices/Contratti/Contratti Eseguiti (IRIS GW).yml
similarity index 100%
rename from collections/IDEM WebServices/Contratti/Contratti Eseguiti (IRIS GW).yml
rename to bruno/collections/IDEM WebServices/Contratti/Contratti Eseguiti (IRIS GW).yml
diff --git a/collections/IDEM WebServices/Contratti/Contratto (IRIS GW).yml b/bruno/collections/IDEM WebServices/Contratti/Contratto (IRIS GW).yml
similarity index 100%
rename from collections/IDEM WebServices/Contratti/Contratto (IRIS GW).yml
rename to bruno/collections/IDEM WebServices/Contratti/Contratto (IRIS GW).yml
diff --git a/collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml b/bruno/collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml
similarity index 87%
rename from collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml
rename to bruno/collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml
index 6a69f48..1e5f374 100644
--- a/collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml
+++ b/bruno/collections/IDEM WebServices/Contratti/Contratto Esteso (IRIS GW).yml
@@ -5,43 +5,11 @@ info:
http:
method: GET
- url: "{{IdemApiUrl}}/contratto_fs_esteso_ap.php?cod_con=DONO_G_25_ACC_ACC_ZOETIS_01"
+ url: "{{IdemApiUrl}}/contratto_fs_esteso_ap.php?cod_con=GATT_M_26_CCS_IST_RA_UNIFE_01"
params:
- name: cod_con
- value: CHIA_L_26_ACC_ACC_PROROGASTUDIOBALLERINI_01
+ value: GATT_M_26_CCS_IST_RA_UNIFE_01
type: query
- disabled: true
- - name: cod_con
- value: BUTT_F_26_SPONSOR_CHIESI_02
- type: query
- disabled: true
- - name: cod_con
- value: GIUL_F_25_CRCT_RA_MOVYON_01
- type: query
- disabled: true
- - name: cod_con
- value: VIGN_G_26_SERV_CON_DULEVO_01
- type: query
- disabled: true
- - name: cod_con
- value: VILL_P_26_SPONSOR_CREDIT_01
- type: query
- disabled: true
- - name: cod_con
- value: STOR_F_26_CONV_QUA_AMICIPILOTTA_01
- type: query
- disabled: true
- - name: cod_con
- value: DONO_G_25_ACC_ACC_ZOETIS_01
- type: query
- - name: cod_con
- value: VERO_L_26_CRCT_RA_AOUPR_01
- type: query
- disabled: true
- - name: cod_con
- value: POGL_F_25_SERV_CON_02
- type: query
- disabled: true
auth: inherit
runtime:
diff --git a/collections/IDEM WebServices/Contratti/folder.yml b/bruno/collections/IDEM WebServices/Contratti/folder.yml
similarity index 100%
rename from collections/IDEM WebServices/Contratti/folder.yml
rename to bruno/collections/IDEM WebServices/Contratti/folder.yml
diff --git a/collections/IDEM WebServices/IDEM WebServices-documentation.html b/bruno/collections/IDEM WebServices/IDEM WebServices-documentation.html
similarity index 100%
rename from collections/IDEM WebServices/IDEM WebServices-documentation.html
rename to bruno/collections/IDEM WebServices/IDEM WebServices-documentation.html
diff --git a/collections/IDEM WebServices/Obiettivi performance.yml b/bruno/collections/IDEM WebServices/Obiettivi performance.yml
similarity index 100%
rename from collections/IDEM WebServices/Obiettivi performance.yml
rename to bruno/collections/IDEM WebServices/Obiettivi performance.yml
diff --git a/collections/IDEM WebServices/Progetti/Progetti contabilizzati in PJ.yml b/bruno/collections/IDEM WebServices/Progetti/Progetti contabilizzati in PJ.yml
similarity index 100%
rename from collections/IDEM WebServices/Progetti/Progetti contabilizzati in PJ.yml
rename to bruno/collections/IDEM WebServices/Progetti/Progetti contabilizzati in PJ.yml
diff --git a/collections/IDEM WebServices/Progetti/folder.yml b/bruno/collections/IDEM WebServices/Progetti/folder.yml
similarity index 100%
rename from collections/IDEM WebServices/Progetti/folder.yml
rename to bruno/collections/IDEM WebServices/Progetti/folder.yml
diff --git a/collections/IDEM WebServices/environments/IDEM - Prod.yml b/bruno/collections/IDEM WebServices/environments/Produzione.yml
similarity index 53%
rename from collections/IDEM WebServices/environments/IDEM - Prod.yml
rename to bruno/collections/IDEM WebServices/environments/Produzione.yml
index eaa8ab0..a8405de 100644
--- a/collections/IDEM WebServices/environments/IDEM - Prod.yml
+++ b/bruno/collections/IDEM WebServices/environments/Produzione.yml
@@ -1,11 +1,11 @@
-name: IDEM - Prod
+name: Produzione
color: "#2E8A54"
variables:
- name: IdemApiUrl
value: https://www.idem.unipr.it/ws/elix
- name: IdemApiUsername
- value: elix_ws
+ value: "{{process.env.IdemApiUsername}}"
- name: IdemApiPassword
- value: "{{process.env.IdemApiPassword_Prod}}"
+ value: "{{process.env.IdemApiPassword}}"
- name: IdemApiKey
- value: "{{process.env.IdemApiKey_Prod}}"
+ value: "{{process.env.IdemApiKey}}"
diff --git a/collections/IDEM WebServices/environments/IDEM - Test.yml b/bruno/collections/IDEM WebServices/environments/Test.yml
similarity index 54%
rename from collections/IDEM WebServices/environments/IDEM - Test.yml
rename to bruno/collections/IDEM WebServices/environments/Test.yml
index a9776cb..131863b 100644
--- a/collections/IDEM WebServices/environments/IDEM - Test.yml
+++ b/bruno/collections/IDEM WebServices/environments/Test.yml
@@ -1,11 +1,11 @@
-name: IDEM - Test
+name: Test
color: "#C77A0F"
variables:
- name: IdemApiUrl
value: https://www.idem2.unipr.it/ws/elix
- name: IdemApiUsername
- value: elix_ws
+ value: "{{process.env.IdemApiUsername}}"
- name: IdemApiPassword
- value: "{{process.env.IdemApiPassword_Test}}"
+ value: "{{process.env.IdemApiPassword}}"
- name: IdemApiKey
- value: "{{process.env.IdemApiKey_Test}}"
+ value: "{{process.env.IdemApiKey}}"
diff --git a/collections/IDEM WebServices/opencollection.yml b/bruno/collections/IDEM WebServices/opencollection.yml
similarity index 100%
rename from collections/IDEM WebServices/opencollection.yml
rename to bruno/collections/IDEM WebServices/opencollection.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/.env.template b/bruno/collections/IRIS GW (Gateway) REST API (v1)/.env.template
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/.env.template
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/.env.template
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts FULL.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts FULL.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts FULL.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts FULL.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts by Department IdAb.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts by Department IdAb.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts by Department IdAb.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts by Department IdAb.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more contributors.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more contributors.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more contributors.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more contributors.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/folder.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/folder.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/Contracts/folder.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/folder.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs Copy.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs Copy.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs Copy.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs Copy.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get ASNs.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Academic Fields 2024.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Academic Fields 2024.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Academic Fields 2024.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Academic Fields 2024.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items Copy.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items Copy.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items Copy.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items Copy.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/WfItems/folder.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/folder.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/WfItems/folder.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/folder.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/folder.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/folder.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/folder.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/folder.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/environments/IRIS - Prod.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/environments/IRIS - Prod.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/environments/IRIS - Prod.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/environments/IRIS - Prod.yml
diff --git a/collections/IRIS GW (Gateway) REST API (v1)/opencollection.yml b/bruno/collections/IRIS GW (Gateway) REST API (v1)/opencollection.yml
similarity index 100%
rename from collections/IRIS GW (Gateway) REST API (v1)/opencollection.yml
rename to bruno/collections/IRIS GW (Gateway) REST API (v1)/opencollection.yml
diff --git a/collections/ORDS generated API for publish/Comuni (con dimensione) - Elenco.yml b/bruno/collections/ORDS generated API for publish/Comuni (con dimensione) - Elenco.yml
similarity index 100%
rename from collections/ORDS generated API for publish/Comuni (con dimensione) - Elenco.yml
rename to bruno/collections/ORDS generated API for publish/Comuni (con dimensione) - Elenco.yml
diff --git a/collections/ORDS generated API for publish/Comuni (con territorio) - Elenco.yml b/bruno/collections/ORDS generated API for publish/Comuni (con territorio) - Elenco.yml
similarity index 100%
rename from collections/ORDS generated API for publish/Comuni (con territorio) - Elenco.yml
rename to bruno/collections/ORDS generated API for publish/Comuni (con territorio) - Elenco.yml
diff --git a/collections/ORDS generated API for publish/Province - Elenco.yml b/bruno/collections/ORDS generated API for publish/Province - Elenco.yml
similarity index 100%
rename from collections/ORDS generated API for publish/Province - Elenco.yml
rename to bruno/collections/ORDS generated API for publish/Province - Elenco.yml
diff --git a/collections/ORDS generated API for publish/Regioni - Elenco.yml b/bruno/collections/ORDS generated API for publish/Regioni - Elenco.yml
similarity index 100%
rename from collections/ORDS generated API for publish/Regioni - Elenco.yml
rename to bruno/collections/ORDS generated API for publish/Regioni - Elenco.yml
diff --git a/collections/ORDS generated API for publish/anagrafica_report_metadato_web/Retrieve a record from publish.yml b/bruno/collections/ORDS generated API for publish/anagrafica_report_metadato_web/Retrieve a record from publish.yml
similarity index 100%
rename from collections/ORDS generated API for publish/anagrafica_report_metadato_web/Retrieve a record from publish.yml
rename to bruno/collections/ORDS generated API for publish/anagrafica_report_metadato_web/Retrieve a record from publish.yml
diff --git a/collections/ORDS generated API for publish/anagrafica_report_metadato_web/folder.yml b/bruno/collections/ORDS generated API for publish/anagrafica_report_metadato_web/folder.yml
similarity index 100%
rename from collections/ORDS generated API for publish/anagrafica_report_metadato_web/folder.yml
rename to bruno/collections/ORDS generated API for publish/anagrafica_report_metadato_web/folder.yml
diff --git a/collections/ORDS generated API for publish/environments/ORDS.yml b/bruno/collections/ORDS generated API for publish/environments/ORDS.yml
similarity index 100%
rename from collections/ORDS generated API for publish/environments/ORDS.yml
rename to bruno/collections/ORDS generated API for publish/environments/ORDS.yml
diff --git a/collections/ORDS generated API for publish/opencollection.yml b/bruno/collections/ORDS generated API for publish/opencollection.yml
similarity index 100%
rename from collections/ORDS generated API for publish/opencollection.yml
rename to bruno/collections/ORDS generated API for publish/opencollection.yml
diff --git a/collections/ORDS generated API for publish/reportspooljson/Retrieve a record from publish.yml b/bruno/collections/ORDS generated API for publish/reportspooljson/Retrieve a record from publish.yml
similarity index 100%
rename from collections/ORDS generated API for publish/reportspooljson/Retrieve a record from publish.yml
rename to bruno/collections/ORDS generated API for publish/reportspooljson/Retrieve a record from publish.yml
diff --git a/collections/ORDS generated API for publish/reportspooljson/folder.yml b/bruno/collections/ORDS generated API for publish/reportspooljson/folder.yml
similarity index 100%
rename from collections/ORDS generated API for publish/reportspooljson/folder.yml
rename to bruno/collections/ORDS generated API for publish/reportspooljson/folder.yml
diff --git a/collections/ORDS generated API for publish/reportspooljsoncount/Retrieve a record from publish.yml b/bruno/collections/ORDS generated API for publish/reportspooljsoncount/Retrieve a record from publish.yml
similarity index 100%
rename from collections/ORDS generated API for publish/reportspooljsoncount/Retrieve a record from publish.yml
rename to bruno/collections/ORDS generated API for publish/reportspooljsoncount/Retrieve a record from publish.yml
diff --git a/collections/ORDS generated API for publish/reportspooljsoncount/folder.yml b/bruno/collections/ORDS generated API for publish/reportspooljsoncount/folder.yml
similarity index 100%
rename from collections/ORDS generated API for publish/reportspooljsoncount/folder.yml
rename to bruno/collections/ORDS generated API for publish/reportspooljsoncount/folder.yml
diff --git a/collections/Power Automate/Get Requests by Tag, Status and SWF.yml b/bruno/collections/Power Automate/Get Requests by Tag, Status and SWF.yml
similarity index 100%
rename from collections/Power Automate/Get Requests by Tag, Status and SWF.yml
rename to bruno/collections/Power Automate/Get Requests by Tag, Status and SWF.yml
diff --git a/collections/Power Automate/Get eF request exportTags.yml b/bruno/collections/Power Automate/Get eF request exportTags.yml
similarity index 100%
rename from collections/Power Automate/Get eF request exportTags.yml
rename to bruno/collections/Power Automate/Get eF request exportTags.yml
diff --git a/collections/Power Automate/Get eF requests.yml b/bruno/collections/Power Automate/Get eF requests.yml
similarity index 100%
rename from collections/Power Automate/Get eF requests.yml
rename to bruno/collections/Power Automate/Get eF requests.yml
diff --git a/collections/Power Automate/Power Query/Get Comune.yml b/bruno/collections/Power Automate/Power Query/Get Comune.yml
similarity index 100%
rename from collections/Power Automate/Power Query/Get Comune.yml
rename to bruno/collections/Power Automate/Power Query/Get Comune.yml
diff --git a/collections/Power Automate/Power Query/SignIn.yml b/bruno/collections/Power Automate/Power Query/SignIn.yml
similarity index 100%
rename from collections/Power Automate/Power Query/SignIn.yml
rename to bruno/collections/Power Automate/Power Query/SignIn.yml
diff --git a/collections/Power Automate/Power Query/folder.yml b/bruno/collections/Power Automate/Power Query/folder.yml
similarity index 100%
rename from collections/Power Automate/Power Query/folder.yml
rename to bruno/collections/Power Automate/Power Query/folder.yml
diff --git a/collections/Power Automate/opencollection.yml b/bruno/collections/Power Automate/opencollection.yml
similarity index 100%
rename from collections/Power Automate/opencollection.yml
rename to bruno/collections/Power Automate/opencollection.yml
diff --git a/collections/Scopus/.env.template b/bruno/collections/Scopus/.env.template
similarity index 100%
rename from collections/Scopus/.env.template
rename to bruno/collections/Scopus/.env.template
diff --git a/collections/Scopus/Get Citations.yml b/bruno/collections/Scopus/Get Citations.yml
similarity index 100%
rename from collections/Scopus/Get Citations.yml
rename to bruno/collections/Scopus/Get Citations.yml
diff --git a/collections/Scopus/environments/Scopus - Prod.yml b/bruno/collections/Scopus/environments/Scopus - Prod.yml
similarity index 100%
rename from collections/Scopus/environments/Scopus - Prod.yml
rename to bruno/collections/Scopus/environments/Scopus - Prod.yml
diff --git a/collections/Scopus/opencollection.yml b/bruno/collections/Scopus/opencollection.yml
similarity index 100%
rename from collections/Scopus/opencollection.yml
rename to bruno/collections/Scopus/opencollection.yml
diff --git a/collections/SharePoint API/opencollection.yml b/bruno/collections/SharePoint API/opencollection.yml
similarity index 100%
rename from collections/SharePoint API/opencollection.yml
rename to bruno/collections/SharePoint API/opencollection.yml
diff --git a/bruno/collections/Shibboleth/.gitignore b/bruno/collections/Shibboleth/.gitignore
new file mode 100644
index 0000000..e19311f
--- /dev/null
+++ b/bruno/collections/Shibboleth/.gitignore
@@ -0,0 +1,9 @@
+# Secrets
+.env*
+
+# Dependencies
+node_modules
+
+# OS files
+.DS_Store
+Thumbs.db
\ No newline at end of file
diff --git a/bruno/collections/Shibboleth/Authorize (manual flow in browser).yml b/bruno/collections/Shibboleth/Authorize (manual flow in browser).yml
new file mode 100644
index 0000000..0c02bc6
--- /dev/null
+++ b/bruno/collections/Shibboleth/Authorize (manual flow in browser).yml
@@ -0,0 +1,28 @@
+info:
+ name: Authorize (manual flow in browser)
+ type: http
+ seq: 2
+
+http:
+ method: GET
+ url: "{{serverUri}}/idp/profile/oidc/authorize?client_id={{clientId}}&redirect_uri={{redirectUri}}&response_type=code&scope=openid profile email"
+ params:
+ - name: client_id
+ value: "{{clientId}}"
+ type: query
+ - name: redirect_uri
+ value: "{{redirectUri}}"
+ type: query
+ - name: response_type
+ value: code
+ type: query
+ - name: scope
+ value: openid profile email
+ type: query
+ auth: inherit
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
diff --git a/bruno/collections/Shibboleth/Generate Access Token.yml b/bruno/collections/Shibboleth/Generate Access Token.yml
new file mode 100644
index 0000000..8e629a1
--- /dev/null
+++ b/bruno/collections/Shibboleth/Generate Access Token.yml
@@ -0,0 +1,124 @@
+info:
+ name: Generate Access Token
+ type: http
+ seq: 3
+
+http:
+ method: POST
+ url: "{{serverUri}}/idp/profile/oidc/token"
+ headers:
+ - name: Content-Type
+ value: application/x-www-form-urlencoded
+ body:
+ type: form-urlencoded
+ data:
+ - name: grant_type
+ value: authorization_code
+ - name: redirect_uri
+ value: "{{redirectUri}}"
+ - name: scope
+ value: openid profile email
+ - name: code
+ value: ""
+ description: Paste code obtained by manual flow in browser
+ auth:
+ type: basic
+ username: "{{clientId}}"
+ password: "{{clientSecret}}"
+
+runtime:
+ scripts:
+ - type: after-response
+ code: |-
+ var jsonData = res.getBody();
+ bru.setEnvVar("accessToken", jsonData.access_token);
+ - type: tests
+ code: |-
+ test("Status code is 200", function () {
+ expect(res.getStatus()).to.equal(200);
+ });
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: Token data
+ request:
+ url: https://shibidp.unipr.it/idp/profile/oidc/token
+ method: POST
+ headers:
+ - name: Content-Type
+ value: application/x-www-form-urlencoded
+ params:
+ - name: client_id
+ value: "{{shibbolethClientId}}"
+ type: query
+ disabled: true
+ - name: client_secret
+ value: "{{shibbolethClientSecret}}"
+ type: query
+ disabled: true
+ - name: grant_type
+ value: code
+ type: query
+ disabled: true
+ - name: scope
+ value: openid
+ type: query
+ disabled: true
+ - name: code
+ value: AAdzZWNyZXQxkZu_xOleOZj6LkAn2Il3wl2T_AnIqKZ2rujs1eC6vS3QEi_Xk5cgedRG5tD9UYDN7YDBWfudDOW_mgkCjtXk4V8dCDJAU0G3mAThwV3yUhBsv1ljnZ
+ type: query
+ disabled: true
+ body:
+ type: form-urlencoded
+ data:
+ - name: grant_type
+ value: authorization_code
+ - name: redirect_uri
+ value: https://gitea.unipr.it/user/oauth2/Shibboleth/callback
+ - name: scope
+ value: openid profile email
+ - name: code
+ value: AAdzZWNyZXQx1CToBgEqA8mxMWGsLKf0V86PS2Oz-3bI5BlRuiitj3iXP_qfSJgNzYsMdsIQ9QRmoIOS6ISVvFSyJ5XeHYE_msw6VJELg9S6qsO4mrBBwCaUM9p3zMPwNBwZJVn6vqgGghpMS_xeW2EGthh9W0HBsh7WuPYK4HJVpTYIxgYR782xET0ZU3XxLBknOeMoye2IrH3sYpeCRQCmd1GUyTl1Ra4sGdqYcw3iiISA_FbPMXOLFQN8GcFtEcPxzc9CtH4PHKDYIj_QQx0IUgEH814pyC-Oc5-19Gfg4Ulps9ZHF9rb4csbi9mvWAuJESHcSp5NSAK9tEMFvBUCe_2nr7WyzaGTI1D6Nr1PenxbWIRAmXGF5LtzSrv-8_k8XSdufefACBVbZH6EQWm4smrqSlMab71F5s9wB3rFEK5IuANQblFljG_vfoCATpmk0MCYo47SApSrorMYN5K6yWf4P3PuyQrIdrw0PsRzBWoY8XpzQTGYN1I
+ response:
+ status: 200
+ statusText: OK
+ headers:
+ - name: date
+ value: Wed, 19 Aug 2026 08:57:29 GMT
+ - name: server
+ value: Jetty(11.0.19)
+ - name: strict-transport-security
+ value: max-age=63072000; includeSubDomains, max-age=63072000 ; includeSubDomains ; preload
+ - name: x-content-type-options
+ value: nosniff
+ - name: x-frame-options
+ value: SAMEORIGIN, DENY
+ - name: cache-control
+ value: no-store, no-store
+ - name: content-type
+ value: application/json;charset=utf-8
+ - name: pragma
+ value: no-cache
+ - name: content-security-policy
+ value: frame-ancestors 'none'; base-uri 'none'; script-src 'self' https://shibidp.unipr.it 'unsafe-inline';
+ - name: keep-alive
+ value: timeout=2, max=100
+ - name: connection
+ value: Keep-Alive
+ - name: transfer-encoding
+ value: chunked
+ body:
+ type: json
+ data: |-
+ {
+ "access_token": "AAdzZWNyZXQxO7PLpDizfp4m1e9ERj9_wLc2HaUQ-TtcgcG-CMvVU7D2BbfPpk1uosrMzlMXEy7SCfcrMKExh-w7xc6u4dL4M8Zz0eoZTZmPB59RhV456tGlYIV3fsxShWJzgdr2QvUdap-GVB5cWzPPaXKdBlzn_5lJfeCcoZwTdIEr6ndwNF7iuDyQ4YNbechW31Y9pD8xZYmlrtNqCfQIVkziG136n6UyMurzw1V6s3zuGQ0YXTL7E4hpjk66J7gU3hlkIM9InH9riWRgADUHvaTBdjQcq9TWWuf7-ckcy-MbHJH0_ZuAkYoKTGuXEWhchCdyJeDCZuKDiazko3C9RYQOWQqaFp5ney9Ox7sG_ZjCNY-TNvpT7YmeOm_8lTGTGSnd4lumPIHiRlwSG_8IEa06SRg4rnz9kudM0Hnto2VsgZ4PtImQlGC3H8Zbw60Jrwvxw_fvxRkXeBOx5IdElMRKhvsRogA8me6-gSVIl8Q",
+ "scope": "openid profile email",
+ "id_token": "eyJraWQiOiJkZWZhdWx0UlNBU2lnbiIsImFsZyI6IlJTMjU2In0.eyJhdF9oYXNoIjoieTdUSjczeDNsbDF0ZEI5bU96RmtQUSIsInN1YiI6ImIwYTUwMmY2YWQ5MDQyN2YxZTZjYTdjODVhNzZjY2NiOGI5MzVhZjRkMjc1MDQyMTFhMDQwMGI0MmY5MGMxNDFAdW5pcHIuaXQiLCJhdWQiOiJvaWRjX2dpdGVhXzAxIiwiYXV0aF90aW1lIjoxNzg3MTI5ODQyLCJpc3MiOiJodHRwczovL3NoaWJpZHAudW5pcHIuaXQiLCJleHAiOjE3ODcxMzM0NDksImlhdCI6MTc4NzEyOTg0OSwic2lkIjoiX2UwMWJiZDkwMzQ5ODMzNDNkM2U0MmE5OTU5NDIyYmUzIn0.k5AQaood5q4ynRmYgC20cFV7cpBVrLwFC6Bi05PGvWFmnu5_u3nI4yAngM-u3qe7ILiJnsYsFuo3UUMowoJkycX5PveAo1x239_vK6Opp8VTQuCF4H8h4OmBjXj0eeCEQ3W00TUgV6S4rHU5NEvwiGR9ivEjZvVf1y2dzral7_DgX1KOQq5ZH5wma2Y5zM4el02pGEnPmi3P1zOXp1AQDx69cpZQj5UkKc15L8Y1yaJILMIDbsXgimSx1FGs_XA9bjSHdV2V25_h3TqsUxElwvb1uVk_kUqj06rDgORpnS_7Hg778GtW8kYZCz2kIYpYWi1h3tHhNnBOtHjxqepGyQ",
+ "token_type": "Bearer",
+ "expires_in": 600
+ }
diff --git a/bruno/collections/Shibboleth/Get OIDC well-known configuration.yml b/bruno/collections/Shibboleth/Get OIDC well-known configuration.yml
new file mode 100644
index 0000000..e8ec70d
--- /dev/null
+++ b/bruno/collections/Shibboleth/Get OIDC well-known configuration.yml
@@ -0,0 +1,217 @@
+info:
+ name: Get OIDC well-known configuration
+ type: http
+ seq: 1
+
+http:
+ method: GET
+ url: "{{serverUri}}/.well-known/openid-configuration"
+ auth: inherit
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: Endpoints
+ request:
+ url: https://shibidp.unipr.it/.well-known/openid-configuration
+ method: GET
+ response:
+ status: 200
+ statusText: OK
+ headers:
+ - name: date
+ value: Wed, 19 Aug 2026 07:20:27 GMT
+ - name: server
+ value: Jetty(11.0.19)
+ - name: strict-transport-security
+ value: max-age=63072000; includeSubDomains, max-age=63072000 ; includeSubDomains ; preload
+ - name: x-content-type-options
+ value: nosniff
+ - name: x-frame-options
+ value: SAMEORIGIN, DENY
+ - name: expires
+ value: ""
+ - name: cache-control
+ value: no-store
+ - name: content-type
+ value: application/json;charset=utf-8
+ - name: content-security-policy
+ value: frame-ancestors 'none'; base-uri 'none'; script-src 'self' https://shibidp.unipr.it 'unsafe-inline';
+ - name: set-cookie
+ value: __Host-JSESSIONID=node01shvwd2kdnmjg1lxw0l50a24k060260.node0; Path=/; Secure; HttpOnly
+ - name: keep-alive
+ value: timeout=2, max=100
+ - name: connection
+ value: Keep-Alive
+ - name: transfer-encoding
+ value: chunked
+ body:
+ type: json
+ data: |-
+ {
+ "authorization_endpoint": "https://shibidp.unipr.it/idp/profile/oidc/authorize",
+ "token_endpoint": "https://shibidp.unipr.it/idp/profile/oidc/token",
+ "registration_endpoint": "https://shibidp.unipr.it/idp/profile/oidc/register",
+ "introspection_endpoint": "https://shibidp.unipr.it/idp/profile/oauth2/introspection",
+ "revocation_endpoint": "https://shibidp.unipr.it/idp/profile/oauth2/revocation",
+ "issuer": "https://shibidp.unipr.it",
+ "jwks_uri": "https://shibidp.unipr.it/idp/profile/oidc/keyset",
+ "scopes_supported": [
+ "openid",
+ "profile",
+ "email",
+ "spid",
+ "offline_access"
+ ],
+ "response_types_supported": [
+ "id_token",
+ "code",
+ "code id_token",
+ "code id_token token"
+ ],
+ "response_modes_supported": [
+ "query",
+ "fragment",
+ "form_post"
+ ],
+ "grant_types_supported": [
+ "authorization_code",
+ "implicit",
+ "refresh_token"
+ ],
+ "token_endpoint_auth_methods_supported": [
+ "client_secret_basic",
+ "client_secret_post",
+ "client_secret_jwt",
+ "private_key_jwt"
+ ],
+ "request_object_signing_alg_values_supported": [
+ "none",
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256",
+ "ES384",
+ "ES512"
+ ],
+ "request_parameter_supported": true,
+ "request_uri_parameter_supported": true,
+ "require_request_uri_registration": true,
+ "subject_types_supported": [
+ "public",
+ "pairwise"
+ ],
+ "userinfo_endpoint": "https://shibidp.unipr.it/idp/profile/oidc/userinfo",
+ "id_token_signing_alg_values_supported": [
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256",
+ "ES384",
+ "ES512",
+ "PS256",
+ "PS384",
+ "PS512"
+ ],
+ "id_token_encryption_alg_values_supported": [
+ "RSA1_5",
+ "RSA-OAEP",
+ "RSA-OAEP-256",
+ "RSA-OAEP-384",
+ "RSA-OAEP-512",
+ "A128KW",
+ "A192KW",
+ "A256KW",
+ "A128GCMKW",
+ "A192GCMKW",
+ "A256GCMKW",
+ "ECDH-ES",
+ "ECDH-ES+A128KW",
+ "ECDH-ES+A192KW",
+ "ECDH-ES+A256KW"
+ ],
+ "id_token_encryption_enc_values_supported": [
+ "A128CBC-HS256",
+ "A192CBC-HS384",
+ "A256CBC-HS512",
+ "A128GCM",
+ "A192GCM",
+ "A256GCM"
+ ],
+ "userinfo_signing_alg_values_supported": [
+ "RS256",
+ "RS384",
+ "RS512",
+ "HS256",
+ "HS384",
+ "HS512",
+ "ES256",
+ "ES384",
+ "ES512",
+ "PS256",
+ "PS384",
+ "PS512"
+ ],
+ "userinfo_encryption_alg_values_supported": [
+ "RSA1_5",
+ "RSA-OAEP",
+ "RSA-OAEP-256",
+ "RSA-OAEP-384",
+ "RSA-OAEP-512",
+ "A128KW",
+ "A192KW",
+ "A256KW",
+ "A128GCMKW",
+ "A192GCMKW",
+ "A256GCMKW",
+ "ECDH-ES",
+ "ECDH-ES+A128KW",
+ "ECDH-ES+A192KW",
+ "ECDH-ES+A256KW"
+ ],
+ "userinfo_encryption_enc_values_supported": [
+ "A128CBC-HS256",
+ "A192CBC-HS384",
+ "A256CBC-HS512",
+ "A128GCM",
+ "A192GCM",
+ "A256GCM"
+ ],
+ "display_values_supported": [
+ "page"
+ ],
+ "claims_supported": [
+ "aud",
+ "iss",
+ "sub",
+ "iat",
+ "exp",
+ "acr",
+ "auth_time",
+ "email",
+ "name",
+ "family_name",
+ "given_name",
+ "updated_at",
+ "codicefiscale",
+ "unipr_spid_email",
+ "spidName",
+ "spidFamilyName",
+ "spidCode",
+ "spidFiscalNumber",
+ "externalIDPLoA",
+ "externalIDPType",
+ "eduPersonScopedAffiliation"
+ ],
+ "claims_parameter_supported": true
+ }
diff --git a/bruno/collections/Shibboleth/Get UserInfo.yml b/bruno/collections/Shibboleth/Get UserInfo.yml
new file mode 100644
index 0000000..a6e60dd
--- /dev/null
+++ b/bruno/collections/Shibboleth/Get UserInfo.yml
@@ -0,0 +1,83 @@
+info:
+ name: Get UserInfo
+ type: http
+ seq: 4
+
+http:
+ method: GET
+ url: "{{serverUri}}/idp/profile/oidc/userinfo?client_id={{clientId}}&client_secret={{clientSecret}}"
+ headers:
+ - name: Content-Type
+ value: application/x-www-form-urlencoded
+ params:
+ - name: client_id
+ value: "{{clientId}}"
+ type: query
+ - name: client_secret
+ value: "{{clientSecret}}"
+ type: query
+ auth:
+ type: bearer
+ token: "{{accessToken}}"
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: UserInfo data
+ request:
+ url: https://shibidp.unipr.it/idp/profile/oidc/userinfo?client_id={{shibbolethClientId}}&client_secret={{shibbolethClientSecret}}
+ method: GET
+ headers:
+ - name: Content-Type
+ value: application/x-www-form-urlencoded
+ params:
+ - name: client_id
+ value: "{{shibbolethClientId}}"
+ type: query
+ - name: client_secret
+ value: "{{shibbolethClientSecret}}"
+ type: query
+ response:
+ status: 200
+ statusText: OK
+ headers:
+ - name: date
+ value: Wed, 19 Aug 2026 08:58:14 GMT
+ - name: server
+ value: Jetty(11.0.19)
+ - name: strict-transport-security
+ value: max-age=63072000; includeSubDomains, max-age=63072000 ; includeSubDomains ; preload
+ - name: x-content-type-options
+ value: nosniff
+ - name: x-frame-options
+ value: SAMEORIGIN, DENY
+ - name: cache-control
+ value: no-store
+ - name: content-type
+ value: application/json;charset=utf-8
+ - name: content-security-policy
+ value: frame-ancestors 'none'; base-uri 'none'; script-src 'self' https://shibidp.unipr.it 'unsafe-inline';
+ - name: keep-alive
+ value: timeout=2, max=100
+ - name: connection
+ value: Keep-Alive
+ - name: transfer-encoding
+ value: chunked
+ body:
+ type: json
+ data: |-
+ {
+ "sub": "b0a502f6ad90427f1e6ca7c85a76cccb8b935af4d27504211a0400b42f90c141@unipr.it",
+ "codicefiscale": "MMMPPL74T17E463A",
+ "eduPersonScopedAffiliation": "staff@unipr.it alum@unipr.it member@unipr.it",
+ "name": "Pier Paolo MAMMI",
+ "eduPersonPrincipalName": "pierpaolo.mammi@unipr.it",
+ "given_name": "Pier Paolo",
+ "family_name": "MAMMI",
+ "matricola": "135097",
+ "email": "pierpaolo.mammi@unipr.it"
+ }
diff --git a/bruno/collections/Shibboleth/environments/Shibboleth.yml b/bruno/collections/Shibboleth/environments/Shibboleth.yml
new file mode 100644
index 0000000..c20d53c
--- /dev/null
+++ b/bruno/collections/Shibboleth/environments/Shibboleth.yml
@@ -0,0 +1,17 @@
+name: Shibboleth
+variables:
+ - name: clientId
+ value: "{{process.env.client_id}}"
+ description: ""
+ - name: clientSecret
+ value: "{{process.env.client_secret}}"
+ description: ""
+ - name: redirectUri
+ value: https://gitea.unipr.it/user/oauth2/Shibboleth/callback
+ description: ""
+ - name: accessToken
+ value: AAdzZWNyZXQx1CToBgEqA8mxMWGsLKf0V86PS2Oz-3bI5BlRuiitj3iXP_qfSJgNzYsMdsIQ9QRmoIOS6ISVvFSyJ5XeHYE_msw6VJELg9S6qsO4mrBBwCaUM9p3zMPwNBwZJVn6vqgGghpMS_xeW2EGthh9W0HBsh7WuPYK4HJVpTYIxgYR782xET0ZU3XxLBknOeMoye2IrH3sYpeCRQCmd1GUyTl1Ra4sGdqYcw3iiISA_FbPMXOLFQN8GcFtEcPxzc9CtH4PHKDYIj_QQx0IUgEH814pyC-Oc5-19Gfg4Ulps9ZHF9rb4csbi9mvWAuJESHcSp5NSAK9tEMFvBUCe_2nr7WyzaGTI1D6Nr1PenxbWIRAmXGF5LtzSrv-8_k8XSdufefACBVbZH6EQWm4smrqSlMab71F5s9wB3rFEK5IuANQblFljG_vfoCATpmk0MCYo47SApSrorMYN5K6yWf4P3PuyQrIdrw0PsRzBWoY8XpzQTGYN1I
+ description: ""
+ - name: serverUri
+ value: https://shibidp.unipr.it
+ description: ""
diff --git a/bruno/collections/Shibboleth/opencollection.yml b/bruno/collections/Shibboleth/opencollection.yml
new file mode 100644
index 0000000..8945583
--- /dev/null
+++ b/bruno/collections/Shibboleth/opencollection.yml
@@ -0,0 +1,21 @@
+opencollection: 1.0.0
+
+info:
+ name: Shibboleth
+config:
+ proxy:
+ inherit: true
+ config:
+ protocol: http
+ hostname: ""
+ port: ""
+ auth:
+ username: ""
+ password: ""
+ bypassProxy: ""
+bundled: false
+extensions:
+ bruno:
+ ignore:
+ - node_modules
+ - .git
diff --git a/collections/elixForms API v2/.env.template b/bruno/collections/elixForms API v2/.env.template
similarity index 100%
rename from collections/elixForms API v2/.env.template
rename to bruno/collections/elixForms API v2/.env.template
diff --git a/collections/elixForms API v2/Authorization/Login.yml b/bruno/collections/elixForms API v2/Authorization/Login.yml
similarity index 100%
rename from collections/elixForms API v2/Authorization/Login.yml
rename to bruno/collections/elixForms API v2/Authorization/Login.yml
diff --git a/collections/elixForms API v2/Authorization/Logout.yml b/bruno/collections/elixForms API v2/Authorization/Logout.yml
similarity index 100%
rename from collections/elixForms API v2/Authorization/Logout.yml
rename to bruno/collections/elixForms API v2/Authorization/Logout.yml
diff --git a/collections/elixForms API v2/Authorization/folder.yml b/bruno/collections/elixForms API v2/Authorization/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Authorization/folder.yml
rename to bruno/collections/elixForms API v2/Authorization/folder.yml
diff --git a/collections/elixForms API v2/Calendar 2.0/Get appointments.yml b/bruno/collections/elixForms API v2/Calendar 2.0/Get appointments.yml
similarity index 100%
rename from collections/elixForms API v2/Calendar 2.0/Get appointments.yml
rename to bruno/collections/elixForms API v2/Calendar 2.0/Get appointments.yml
diff --git a/collections/elixForms API v2/Calendar 2.0/Set acquired appointments.yml b/bruno/collections/elixForms API v2/Calendar 2.0/Set acquired appointments.yml
similarity index 100%
rename from collections/elixForms API v2/Calendar 2.0/Set acquired appointments.yml
rename to bruno/collections/elixForms API v2/Calendar 2.0/Set acquired appointments.yml
diff --git a/collections/elixForms API v2/Calendar 2.0/folder.yml b/bruno/collections/elixForms API v2/Calendar 2.0/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Calendar 2.0/folder.yml
rename to bruno/collections/elixForms API v2/Calendar 2.0/folder.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Reopen Request (OLD).yml
similarity index 99%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Reopen Request (OLD).yml
index fb242e7..dec7d0a 100644
--- a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml
+++ b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Reopen Request (OLD).yml
@@ -1,7 +1,7 @@
info:
name: Reopen Request (OLD)
type: http
- seq: 4
+ seq: 6
http:
method: POST
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status (OLD).yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Set Request Status (OLD).yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status (OLD).yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Set Request Status (OLD).yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Set Request Status- Register result (OLD).yml
similarity index 99%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Set Request Status- Register result (OLD).yml
index f64bfd1..5ef0a63 100644
--- a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml
+++ b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/Set Request Status- Register result (OLD).yml
@@ -1,7 +1,7 @@
info:
name: "Set Request Status: Register result (OLD)"
type: http
- seq: 3
+ seq: 6
http:
method: POST
diff --git a/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/folder.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/folder.yml
new file mode 100644
index 0000000..01e3d2c
--- /dev/null
+++ b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/OLD/folder.yml
@@ -0,0 +1,7 @@
+info:
+ name: OLD
+ type: folder
+ seq: 6
+
+request:
+ auth: inherit
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml
diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/folder.yml b/bruno/collections/elixForms API v2/Cambio stato e-o integrazione/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Cambio stato e-o integrazione/folder.yml
rename to bruno/collections/elixForms API v2/Cambio stato e-o integrazione/folder.yml
diff --git a/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml b/bruno/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml
similarity index 100%
rename from collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml
rename to bruno/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml
diff --git a/collections/elixForms API v2/Comunicazioni formali/folder.yml b/bruno/collections/elixForms API v2/Comunicazioni formali/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Comunicazioni formali/folder.yml
rename to bruno/collections/elixForms API v2/Comunicazioni formali/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Anno corrente.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Anno corrente.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Anno corrente.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Anno corrente.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco Contraenti in formato CSV DSAN.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco Contraenti in formato CSV DSAN.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco Contraenti in formato CSV DSAN.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco Contraenti in formato CSV DSAN.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco RS in formato CSV DSAN.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco RS in formato CSV DSAN.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco RS in formato CSV DSAN.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Elenco RS in formato CSV DSAN.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Calcolo importo equivalente.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Calcolo importo equivalente.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Calcolo importo equivalente.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Calcolo importo equivalente.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Dati attività CSV.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Dati attività CSV.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Dati attività CSV.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Dentro - Dati attività CSV.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Calcolo importo equivalente.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Calcolo importo equivalente.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Calcolo importo equivalente.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Calcolo importo equivalente.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Dati attività CSV copy.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Dati attività CSV copy.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Dati attività CSV copy.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Inserimento Ore Fuori - Dati attività CSV copy.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore dentro orario.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore dentro orario.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore dentro orario.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore dentro orario.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore fuori orario.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore fuori orario.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore fuori orario.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Calcolo MIN ore fuori orario.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore dentro orario.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore dentro orario.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore dentro orario.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore dentro orario.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore fuori orario.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore fuori orario.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore fuori orario.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Limiti - Indicazione MAX annuale ore fuori orario.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Calcolo ore equivalenti.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Calcolo ore equivalenti.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Calcolo ore equivalenti.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Calcolo ore equivalenti.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ammesso compilazione.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ammesso compilazione.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ammesso compilazione.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ammesso compilazione.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ruolo per compilazione.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ruolo per compilazione.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ruolo per compilazione.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Check ruolo per compilazione.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Importo ripartizione da Proposta.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Importo ripartizione da Proposta.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Importo ripartizione da Proposta.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/Richiedente - Importo ripartizione da Proposta.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/DSAN/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura assegnazione.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura assegnazione.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura assegnazione.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura assegnazione.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura protocollo.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura protocollo.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura protocollo.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Campi conferma - Codice struttura protocollo.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Check Richiedente IN Responsabili Scientifici.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Check Richiedente IN Responsabili Scientifici.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Check Richiedente IN Responsabili Scientifici.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Check Richiedente IN Responsabili Scientifici.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Codici fiscali ripartizioni.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Codici fiscali ripartizioni.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Codici fiscali ripartizioni.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Codici fiscali ripartizioni.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Contraenti in formato CSV.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Contraenti in formato CSV.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Contraenti in formato CSV.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Contraenti in formato CSV.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF altri.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF altri.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF altri.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF altri.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF docenti.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF docenti.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF docenti.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Array CF docenti.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Dropdown con chiave.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Dropdown con chiave.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Dropdown con chiave.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco Partecipanti - Dropdown con chiave.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco RS in formato CSV.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco RS in formato CSV.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco RS in formato CSV.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco RS in formato CSV.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Nominativo completo RS proponente.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Nominativo completo RS proponente.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Nominativo completo RS proponente.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Nominativo completo RS proponente.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Body.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Body.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Body.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Body.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Subject.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Subject.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Subject.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Notifiche email partecipanti - Subject.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body NO fancy HTML.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body NO fancy HTML.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body NO fancy HTML.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body NO fancy HTML.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Body.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - CF per verifica DSAN.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - CF per verifica DSAN.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - CF per verifica DSAN.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - CF per verifica DSAN.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Email.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Email.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Email.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Email.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo PTA.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo PTA.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo PTA.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo PTA.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo docente.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo docente.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo docente.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Importo docente.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Riga dati completi ripartizione.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Riga dati completi ripartizione.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Riga dati completi ripartizione.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Riga dati completi ripartizione.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Subject.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Subject.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Subject.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - Subject.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - hasDSAN.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - hasDSAN.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - hasDSAN.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Partecipanti - hasDSAN.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Recupero importo richiedente da proposta.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Recupero importo richiedente da proposta.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Recupero importo richiedente da proposta.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Recupero importo richiedente da proposta.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Ripartizioni - Count da form partecipante.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Ripartizioni - Count da form partecipante.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Ripartizioni - Count da form partecipante.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Ripartizioni - Count da form partecipante.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR ADVANCED.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR ADVANCED.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR ADVANCED.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR ADVANCED.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni FOR.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni WHILE.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni WHILE.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni WHILE.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Tabella HTML ripartizioni WHILE.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Recupero importi inseriti.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Recupero importi inseriti.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Recupero importi inseriti.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Recupero importi inseriti.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera ONLYTABLE.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera ONLYTABLE.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera ONLYTABLE.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera ONLYTABLE.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/elixPro - Template Delibera.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco Contraenti CSV (nominativo).yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco Contraenti CSV (nominativo).yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco Contraenti CSV (nominativo).yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco Contraenti CSV (nominativo).yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco RS CSV (cognome nome).yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco RS CSV (cognome nome).yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco RS CSV (cognome nome).yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco RS CSV (cognome nome).yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco contraenti formattati.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco contraenti formattati.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco contraenti formattati.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Elenco contraenti formattati.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento - Nuovo formato.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento - Nuovo formato.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento - Nuovo formato.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento - Nuovo formato.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento su Titulus.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento su Titulus.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento su Titulus.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Fascicolo e documento su Titulus.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml
diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Gestione Istanze - Elenco carriere inserite.yml b/bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Gestione Istanze - Elenco carriere inserite.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Gestione Istanze - Elenco carriere inserite.yml
rename to bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Gestione Istanze - Elenco carriere inserite.yml
diff --git a/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Notifiche email - Elenco carriere e certificati.yml b/bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Notifiche email - Elenco carriere e certificati.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Notifiche email - Elenco carriere e certificati.yml
rename to bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/Notifiche email - Elenco carriere e certificati.yml
diff --git a/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/MOD A13 Richiesta Certificato/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/Process EFTL.yml b/bruno/collections/elixForms API v2/EFTL processing/Process EFTL.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Process EFTL.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Process EFTL.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/TAG per protocollazione fra uffici.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/TAG per protocollazione fra uffici.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/TAG per protocollazione fra uffici.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/TAG per protocollazione fra uffici.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/TAG per riprotocollazione (integrazione).yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/TAG per riprotocollazione (integrazione).yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/TAG per riprotocollazione (integrazione).yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/TAG per riprotocollazione (integrazione).yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/TEST ordine GetValueByTag.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/TEST ordine GetValueByTag.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/TEST ordine GetValueByTag.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/TEST ordine GetValueByTag.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/Test Errore 406.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/Test Errore 406.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/Test Errore 406.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/Test Errore 406.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml
diff --git a/collections/elixForms API v2/EFTL processing/Test vari/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/Test vari/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/Test vari/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/Test vari/folder.yml
diff --git a/collections/elixForms API v2/EFTL processing/folder.yml b/bruno/collections/elixForms API v2/EFTL processing/folder.yml
similarity index 100%
rename from collections/elixForms API v2/EFTL processing/folder.yml
rename to bruno/collections/elixForms API v2/EFTL processing/folder.yml
diff --git a/collections/elixForms API v2/Request details/Get ExportTags.yml b/bruno/collections/elixForms API v2/Request details/Get ExportTags.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/Get ExportTags.yml
rename to bruno/collections/elixForms API v2/Request details/Get ExportTags.yml
diff --git a/collections/elixForms API v2/Request details/Get Request Attachment.yml b/bruno/collections/elixForms API v2/Request details/Get Request Attachment.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/Get Request Attachment.yml
rename to bruno/collections/elixForms API v2/Request details/Get Request Attachment.yml
diff --git a/collections/elixForms API v2/Request details/Get Request Identifier.yml b/bruno/collections/elixForms API v2/Request details/Get Request Identifier.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/Get Request Identifier.yml
rename to bruno/collections/elixForms API v2/Request details/Get Request Identifier.yml
diff --git a/collections/elixForms API v2/Request details/Get Request by QRCode.yml b/bruno/collections/elixForms API v2/Request details/Get Request by QRCode.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/Get Request by QRCode.yml
rename to bruno/collections/elixForms API v2/Request details/Get Request by QRCode.yml
diff --git a/collections/elixForms API v2/Request details/Get Request.yml b/bruno/collections/elixForms API v2/Request details/Get Request.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/Get Request.yml
rename to bruno/collections/elixForms API v2/Request details/Get Request.yml
diff --git a/collections/elixForms API v2/Request details/folder.yml b/bruno/collections/elixForms API v2/Request details/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Request details/folder.yml
rename to bruno/collections/elixForms API v2/Request details/folder.yml
diff --git a/collections/elixForms API v2/Requests lookup/Lookup By Period.yml b/bruno/collections/elixForms API v2/Requests lookup/Lookup By Period.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Lookup By Period.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Lookup By Period.yml
diff --git a/collections/elixForms API v2/Requests lookup/Lookup By Status.yml b/bruno/collections/elixForms API v2/Requests lookup/Lookup By Status.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Lookup By Status.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Lookup By Status.yml
diff --git a/collections/elixForms API v2/Requests lookup/Lookup By User and Period.yml b/bruno/collections/elixForms API v2/Requests lookup/Lookup By User and Period.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Lookup By User and Period.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Lookup By User and Period.yml
diff --git a/collections/elixForms API v2/Requests lookup/Lookup By User.yml b/bruno/collections/elixForms API v2/Requests lookup/Lookup By User.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Lookup By User.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Lookup By User.yml
diff --git a/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status (OLD).yml b/bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status (OLD).yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status (OLD).yml
rename to bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status (OLD).yml
diff --git a/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status.yml b/bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By Status.yml
diff --git a/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User and Period (OLD).yml b/bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User and Period (OLD).yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User and Period (OLD).yml
rename to bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User and Period (OLD).yml
diff --git a/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User only (-) (OLD).yml b/bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User only (-) (OLD).yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User only (-) (OLD).yml
rename to bruno/collections/elixForms API v2/Requests lookup/Obsolete/Lookup By User only (-) (OLD).yml
diff --git a/collections/elixForms API v2/Requests lookup/Obsolete/folder.yml b/bruno/collections/elixForms API v2/Requests lookup/Obsolete/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/Obsolete/folder.yml
rename to bruno/collections/elixForms API v2/Requests lookup/Obsolete/folder.yml
diff --git a/collections/elixForms API v2/Requests lookup/folder.yml b/bruno/collections/elixForms API v2/Requests lookup/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Requests lookup/folder.yml
rename to bruno/collections/elixForms API v2/Requests lookup/folder.yml
diff --git a/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Get request details.yml b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Get request details.yml
similarity index 100%
rename from collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Get request details.yml
rename to bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Get request details.yml
diff --git a/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Login once.yml b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Login once.yml
similarity index 100%
rename from collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Login once.yml
rename to bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Login once.yml
diff --git a/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Lookup requests.yml b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Lookup requests.yml
new file mode 100644
index 0000000..fcbda72
--- /dev/null
+++ b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/Lookup requests.yml
@@ -0,0 +1,276 @@
+info:
+ name: Lookup requests
+ type: http
+ seq: 5
+
+http:
+ method: GET
+ url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status?requestStatus=PROCESSED&moduleTag=PROPOSTA_CCT_OPERATORE"
+ headers:
+ - name: x-requested-with
+ value: XMLHttpRequest
+ - name: x-api-username
+ value: "{{elixFormsApiUsername}}"
+ params:
+ - name: requestStatus
+ value: SUBMITTED
+ type: query
+ description: |-
+ Valori possibili:
+ - IN_PROGRESS
+ - SUBMITTED
+ - PROCESSED
+ possibile selezionare valori multipli
+ disabled: true
+ - name: requestStatus
+ value: PROCESSED
+ type: query
+ - name: moduleTag
+ value: PROPOSTA_CCT_OPERATORE
+ type: query
+ description: Possibile specificare valori multipli
+ - name: moduleTag
+ value: PROPOSTA_CCT_DOCENTE
+ type: query
+ disabled: true
+ - name: swfOptionKey
+ value: "1"
+ type: query
+ disabled: true
+ - name: swfOptionMode
+ value: IN
+ type: query
+ disabled: true
+ auth: inherit
+
+runtime:
+ scripts:
+ - type: after-response
+ code: |-
+ bru.deleteVar("ef_request_cct_ids");
+ // --------------------------------------------------------------------------------
+ bru.deleteVar("elixFormsWebKitFormOutput");
+ // --------------------------------------------------------------------------------
+
+ // Carica il file JSON (sostituisci con il tuo oggetto JSON)
+ const jsonData = res.getBody();
+ const requests = jsonData.value.requests;
+ const requestIds = [];
+ for (const r of requests)
+ {
+ requestIds.push(r.requestId);
+ }
+ //console.log(requestIds);
+ bru.setVar("elixFormsQueryRequestIds", requestIds);
+ bru.setVar("elixFormsQueryRequestIndex", 0);
+ bru.setVar("elixFormsQueryOutput", JSON.stringify(JSON.parse("[]")));
+
+ // --------------------------------------------------------------------------------
+ bru.setVar("elixFormsWebKitFormOutput", "");
+ // --------------------------------------------------------------------------------
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: Lookup By Status (w SWF) - Success
+ request:
+ url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status"
+ method: POST
+ headers:
+ - name: x-requested-with
+ value: XMLHttpRequest
+ body:
+ type: form-urlencoded
+ data:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ - name: requestStatus
+ value: PROCESSED
+ description: |-
+ Valori possibili:
+ - IN_PROGRESS
+ - SUBMITTED
+ - PROCESSED
+
+ possibile selezionare valori multipli
+ - name: moduleTag
+ value: PROPOSTA_CCT_OPERATORE
+ disabled: true
+ - name: moduleTag
+ value: PROPOSTA_CCT_DOCENTE
+ description: |-
+ Per restringere il risultato alle sole richieste del/i modulo/i aventi tag specificato
+
+ Possibile selezionare valori multipli
+ - name: swfOptionKey
+ value: "1"
+ - name: swfOptionMode
+ value: IN
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/it.elixforms.api.v1+json;charset=UTF-8
+ - name: content-length
+ value: "787"
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ body:
+ type: text
+ data: |-
+ {
+ "value": {
+ "code": "OK",
+ "description": "OK",
+ "complete": true,
+ "globalStatus": "OK",
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.2.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "OK",
+ "description": "OK",
+ "detailStatus": "OK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "88b0ea46-f1c2-4ed3-a5f2-1a43c6e1fd58",
+ "version": "3.10.0.23",
+ "requests": [
+ {
+ "moduleTag": "PROPOSTA_CCT_DOCENTE",
+ "requestId": 10699,
+ "step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
+ },
+ {
+ "moduleTag": "PROPOSTA_CCT_DOCENTE",
+ "requestId": 10728,
+ "step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
+ },
+ {
+ "moduleTag": "PROPOSTA_CCT_DOCENTE",
+ "requestId": 10868,
+ "step": "Inoltrata, senza stato di workflow semplice disponibile per il modulo"
+ }
+ ],
+ "requestsSize": 3
+ }
+ }
+ - name: Lookup By Status - Error
+ request:
+ url: "{{elixFormsApiUrl_Default}}/request/lookup/by-status"
+ method: POST
+ body:
+ type: form-urlencoded
+ data:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ - name: requestStatus
+ value: IN_PROGRESS
+ description: |-
+ Valori possibili:
+ - IN_PROGRESS
+ - SUBMITTED
+ - PROCESSED
+
+ possibile selezionare valori multipli
+ - name: moduleTag
+ value: PROPOSTA_CCT_OPERATORE
+ - name: moduleTag
+ value: PROPOSTA_CCT_DOCENTE
+ description: |-
+ Per restringere il risultato alle sole richieste del/i modulo/i aventi tag specificato
+
+ Possibile selezionare valori multipli
+ disabled: true
+ - name: swfOptionKey
+ value: "1"
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/it.elixforms.api.v1+json;charset=UTF-8
+ - name: content-length
+ value: "925"
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ body:
+ type: text
+ data: |-
+ {
+ "value": {
+ "code": "ERROR",
+ "description": "Il modulo identificato dal tag \"PROPOSTA_CCT_OPERATORE\" NON contiene un workflow semplice (la scheda modulo 10 contiene un valore nullo o 0 nella colonna S_10_COL0051), ma è stato richiesto di filtrare i risultati per il valore INOLTRATA (uno stato di workflow semplice)",
+ "complete": true,
+ "globalStatus": "ERROR",
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.2.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "ERROR",
+ "description": "Il modulo identificato dal tag \"PROPOSTA_CCT_OPERATORE\" NON contiene un workflow semplice (la scheda modulo 10 contiene un valore nullo o 0 nella colonna S_10_COL0051), ma è stato richiesto di filtrare i risultati per il valore INOLTRATA (uno stato di workflow semplice)",
+ "detailStatus": "ERROR"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "ed18681c-a40e-458e-8f70-0b982a19ab0b",
+ "version": "3.9.2.17",
+ "requestsSize": 0
+ }
+ }
diff --git a/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/folder.yml b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/folder.yml
new file mode 100644
index 0000000..43cac65
--- /dev/null
+++ b/bruno/collections/elixForms API v2/Runner- Get Proposta CCT matching contract IDs/folder.yml
@@ -0,0 +1,7 @@
+info:
+ name: Runner- Get Proposta CCT matching contract IDs
+ type: folder
+ seq: 2
+
+request:
+ auth: inherit
diff --git a/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Get request details.yml b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Get request details.yml
new file mode 100644
index 0000000..5566cb8
--- /dev/null
+++ b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Get request details.yml
@@ -0,0 +1,933 @@
+info:
+ name: Get request details
+ type: http
+ seq: 6
+
+http:
+ method: GET
+ url: "{{elixFormsApiUrl_Default}}/request/:request_id/get"
+ headers:
+ - name: x-requested-with
+ value: XMLHttpRequest
+ - name: x-api-username
+ value: "{{elixFormsApiUsername}}"
+ params:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ type: query
+ description: lo username con cui si è effettuato il login
+ disabled: true
+ - name: recordOrder
+ value: NONE
+ type: query
+ description: case sensitive
+ disabled: true
+ - name: request_id
+ value: REPLACE
+ type: path
+ body:
+ type: form-urlencoded
+ auth: inherit
+
+runtime:
+ scripts:
+ - type: before-request
+ code: |-
+ if (!bru.hasVar("elixFormsQueryRequestIds"))
+ {
+ console.error("Pre: NO RequestIds FOUND!");
+ }
+ const requestIds = bru.getVar("elixFormsQueryRequestIds");
+ if (!bru.hasVar("elixFormsQueryRequestIndex"))
+ {
+ console.error("Pre: NO RequestIndex FOUND!");
+ }
+ const requestIndex = bru.getVar("elixFormsQueryRequestIndex");
+ const requestId = requestIds[requestIndex];
+
+ if (requestId === undefined)
+ {
+ console.log("Undefined, printing vars:");
+ //console.log(bru.getVar("elixFormsQueryOutput"));
+ console.log(bru.getVar("elixFormsWebKitFormOutput"));
+ }
+ else
+ {
+ //console.log("Calling method with requestId: " + requestId);
+ req.setUrl(req.getUrl().replace(":request_id", requestId));
+ }
+ - type: after-response
+ code: |-
+ if (!bru.hasVar("elixFormsQueryRequestIds"))
+ {
+ console.error("Pre: NO elixFormsQueryRequestIds FOUND!");
+ }
+ const requestIds = bru.getVar("elixFormsQueryRequestIds");
+ if (!bru.hasVar("elixFormsQueryRequestIndex"))
+ {
+ console.error("Post: NO elixFormsQueryRequestIndex FOUND!");
+ }
+ const requestIndex = bru.getVar("elixFormsQueryRequestIndex");
+ if (!bru.hasVar("elixFormsQueryOutput"))
+ {
+ console.error("Post: NO elixFormsQueryOutput FOUND!");
+ }
+ const jsonOutput = JSON.parse(bru.getVar("elixFormsQueryOutput"));
+
+ // --------------------------------------------------------------------------------
+ if (!bru.hasVar("elixFormsWebKitFormOutput"))
+ {
+ console.error("Post: NO elixFormsWebKitFormOutput FOUND!");
+ }
+ var webKitFormOutput = bru.getVar("elixFormsWebKitFormOutput");
+ // --------------------------------------------------------------------------------
+
+ // Get response data
+ const request = res.getBody().value.request;
+ const idRequest = request.idRequest ?? 0;
+ const recordId = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.recordId ?? "";
+
+ if (recordId != "")
+ {
+ const contraenti = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.sections?.find(s => s.sectionKey == "SEC_0001")?.columns?.find(c => c.columnKey == "COL0004")?.columnValue ?? "";
+ const responsabili = request.steps?.find(s => s.stepHeader == "Dati generali")?.schemas?.find(s => s.schemaId == "341")?.records?.[0]?.sections?.find(s => s.sectionKey == "SEC_0003")?.columns?.find(c => c.columnKey == "COL0017")?.columnValue ?? "";
+
+ // Now prepare values as needed
+ const contraentiCsv = contraenti.split("\n").map(c => c.split(", CF/PIVA: ")[0]).join(", ");
+ const responsabiliCsv = responsabili.split("\n").map(r => r.split(", CF: ")[0]).join(", ");
+
+ const stringElement = '{ "idRequest": ' + idRequest + ', "S_341_'+recordId+'_COL0118": "' + responsabiliCsv + '", "S_341_'+recordId+'_COL0119": "' + contraentiCsv + '" }';
+ const jsonElement = JSON.parse(stringElement);
+
+ jsonOutput.push(jsonElement);
+
+ bru.setVar("elixFormsQueryOutput", JSON.stringify(jsonOutput));
+
+ // --------------------------------------------------------------------------------
+ webKitFormOutput += "------WebKitFormBoundary0123456789abcdef\r\n";
+ webKitFormOutput += "Content-Disposition: form-data; name=\"S_341_" + recordId + "_COL0118\"\r\n";
+ webKitFormOutput += "\r\n";
+ webKitFormOutput += responsabiliCsv + "\r\n";
+ webKitFormOutput += "------WebKitFormBoundary0123456789abcdef\r\n";
+ webKitFormOutput += "Content-Disposition: form-data; name=\"S_341_" + recordId + "_COL0119\"\r\n";
+ webKitFormOutput += "\r\n";
+ webKitFormOutput += contraentiCsv + "\r\n";
+
+ bru.setVar("elixFormsWebKitFormOutput", webKitFormOutput);
+ // --------------------------------------------------------------------------------
+ }
+ else
+ {
+ console.log("Cannot retrieve recordId from request " + idRequest);
+ };
+
+ // Set next request if needed
+ if (requestIndex < requestIds.length - 1 && requestIndex < 3)
+ {
+ bru.setVar("elixFormsQueryRequestIndex", requestIndex + 1);
+ bru.runner.setNextRequest("Get request details");
+ }
+ else
+ {
+ console.log("JSON object:");
+ console.log(JSON.stringify(jsonOutput));
+
+ // --------------------------------------------------------------------------------
+ webKitFormOutput += "------WebKitFormBoundary0123456789abcdef--\r\n";
+
+ bru.setVar("elixFormsWebKitFormOutput", webKitFormOutput);
+
+ console.log("--------------------------------------------------------------------------------");
+ console.log("WebKitForm:");
+ console.log(JSON.stringify(webKitFormOutput));
+ // --------------------------------------------------------------------------------
+ }
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: Get Request - Success
+ request:
+ url: "{{elixFormsApiUrl_Default}}/request/:request_id/get?username={{elixFormsApiUsername}}"
+ method: GET
+ params:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ type: query
+ description: lo username con cui si è effettuato il login
+ - name: recordOrder
+ value: NONE
+ type: query
+ description: case sensitive
+ disabled: true
+ - name: request_id
+ value: "7007"
+ type: path
+ body:
+ type: form-urlencoded
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/it.elixforms.api.v1.2+json;charset=UTF-8
+ - name: transfer-encoding
+ value: chunked
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ body:
+ type: text
+ data: |-
+ {
+ "value": {
+ "code": "OK",
+ "description": "OK",
+ "complete": true,
+ "globalStatus": "OK",
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.2.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "OK",
+ "description": "OK",
+ "detailStatus": "OK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "1d889f27-cf95-487b-9523-84033df41391",
+ "version": "3.9.2.17",
+ "request": {
+ "idRequest": 7007,
+ "moduleCategoryTag": "ASI-RIC, CONTO_TERZI",
+ "moduleTag": "PROPOSTA_CCT_DOCENTE",
+ "moduleUrl": "https://unipr.elixforms.it/rwe2/forms/recap.jsp?IUQOID=7007&RWE2_TAB_REL=14900&IURTLGY=schemadata&ELANG=it&IATL=it",
+ "requestTitle": "RWE2 - Request",
+ "attributes": [
+ {
+ "columnKey": "COL0008",
+ "columnTitle": "Created",
+ "columnValue": "true"
+ },
+ {
+ "columnKey": "COL0009",
+ "columnTitle": "Created date",
+ "columnValue": "16-04-2025 15:39"
+ },
+ {
+ "columnKey": "COL0010",
+ "columnTitle": "Confirmed",
+ "columnValue": "true"
+ },
+ {
+ "columnKey": "COL0011",
+ "columnTitle": "Confirmed date",
+ "columnValue": "16-04-2025 15:41"
+ },
+ {
+ "columnKey": "COL0012",
+ "columnTitle": "Complete",
+ "columnValue": "true"
+ },
+ {
+ "columnKey": "COL0013",
+ "columnTitle": "Complete date",
+ "columnValue": "16-04-2025 15:41"
+ },
+ {
+ "columnKey": "COL0035",
+ "columnTitle": "Complete (first time)",
+ "columnValue": "true"
+ },
+ {
+ "columnKey": "COL0036",
+ "columnTitle": "Complete date (first time)",
+ "columnValue": "16-04-2025 15:41"
+ },
+ {
+ "columnKey": "COL0037",
+ "columnTitle": "Evasa",
+ "columnValue": "true"
+ },
+ {
+ "columnKey": "COL0038",
+ "columnTitle": "Data di evasione",
+ "columnValue": "16-04-2025 16:10"
+ },
+ {
+ "columnKey": "COL0039",
+ "columnTitle": "Archiviata",
+ "columnValue": ""
+ },
+ {
+ "columnKey": "COL0040",
+ "columnTitle": "Data di archiviazione",
+ "columnValue": ""
+ }
+ ],
+ "steps": [
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 14906,
+ "multipleForms": false,
+ "stepHeader": "Richiedente",
+ "schemas": [
+ {
+ "recordSize": 1,
+ "schemaId": 327,
+ "tag": "",
+ "title": "PROPOSTA_CCT_DOCENTE_Richiedente",
+ "records": [
+ {
+ "columnSize": 4,
+ "recordId": 23629,
+ "recordNum": 1,
+ "sections": [
+ {
+ "sectionKey": "SEC_0001",
+ "sectionTitle": "Richiedente",
+ "columns": [
+ {
+ "columnKey": "COL0003",
+ "columnName": "COL0003",
+ "columnTitle": "Cognome",
+ "columnType": "STRING",
+ "columnValue": ""
+ },
+ {
+ "columnKey": "COL0004",
+ "columnName": "COL0004",
+ "columnTitle": "Nome",
+ "columnType": "STRING",
+ "columnValue": ""
+ },
+ {
+ "columnKey": "COL0001",
+ "columnName": "COL0001",
+ "columnTitle": "Codice Fiscale",
+ "columnType": "STRING",
+ "columnValue": "MMMPPL74T17E463A"
+ },
+ {
+ "columnKey": "COL0005",
+ "columnName": "COL0005",
+ "columnTitle": "Email",
+ "columnType": "STRING",
+ "columnValue": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 18917,
+ "multipleForms": false,
+ "stepHeader": "Dati generali e Costi",
+ "schemas": [
+ {
+ "recordSize": 1,
+ "schemaId": 326,
+ "tag": "",
+ "title": "PROPOSTA_CCT_DOCENTE_Dati_generali",
+ "records": [
+ {
+ "columnSize": 20,
+ "recordId": 23630,
+ "recordNum": 1,
+ "sections": [
+ {
+ "sectionKey": "SEC_0001",
+ "sectionTitle": "Dati del contratto",
+ "columns": [
+ {
+ "exportTag": {
+ "exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
+ "exportTag": "contratto.Titolo"
+ },
+ "columnKey": "COL0005",
+ "columnName": "COL0005",
+ "columnTitle": "Titolo",
+ "columnType": "TEXTAREA",
+ "columnValue": "Titolo"
+ },
+ {
+ "columnKey": "COL0006",
+ "columnName": "COL0006",
+ "columnTitle": "Struttura principale",
+ "columnType": "STRING",
+ "columnValue": "U.O. Sistemi Applicativi"
+ },
+ {
+ "columnKey": "COL0007",
+ "columnName": "COL0007",
+ "columnTitle": "Codice struttura",
+ "columnType": "STRING",
+ "columnValue": ""
+ },
+ {
+ "exportTag": {
+ "exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
+ "exportTag": "contratto.durataInMesi"
+ },
+ "columnKey": "COL0008",
+ "columnName": "COL0008",
+ "columnTitle": "Durata (mesi)",
+ "columnType": "STRING",
+ "columnValue": "17"
+ },
+ {
+ "exportTag": {
+ "exportGroup": "API;PROPOSTA_CCT_DOCENTE_GROUP",
+ "exportTag": "contratto.corrispettivo"
+ },
+ "columnKey": "COL0009",
+ "columnName": "COL0009",
+ "columnTitle": "Corrispettivo / contributo € (IVA esclusa)",
+ "columnType": "STRING",
+ "columnValue": "12500"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0002",
+ "sectionTitle": "Responsabile Scientifico proponente",
+ "columns": [
+ {
+ "columnKey": "COL0012",
+ "columnName": "COL0012",
+ "columnTitle": "Nome",
+ "columnType": "STRING",
+ "columnValue": "Pier Paolo"
+ },
+ {
+ "columnKey": "COL0013",
+ "columnName": "COL0013",
+ "columnTitle": "Cognome",
+ "columnType": "STRING",
+ "columnValue": "MAMMI"
+ },
+ {
+ "columnKey": "COL0038",
+ "columnName": "COL0038",
+ "columnTitle": "Email",
+ "columnType": "STRING",
+ "columnValue": "pierpaolo.mammi@unipr.it"
+ },
+ {
+ "columnKey": "COL0014",
+ "columnName": "COL0014",
+ "columnTitle": "Codice fiscale",
+ "columnType": "STRING",
+ "columnValue": "MMMPPL74T17E463A"
+ },
+ {
+ "columnKey": "COL0015",
+ "columnName": "COL0015",
+ "columnTitle": "Struttura",
+ "columnType": "STRING",
+ "columnValue": "U.O. Sistemi Applicativi"
+ },
+ {
+ "columnKey": "COL0016",
+ "columnName": "COL0016",
+ "columnTitle": "Codice struttura",
+ "columnType": "STRING",
+ "columnValue": "106143"
+ },
+ {
+ "columnKey": "COL0046",
+ "columnName": "COL0046",
+ "columnTitle": "Titolo accademico (nascosto)",
+ "columnType": "STRING",
+ "columnValue": ""
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0008",
+ "sectionTitle": "Costi",
+ "columns": [
+ {
+ "columnKey": "COL0053",
+ "columnName": "COL0053",
+ "columnTitle": "Dettaglio dei costi",
+ "columnType": "TEXTAREA",
+ "columnValue": "dettaglio"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0009",
+ "sectionTitle": "Altro",
+ "columns": [
+ {
+ "columnKey": "COL0054",
+ "columnName": "COL0054",
+ "columnTitle": "Note aggiuntive",
+ "columnType": "TEXTAREA",
+ "columnValue": ""
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0006",
+ "sectionTitle": "",
+ "columns": [
+ {
+ "columnKey": "COL0020",
+ "columnName": "COL0020",
+ "columnTitle": "UUID",
+ "columnType": "STRING",
+ "columnValue": "e116f677-a115-45eb-b51b-66f8dd754b6b"
+ },
+ {
+ "columnKey": "COL0002",
+ "columnName": "COL0002",
+ "columnTitle": "JSON",
+ "columnType": "TEXTAREA",
+ "columnValue": "{"value":{"code":"OK","description":"","complete":true,"globalStatus":"OK","serviceInformationList":{"serviceInformation":[{"ITSystemName":"EF-PROXY","complete":true,"serviceVersion":"1.0.0","statusDetailList":{"statusDetail":[{"code":"OK","detailStatus":"OK"}]}}]},"uuid":"e116f677-a115-45eb-b51b-66f8dd754b6b","version":"3.0.0","json":{"idAb":"269139","matricola":"050713","nome":"Pier Paolo","cognome":"MAMMI","dataFineRapporto":null,"dataInizioRapporto":"2025-01-20","codice_attivita":"0001","descrizione_attivita":"In servizio","emailAteneo":"pierpaolo.mammi@unipr.it","cellulare_servizio":null,"ruolo":"ND","profilo":"SETTORE_10","inquadramento":"FU0","genere":"M","cod_fis":"MMMPPL74T17E463A","codice_struttura":"106143","nome_struttura":"U.O. Sistemi Applicativi","codice_struttura_padre":"106139","nome_struttura_padre":"Area - Sistemi Informativi","telefono":"0521 904145","comitato":null,"codiceSsd":"000000000000","area_disciplinare":"00","nome_sup_diretto":"Simona","cognome_sup_diretto":"BERTE'","cf_sup_diretto":"BRTSMN69B65G337A","mail_sup_diretto":"simona.berte@unipr.it","matricola_sup_diretto":"005603","nome_sup_apicale":"Candeloro","cognome_sup_apicale":"BELLANTONI","matricola_sup_apicale":"028973","cf_sup_apicale":"BLLCDL60C28H224V","mail_sup_apicale":"candeloro.bellantoni@unipr.it","pt_tipo":null,"pt_ds_tipo":null,"perc_pt":"100","descrizione_ruolo":null,"descrizione_profilo":"Settore tecnico - informatico","descrizione_inquadramento":"Area dei Funzionari","id_fascicolo_titulus":"5404836"}}}"
+ },
+ {
+ "columnKey": "COL0021",
+ "columnName": "COL0021",
+ "columnTitle": "Messaggio",
+ "columnType": "STRING",
+ "columnValue": ""
+ },
+ {
+ "columnKey": "COL0022",
+ "columnName": "COL0022",
+ "columnTitle": "Errore",
+ "columnType": "STRING",
+ "columnValue": ""
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0007",
+ "sectionTitle": "Valori calcolati (nascosti)",
+ "columns": [
+ {
+ "columnKey": "COL0052",
+ "columnName": "COL0052",
+ "columnTitle": "Docente",
+ "columnType": "STRING",
+ "columnValue": "MAMMI Pier Paolo"
+ },
+ {
+ "columnKey": "COL0055",
+ "columnName": "COL0055",
+ "columnTitle": "Corrispettivo formattato",
+ "columnType": "STRING",
+ "columnValue": "12.500,00"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 22115,
+ "multipleForms": false,
+ "stepHeader": "Contraenti e Partecipanti",
+ "schemas": [
+ {
+ "recordSize": 1,
+ "schemaId": 374,
+ "tag": "",
+ "title": "PROPOSTA_CCT_DOCENTE_Contraenti_Partecipanti",
+ "records": [
+ {
+ "columnSize": 2,
+ "recordId": 23634,
+ "recordNum": 1,
+ "sections": [
+ {
+ "sectionKey": "SEC_0001",
+ "sectionTitle": "Contraenti",
+ "columns": [
+ {
+ "columnKey": "COL0001",
+ "columnName": "COL0001",
+ "columnTitle": "Elenco dei contraenti",
+ "columnType": "TEXTAREA",
+ "columnValue": "Contraenti"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0002",
+ "sectionTitle": "Partecipanti",
+ "columns": [
+ {
+ "columnKey": "COL0002",
+ "columnName": "COL0002",
+ "columnTitle": "Elenco dei partecipanti",
+ "columnType": "TEXTAREA",
+ "columnValue": "Partecipanti"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 14904,
+ "multipleForms": false,
+ "stepHeader": "Dichiarazioni",
+ "schemas": [
+ {
+ "recordSize": 1,
+ "schemaId": 325,
+ "tag": "",
+ "title": "PROPOSTA_CCT_DOCENTE_Dichiarazioni",
+ "records": [
+ {
+ "columnSize": 15,
+ "recordId": 23635,
+ "recordNum": 1,
+ "sections": [
+ {
+ "sectionKey": "SEC_0001",
+ "sectionTitle": "Dichiarazioni",
+ "columns": [
+ {
+ "columnKey": "COL0001",
+ "columnName": "COL0001",
+ "columnTitle": "La/Il Prof.ssa/Prof./Dott.ssa/Dott. DICHIARA",
+ "columnType": "CHECKBOX",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "1": "di conoscere il testo dell'Accordo e gli adempimenti a proprio carico previsti nello stesso;"
+ }
+ ]
+ },
+ "columnValue": null
+ },
+ {
+ "columnKey": "COL0002",
+ "columnName": "COL0002",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "2": "di accettare e impegnarsi a rispettare gli obblighi di segretezza e confidenzialità, la disciplina dei \"Risultati\" e/o della \"Proprietà Intellettuale\" e delle \"Pubblicazioni\", nonché tutti i termini e condizioni previsti nell'Accordo;"
+ }
+ ]
+ },
+ "columnValue": null
+ },
+ {
+ "columnKey": "COL0003",
+ "columnName": "COL0003",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "3": "che le attività di cui all'Accordo non determinano alcuna violazione degli obblighi in materia di proprietà intellettuale già assunti dall'Università nei confronti di altri contraenti con i quali l'Ateneo ha sottoscritto specifici contratti/convenzioni nell'ambito dei quali il dichiarante è stato/a individuato/a come \"responsabile scientifico\";"
+ }
+ ]
+ },
+ "columnValue": null
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0005",
+ "sectionTitle": "Attività oggetto dell'accordo",
+ "columns": [
+ {
+ "columnKey": "COL0018",
+ "columnName": "COL0018",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "12": "che l'attività oggetto dell'accordo consiste nell'esecuzione di contratti di ricerca e/o la fornitura di servizi svolti nell'interesse di terzi;"
+ }
+ ]
+ },
+ "columnValue": null
+ },
+ {
+ "columnKey": "COL0019",
+ "columnName": "COL0019",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValue": null
+ },
+ {
+ "columnKey": "COL0020",
+ "columnName": "COL0020",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "14": "che l'attività oggetto dell'accordo consiste in attività di formazione svolta nell'interesse di terzi;"
+ }
+ ]
+ },
+ "columnValue": null
+ },
+ {
+ "columnKey": "COL0021",
+ "columnName": "COL0021",
+ "columnTitle": "",
+ "columnType": "CHECKBOX",
+ "columnValue": null
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0006",
+ "sectionTitle": "Utilizzo proprietà intellettuali",
+ "columns": [
+ {
+ "columnKey": "COL0005",
+ "columnName": "COL0005",
+ "columnTitle": "",
+ "columnType": "RADIO",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "9": "che nello svolgimento delle attività dell'Accordo VERRÀ impiegata proprietà intellettuale titolata (domanda di brevetto/brevetto avente ad oggetto invenzioni, modelli di utilità, marchi registrati, software, opere dell'ingegno) di cui l'Università è proprietaria/titolare e/o comproprietaria/contitolare secondo la normativa vigente, avente tipologia indicata nel seguito:"
+ }
+ ]
+ },
+ "columnValue": "che nello svolgimento delle attività dell'Accordo VERRÀ impiegata proprietà intellettuale titolata (domanda di brevetto/brevetto avente ad oggetto invenzioni, modelli di utilità, marchi registrati, software, opere dell'ingegno) di cui l'Università è proprietaria/titolare e/o comproprietaria/contitolare secondo la normativa vigente, avente tipologia indicata nel seguito:"
+ },
+ {
+ "columnKey": "COL0006",
+ "columnName": "COL0006",
+ "columnTitle": "",
+ "columnType": "TEXTAREA",
+ "columnValue": "sdasdasd"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0007",
+ "sectionTitle": "Presenza conflitto d'interessi",
+ "columns": [
+ {
+ "columnKey": "COL0007",
+ "columnName": "COL0007",
+ "columnTitle": "",
+ "columnType": "RADIO",
+ "columnValueList": {
+ "columnValue": [
+ {
+ "11": "di TROVARSI in situazioni e/o in condizioni di conflitto di interessi, anche potenziale, con riferimento all'Accordo di cui alla presente proposta secondo quanto previsto dalle disposizioni di cui alla normativa in materia inerente status giuridico, nonché dalle disposizioni contenute nel Codice di comportamento dell'Università degli Studi di Parma, avente motivazione indicata nel seguito:"
+ }
+ ]
+ },
+ "columnValue": "di TROVARSI in situazioni e/o in condizioni di conflitto di interessi, anche potenziale, con riferimento all'Accordo di cui alla presente proposta secondo quanto previsto dalle disposizioni di cui alla normativa in materia inerente status giuridico, nonché dalle disposizioni contenute nel Codice di comportamento dell'Università degli Studi di Parma, avente motivazione indicata nel seguito:"
+ },
+ {
+ "columnKey": "COL0008",
+ "columnName": "COL0008",
+ "columnTitle": "",
+ "columnType": "TEXTAREA",
+ "columnValue": "swerr523w4r5dfsdf"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0003",
+ "sectionTitle": "",
+ "columns": [
+ {
+ "columnKey": "COL0012",
+ "columnName": "COL0012",
+ "columnTitle": "Luogo",
+ "columnType": "STRING",
+ "columnValue": "Parma"
+ },
+ {
+ "columnKey": "COL0013",
+ "columnName": "COL0013",
+ "columnTitle": "Data",
+ "columnType": "STRING",
+ "columnValue": "16-04-2025"
+ }
+ ]
+ },
+ {
+ "sectionKey": "SEC_0002",
+ "sectionTitle": "Valori calcolati (nascosti)",
+ "columns": [
+ {
+ "columnKey": "COL0010",
+ "columnName": "COL0010",
+ "columnTitle": "Valore utilizzo brevetti",
+ "columnType": "STRING",
+ "columnValue": ""
+ },
+ {
+ "columnKey": "COL0011",
+ "columnName": "COL0011",
+ "columnTitle": "Valore conflitto interessi",
+ "columnType": "STRING",
+ "columnValue": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 18920,
+ "multipleForms": true,
+ "stepHeader": "Allegati",
+ "schemas": []
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 0,
+ "multipleForms": false,
+ "stepHeader": "Riepilogo",
+ "schemas": []
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 0,
+ "multipleForms": false,
+ "stepHeader": "Convalida",
+ "schemas": []
+ },
+ {
+ "conditionalForm": false,
+ "moduleTabGenId": 0,
+ "multipleForms": false,
+ "stepHeader": "Inoltro",
+ "schemas": []
+ }
+ ],
+ "exported_schemas": []
+ },
+ "requestSize": 1
+ }
+ }
+ - name: Get Request - Not Found
+ request:
+ url: "{{elixFormsApiUrl_Default}}/request/:request_id/get?username={{elixFormsApiUsername}}"
+ method: GET
+ params:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ type: query
+ description: lo username con cui si è effettuato il login
+ - name: request_id
+ value: "12"
+ type: path
+ body:
+ type: form-urlencoded
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/it.elixforms.api.v1.2+json;charset=UTF-8
+ - name: content-length
+ value: "456"
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ body:
+ type: text
+ data: |-
+ {
+ "value": {
+ "code": "WARNING",
+ "description": "Nessuna pratica trovata per l'id 12",
+ "complete": true,
+ "globalStatus": "WARNING",
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.2.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "WARNING",
+ "description": "Nessuna pratica trovata per l'id 12",
+ "detailStatus": "WARNING"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "05aea0b0-921c-4304-ab9c-7254ebb6cded",
+ "version": "3.9.2.17",
+ "requestSize": 0
+ }
+ }
diff --git a/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Login once.yml b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Login once.yml
new file mode 100644
index 0000000..f2ee4a1
--- /dev/null
+++ b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Login once.yml
@@ -0,0 +1,255 @@
+info:
+ name: Login once
+ type: http
+ seq: 3
+
+http:
+ method: POST
+ url: "{{elixFormsApiUrl}}/authentication/login/v1"
+ headers:
+ - name: x-requested-with
+ value: XMLHttpRequest
+ body:
+ type: json
+ data: |-
+ {
+ "username": "{{elixFormsApiUsername}}",
+ "password": "{{elixFormsApiPassword}}"
+ }
+
+runtime:
+ scripts:
+ - type: after-response
+ code: |-
+ test("Status code is 200", function () {
+ expect(res.getStatus()).to.equal(200);
+ var jsonData = res.getBody();
+ bru.setVar("elixFormsApiAuthToken", jsonData.value.authToken);
+ });
+
+settings:
+ encodeUrl: true
+ timeout: 0
+ followRedirects: true
+ maxRedirects: 5
+
+examples:
+ - name: Login - Success
+ request:
+ url: "{{elixFormsApiUrl}}/authentication/login/v1"
+ method: POST
+ body:
+ type: form-urlencoded
+ data:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ - name: password
+ value: "{{elixFormsApiPassword}}"
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/json;charset=UTF-8
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ - name: transfer-encoding
+ value: chunked
+ - name: vary
+ value: Accept-Encoding
+ - name: content-encoding
+ value: gzip
+ body:
+ type: json
+ data: |-
+ {
+ "value": {
+ "code": "OK",
+ "description": "OK",
+ "complete": true,
+ "globalStatus": "OK",
+ "resultNumber": 1,
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.1.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "OK",
+ "description": "OK",
+ "detailStatus": "OK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "9d0ba2e7-8e98-4a7a-9fa1-67d421d0aa1e",
+ "version": "3.0.0",
+ "matchingEntitiesSize": 1,
+ "authToken": "2coDKQPTPJAQxWLSNRItM="
+ }
+ }
+ - name: Login - Failure
+ request:
+ url: "{{elixFormsApiUrl}}/authentication/login/v1"
+ method: POST
+ body:
+ type: form-urlencoded
+ data:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ - name: password
+ value: "{{elixFormsApiPassword}}x"
+ response:
+ statusText: "401"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-language
+ value: ""
+ - name: content-type
+ value: text/html;charset=UTF-8
+ - name: content-length
+ value: "1074"
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ body:
+ type: html
+ data: |-
+
+
+
+ Payara Server 6.2025.1 #badassfish - Error report
+
+
+
+ HTTP Status 401 - Unauthorized
+
+
+ type Status report
+
+
+ messageUnauthorized
+
+
+ descriptionThis request requires HTTP authentication.
+
+
+ Payara Server 6.2025.1 #badassfish
+
+
+ - name: Login
+ request:
+ url: "{{elixFormsApiUrl}}/authentication/login/v1"
+ method: POST
+ body:
+ type: form-urlencoded
+ data:
+ - name: username
+ value: "{{elixFormsApiUsername}}"
+ - name: password
+ value: "{{elixFormsApiPassword}}"
+ response:
+ statusText: "200"
+ headers:
+ - name: cache-control
+ value: no-cache, no-store, must-revalidate
+ - name: pragma
+ value: no-cache
+ - name: proxy-connection
+ value: Keep-Alive
+ - name: x-content-security-policy
+ value: default-src 'self'; connect-src 'self'; font-src 'none'; img-src 'self'; media-src 'self'; object-src 'self'; plugin-types application/pdf audio/x-wav; referrer no-referrer; reflected-xss block; script-src 'self'; style-src 'self'
+ - name: content-type
+ value: application/json;charset=UTF-8
+ - name: strict-transport-security
+ value: max-age=63072000;includeSubDomains
+ - name: content-security-policy
+ value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'"
+ - name: x-frame-options
+ value: SAMEORIGIN
+ - name: x-xss-protection
+ value: 1;mode=block
+ - name: x-content-type-options
+ value: nosniff
+ - name: referrer-policy
+ value: unsafe-url
+ - name: transfer-encoding
+ value: chunked
+ - name: vary
+ value: Accept-Encoding
+ - name: content-encoding
+ value: gzip
+ body:
+ type: json
+ data: |-
+ {
+ "value": {
+ "code": "OK",
+ "description": "OK",
+ "complete": true,
+ "globalStatus": "OK",
+ "resultNumber": 1,
+ "serviceInformationList": {
+ "serviceInformation": [
+ {
+ "ITSystemName": "EF-CORE",
+ "complete": true,
+ "serviceVersion": "1.2.0",
+ "statusDetailList": {
+ "statusDetail": [
+ {
+ "code": "OK",
+ "description": "OK",
+ "detailStatus": "OK"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "uuid": "31ee57d5-01b9-4fce-94e2-a224282c08ec",
+ "version": "3.0.0",
+ "matchingEntitiesSize": 1,
+ "authToken": "Z8uKwrp86iSWykuRlRM1k="
+ }
+ }
diff --git a/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Lookup requests.yml b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Lookup requests.yml
similarity index 100%
rename from collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Lookup requests.yml
rename to bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/Lookup requests.yml
diff --git a/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/folder.yml b/bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/folder.yml
similarity index 100%
rename from collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/folder.yml
rename to bruno/collections/elixForms API v2/Runner- Get all requests by ModuleTag and status/folder.yml
diff --git a/collections/elixForms API v2/Set Request Status- Incomplete.yml b/bruno/collections/elixForms API v2/Set Request Status- Incomplete.yml
similarity index 100%
rename from collections/elixForms API v2/Set Request Status- Incomplete.yml
rename to bruno/collections/elixForms API v2/Set Request Status- Incomplete.yml
diff --git a/collections/elixForms API v2/Test Remote WS.yml b/bruno/collections/elixForms API v2/Test Remote WS.yml
similarity index 100%
rename from collections/elixForms API v2/Test Remote WS.yml
rename to bruno/collections/elixForms API v2/Test Remote WS.yml
diff --git a/collections/elixForms API v2/User info/Get User Info.yml b/bruno/collections/elixForms API v2/User info/Get User Info.yml
similarity index 100%
rename from collections/elixForms API v2/User info/Get User Info.yml
rename to bruno/collections/elixForms API v2/User info/Get User Info.yml
diff --git a/collections/elixForms API v2/User info/folder.yml b/bruno/collections/elixForms API v2/User info/folder.yml
similarity index 100%
rename from collections/elixForms API v2/User info/folder.yml
rename to bruno/collections/elixForms API v2/User info/folder.yml
diff --git a/collections/elixForms API v2/_HACKS/Export Module.yml b/bruno/collections/elixForms API v2/_HACKS/Export Module.yml
similarity index 100%
rename from collections/elixForms API v2/_HACKS/Export Module.yml
rename to bruno/collections/elixForms API v2/_HACKS/Export Module.yml
diff --git a/collections/elixForms API v2/_HACKS/folder.yml b/bruno/collections/elixForms API v2/_HACKS/folder.yml
similarity index 100%
rename from collections/elixForms API v2/_HACKS/folder.yml
rename to bruno/collections/elixForms API v2/_HACKS/folder.yml
diff --git a/collections/elixForms API v2/_Untested/Creazione JWT.yml b/bruno/collections/elixForms API v2/_Untested/Creazione JWT.yml
similarity index 100%
rename from collections/elixForms API v2/_Untested/Creazione JWT.yml
rename to bruno/collections/elixForms API v2/_Untested/Creazione JWT.yml
diff --git a/collections/elixForms API v2/_Untested/SSO Receipt Insert.yml b/bruno/collections/elixForms API v2/_Untested/SSO Receipt Insert.yml
similarity index 100%
rename from collections/elixForms API v2/_Untested/SSO Receipt Insert.yml
rename to bruno/collections/elixForms API v2/_Untested/SSO Receipt Insert.yml
diff --git a/collections/elixForms API v2/_Untested/SSO Receipt by User.yml b/bruno/collections/elixForms API v2/_Untested/SSO Receipt by User.yml
similarity index 100%
rename from collections/elixForms API v2/_Untested/SSO Receipt by User.yml
rename to bruno/collections/elixForms API v2/_Untested/SSO Receipt by User.yml
diff --git a/collections/elixForms API v2/_Untested/folder.yml b/bruno/collections/elixForms API v2/_Untested/folder.yml
similarity index 100%
rename from collections/elixForms API v2/_Untested/folder.yml
rename to bruno/collections/elixForms API v2/_Untested/folder.yml
diff --git a/collections/elixForms API v2/elixFormsJs.js b/bruno/collections/elixForms API v2/elixFormsJs.js
similarity index 100%
rename from collections/elixForms API v2/elixFormsJs.js
rename to bruno/collections/elixForms API v2/elixFormsJs.js
diff --git a/collections/elixForms API v2/environments/elixForms - Prod.yml b/bruno/collections/elixForms API v2/environments/elixForms - Prod.yml
similarity index 73%
rename from collections/elixForms API v2/environments/elixForms - Prod.yml
rename to bruno/collections/elixForms API v2/environments/elixForms - Prod.yml
index 793ad02..73d9aa3 100644
--- a/collections/elixForms API v2/environments/elixForms - Prod.yml
+++ b/bruno/collections/elixForms API v2/environments/elixForms - Prod.yml
@@ -2,9 +2,7 @@ name: elixForms - Prod
color: "#2E8A54"
variables:
- name: elixFormsApiUrl
- value: "{{elixFormsRootUrl}}/eF/services/api"
- - name: elixFormsRootUrl
- value: https://procedure.unipr.it
+ value: https://procedure.unipr.it/eF/services/api
- name: elixFormsApiUsername
value: "{{process.env.elixFormsApiUsername}}"
- name: elixRegisterResultColumns
@@ -12,6 +10,6 @@ variables:
- name: elixFormsWsAuthenticationToken
value: "{{process.env.elixFormsWsAuthenticationToken}}"
- name: elixFormsApiUrl_Default
- value: "{{elixFormsRootUrl}}/eF/api"
+ value: https://procedure.unipr.it/eF/api
- name: elixFormsApiPassword
value: "{{process.env.elixFormsApiPassword}}"
diff --git a/collections/elixForms API v2/opencollection.yml b/bruno/collections/elixForms API v2/opencollection.yml
similarity index 100%
rename from collections/elixForms API v2/opencollection.yml
rename to bruno/collections/elixForms API v2/opencollection.yml
diff --git a/environments/UniPR.yml b/bruno/environments/UniPR.yml
similarity index 100%
rename from environments/UniPR.yml
rename to bruno/environments/UniPR.yml
diff --git a/workspace.yml b/bruno/workspace.yml
similarity index 93%
rename from workspace.yml
rename to bruno/workspace.yml
index 2f18ad4..ccb517b 100644
--- a/workspace.yml
+++ b/bruno/workspace.yml
@@ -24,6 +24,8 @@ collections:
path: "collections/ESSE3 Common Auth API"
- name: "ESSE3 Anagrafica API"
path: "collections/ESSE3 Anagrafica API"
+ - name: "Shibboleth"
+ path: "collections/Shibboleth"
specs:
diff --git a/collections/IDEM WebServices/.env.template b/collections/IDEM WebServices/.env.template
deleted file mode 100644
index 5c255a0..0000000
--- a/collections/IDEM WebServices/.env.template
+++ /dev/null
@@ -1,4 +0,0 @@
-IdemApiPassword_Test=
-IdemApiPassword_Prod=
-IdemApiKey_Prod=
-IdemApiKey_Test=
\ No newline at end of file
diff --git a/env.json.template b/env.json.template
new file mode 100644
index 0000000..0aeb101
--- /dev/null
+++ b/env.json.template
@@ -0,0 +1,45 @@
+{
+ "Config": {
+ "ExcludeFromBruno": [
+ "elixFormsApiUrl",
+ "elixFormsApiUrl_Default",
+ "esse3apiRootUrl",
+ "IdemApiUrl",
+ "IrisApiUrl"
+ ]
+ },
+ "API": {
+ "elixForms API v2": {
+ "elixFormsApiUrl": "https://procedure.unipr.it/eF/services/api",
+ "elixFormsApiUrl_Default": "https://procedure.unipr.it/eF/api",
+ "elixFormsApiUsername": null,
+ "elixFormsApiPassword": null,
+ "elixFormsWsAuthenticationToken": null
+ },
+ "ESSE3 Anagrafica API": {
+ "esse3apiRootUrl": "https://unipr2.esse3.pp.cineca.it/e3rest/api",
+ "esse3apiUsername": null,
+ "esse3apiPassword": null
+ },
+ "ESSE3 Common Auth API": {
+ "esse3apiRootUrl": "https://unipr2.esse3.pp.cineca.it/e3rest/api",
+ "esse3apiUsername": null,
+ "esse3apiPassword": null
+ },
+ "IDEM WebServices": {
+ "IdemApiUrl": "https://www.idem.unipr.it/ws/elix",
+ "IdemApiUsername": null,
+ "IdemApiPassword": null,
+ "IdemApiKey": null
+ },
+ "IRIS GW (Gateway) REST API (v1)": {
+ "IrisApiUrl": "https://air.unipr.it/gw/rest/api",
+ "IrisApiUsername": null,
+ "IrisApiPassword": null
+ },
+ "Scopus": {
+ "ScopusApiKey1": null,
+ "ScopusApiKey2": null
+ }
+ }
+}
\ No newline at end of file
diff --git a/generate-httpyac-requests.bat b/generate-httpyac-requests.bat
new file mode 100644
index 0000000..e7ed4b6
--- /dev/null
+++ b/generate-httpyac-requests.bat
@@ -0,0 +1,13 @@
+@echo off
+echo %cmdcmdline% | findstr /i /c:"%~nx0" >NUL && set iscommandline=1
+echo %PSModulePath% | findstr /i /c:"%USERPROFILE%" >NUL && set ispowershell=1
+
+cd /D "%~dp0"
+
+echo.
+
+@pwsh -NoProfile -ExecutionPolicy Bypass -Command .\scripts\generate-httpyac-requests.ps1 %*
+
+echo.
+
+IF DEFINED iscommandline IF NOT DEFINED ispowershell pause
diff --git a/scripts/generate-httpyac-requests.ps1 b/scripts/generate-httpyac-requests.ps1
new file mode 100644
index 0000000..58796a7
--- /dev/null
+++ b/scripts/generate-httpyac-requests.ps1
@@ -0,0 +1,1095 @@
+#requires -Modules powershell-yaml
+
+param(
+ [string]$StartDir = (Resolve-Path -LiteralPath (Join-Path -Path (Split-Path -LiteralPath $MyInvocation.MyCommand.Path) -ChildPath "../bruno")),
+ [string]$OutputDir = (Resolve-Path -LiteralPath (Join-Path -Path (Split-Path -LiteralPath $MyInvocation.MyCommand.Path) -ChildPath ".."))
+)
+
+$DEFAULT_ENV_VAR_VALUE = 'EDIT_VALUE_HERE'
+$VARIABLE_NAME_VALUE_SEPARATOR = '='
+
+function Find-WorkspaceRoot($dir) {
+ Write-Host "Processing workspace folder: '$dir'..."
+ $current = $dir
+ while ($true) {
+ if (Test-Path -LiteralPath (Join-Path $current 'workspace.yml')) {
+ return $current
+ }
+ $parent = Split-Path -LiteralPath $current
+ if ($parent -eq $current) {
+ throw "workspace.yml not found from the provided start directory"
+ }
+ $current = $parent
+ }
+}
+
+function Parse-Yaml($text) {
+ try {
+ $parsedYaml = ConvertFrom-Yaml $text
+ return $parsedYaml ?? @{}
+ } catch {
+ throw "Failed to parse YAML content : $_"
+ }
+}
+
+function Parse-YamlFile($path) {
+ return Parse-Yaml (Get-Content -LiteralPath $path -Raw)
+}
+
+function Strip-Quotes($value) {
+ $trim = $value.Trim()
+ if (($trim.StartsWith('"') -and $trim.EndsWith('"')) -or
+ ($trim.StartsWith("'") -and $trim.EndsWith("'"))) {
+ return $trim.Substring(1, $trim.Length - 2)
+ }
+ return $trim
+}
+
+function Parse-Workspace($workspacePath) {
+ $lines = Get-Content -LiteralPath $workspacePath
+ $collections = @()
+ $inCollections = $false
+ $current = $null
+
+ foreach ($line in $lines) {
+ $trim = $line.Trim()
+
+ if (-not $inCollections -and $trim -eq 'collections:') {
+ $inCollections = $true
+ continue
+ }
+
+ if (-not $inCollections) { continue }
+
+ if (-not ($line.StartsWith(' ') -or $line.StartsWith("`t"))) { # && trimmed?
+ break
+ }
+
+ if ($line -match '^\s*-\s+name:\s*(.+)$') {
+ $name = Strip-Quotes $Matches[1]
+ $current = [ordered]@{ name = $name }
+ $collections += $current
+ continue
+ }
+
+ if ($line -match '^\s*path:\s*(.+)$' -and $current) {
+ $current.path = Strip-Quotes $Matches[1]
+ }
+ }
+
+ return @{ collections = $collections }
+}
+
+function Sanitize-VarName($name) {
+ $sanitized = ([string]$name).Trim() -replace '[{}]', '' -replace '[^A-Za-z0-9_]', '_' -replace '^([0-9])', '_$1'
+ if ([string]::IsNullOrWhiteSpace($sanitized)) {
+ return 'value'
+ }
+ return $sanitized
+}
+
+function Parse-PlaceholderContent($content) {
+ $trimmed = ([string]$content).Trim();
+ $dotenvMatch = [regex]::Match($trimmed, '^\$dotenv\s+(.+)$', 'IgnoreCase')
+ if ($dotenvMatch.Success) {
+ return @{
+ name = $dotenvMatch.Groups[1].value.Trim()
+ isDotenv = $true
+ }
+ }
+ return @{
+ name = $trimmed
+ isDotenv = $false
+ }
+}
+
+function Collect-Placeholders($value) {
+ # Se non è stringa → restituisci array vuoto
+ if ($value -isnot [string]) {
+ return @()
+ }
+ $placeholders = @()
+ $regex = [regex]'\{\{([^{}]+)\}\}'
+ $foundMatches = $regex.Matches($value)
+ foreach ($m in $foundMatches) {
+ $inner = $m.Groups[1].value
+ $parsed = Parse-PlaceholderContent $inner
+ $placeholders += $parsed.name
+ }
+ return $placeholders
+}
+
+function Find-Block ([string[]]$lines, $keyName) {
+ for ($i = 0; $i -lt $lines.Count; $i++) {
+ $trimmed = $lines[$i].Trim()
+ if ($trimmed -ne $keyName -and -not $trimmed.StartsWith("$($keyName):")) {
+ continue
+ }
+
+ $lineIndent = ([regex]::Match($lines[$i], '^\s*')).value.Length
+ $block = @()
+ for ($j = $i + 1; $j -lt $lines.Count; $j++) {
+ $currentLine = $lines[$j]
+ $currentTrimmed = $currentLine.Trim()
+ if ([string]::IsNullOrWhiteSpace($currentTrimmed)) {
+ $block += $currentLine
+ continue
+ }
+ $currentIndent = ([regex]::Match($currentLine, '^\s*')).value.Length
+ # Caso 1: indentazione <= indentazione della chiave e NON inizia con spazio → fine blocco
+ if ($currentIndent -le $lineIndent -and -not $currentLine.StartsWith(' ')) {
+ break
+ }
+ # Caso 2: indentazione <= indentazione della chiave e riga commento → includi
+ if ($currentIndent -le $lineIndent -and $currentTrimmed.StartsWith('#')) {
+ $block += $currentLine
+ continue
+ }
+ # Caso 3: indentazione <= indentazione della chiave → fine blocco
+ if ($currentIndent -le $lineIndent) {
+ break
+ }
+ # Altrimenti la riga fa parte del blocco
+ $block += $currentLine
+ }
+ return $block
+ }
+ return @()
+}
+
+function Parse-RequestInfo ($text) {
+ $lines = $text -split '\r?\n'
+ $infoLines = Find-Block -Lines $lines -KeyName 'info'
+ $joined = ($infoLines -join "`n")
+ $nameMatch = [regex]::Match($joined, '^\s*name:\s*(.+)$', 'Multiline')
+ if ($nameMatch.Success) {
+ return Strip-Quotes $nameMatch.Groups[1].value
+ }
+ return ''
+}
+
+function Parse-HttpBlock ($text) {
+ # ConvertFrom-Yaml restituisce $null se il testo è vuoto o non valido
+ $parsed = Parse-Yaml $text
+ if (-not $parsed) { $parsed = @{} }
+
+ $http = $parsed.http
+ if (-not $http) { $http = @{} }
+
+ $headers = @()
+ $headerList = @()
+ if ($http.headers -is [System.Collections.IEnumerable]) {
+ $headerList = $http.headers
+ }
+ foreach ($header in $headerList) {
+ if (-not $header -or $header -isnot [psobject] -and $header -isnot [hashtable]) {
+ continue
+ }
+ $name = ([string]($header.name ?? '')).Trim()
+ $value = ([string]($header.value ?? '')).Trim()
+ $headers += @{
+ name = $name
+ value = $value
+ }
+ }
+
+ $params = @()
+ if ($http.params -is [System.Collections.IEnumerable]) {
+ $params = $http.params
+ }
+
+ $body = $null
+ if ($http.body -and ($http.body -is [psobject] -or $http.body -is [hashtable])) {
+ $body = $http.body
+ }
+
+ $preRequestScript = $parsed.runtime?.scripts | Where-Object { $_.type -eq 'before-request' } | Select-Object -First 1 -ExpandProperty 'code'
+ # $preRequestScript = $null
+ # if ($parsed.runtime -and ($parsed.runtime -is [psobject] -or $parsed.runtime -is [hashtable])) {
+ # }
+
+ $postResponseScript = $parsed.runtime?.scripts | Where-Object { $_.type -eq 'after-response' } | Select-Object -First 1 -ExpandProperty 'code'
+ # $postResponseScript = $null
+ # if ($parsed.runtime -and ($parsed.runtime -is [psobject] -or $parsed.runtime -is [hashtable])) {
+ # }
+
+ return @{
+ method = $http.method ?? 'GET'
+ url = $http.url ?? ''
+ params = $params
+ headers = $headers
+ body = $body
+ preRequestScript = $preRequestScript
+ postResponseScript = $postResponseScript
+ }
+}
+
+function Format-VariableValue ($value, [hashtable]$RenderContext = @{}) {
+ if ($null -eq $value) {
+ return "''"
+ }
+
+ if ($value -is [string]) {
+ if ($value.Trim() -eq '') {
+ return "''"
+ }
+
+ $renderedValue = $value
+ if ($RenderContext.ContainsKey('renderValue') -and $RenderContext.renderValue) {
+ $renderedValue = $RenderContext.renderValue.Invoke($value)
+ }
+ if ($renderedValue -match '\s') {
+ $escaped = $renderedValue -replace '"', '\"'
+ return '"' + $escaped + '"'
+ }
+ return $renderedValue
+ }
+
+ return ($value | ConvertTo-Json -Depth 20 -Compress)
+}
+
+function Merge-RequestConfig ($base, $updates) {
+ if (-not $updates -or ($updates -isnot [psobject] -and $updates -isnot [hashtable])) {
+ return $base
+ }
+
+ # Clona base (shallow clone)
+ $merged = @{}
+ if ($base -is [psobject] -or $base -is [hashtable]) {
+ foreach ($key in $base.Keys) {
+ $merged[$key] = $base[$key]
+ }
+ }
+
+ if ($updates.ContainsKey('auth')) {
+ $auth = $updates.auth
+ if ($auth -eq 'inherit') {
+ if ($merged.ContainsKey('auth') -and ($merged.auth -is [psobject] -or $merged.auth -is [hashtable])) {
+ $merged.auth = $merged.auth
+ }
+ else {
+ $merged.Remove('auth')
+ }
+ }
+ elseif ($auth -is [psobject] -or $auth -is [hashtable]) {
+ $merged.auth = $auth
+ }
+ else {
+ $merged.Remove('auth')
+ }
+ }
+ else {
+ $merged.Remove('auth')
+ }
+
+ if ($updates.headers -is [System.Collections.IEnumerable]) {
+ $headers = @()
+ if ($base.headers -is [System.Collections.IEnumerable]) {
+ $headers = @($base.headers)
+ }
+ # Mappa per nome
+ $byName = @{}
+ foreach ($header in $headers) {
+ if ($header -and $header.name) {
+ $byName[[string]$header.name] = $header
+ }
+ }
+ foreach ($header in $updates.headers) {
+ if ($header -and $header.name) {
+ $byName[[string]$header.name] = $header
+ }
+ }
+ $merged.headers = $byName.Values
+ }
+
+ if ($updates.variables -is [System.Collections.IEnumerable]) {
+ $variables = @()
+ if ($base.variables -is [System.Collections.IEnumerable]) {
+ $variables = @($base.variables)
+ }
+ # Mappa per nome
+ $byName = @{}
+ foreach ($variable in $variables) {
+ if ($variable -and $variable.name) {
+ $byName[[string]$variable.name] = $variable
+ }
+ }
+ foreach ($variable in $updates.variables) {
+ if ($variable -and $variable.name) {
+ $byName[[string]$variable.name] = $variable
+ }
+ }
+ $merged.variables = $byName.Values
+ }
+
+ return $merged
+}
+
+function Get-RequestConfigForFile ($yamlFile, $sourceDir) {
+ $resolved = [ref] @()
+ $seenFiles = [ref] (New-Object System.Collections.Generic.HashSet[string])
+
+ $config = [ref] @{}
+
+ function Add-File ($FilePath) {
+ if (-not $FilePath -or $seenFiles.Value.Contains($FilePath)) {
+ return
+ }
+ [void]$seenFiles.Value.Add($FilePath)
+ if (-not (Test-Path $FilePath)) {
+ return
+ }
+
+ try {
+ $parsed = (Get-Content -Raw $FilePath | ConvertFrom-Yaml)
+ if (-not $parsed) { $parsed = @{} }
+ $requestConfig = $null
+
+ # Caso 1: parsed.request esiste ed è un oggetto
+ if ($parsed.request -and ($parsed.request -is [psobject] -or $parsed.request -is [hashtable])) {
+ $requestConfig = $parsed.request
+ }
+ # Caso 2: parsed è un oggetto e contiene auth/variables
+ elseif ($parsed -is [psobject] -or $parsed -is [hashtable]) {
+ # $config = @{}
+ # auth
+ if ($parsed.ContainsKey('auth')) {
+ $config.Value.auth = $parsed.auth
+ }
+ elseif ($parsed.http -and ($parsed.http -is [psobject] -or $parsed.http -is [hashtable]) -and $parsed.http.ContainsKey('auth')) {
+ $config.Value.auth = $parsed.http.auth
+ }
+ # variables
+ if ($parsed.variables -is [System.Collections.IEnumerable]) {
+ $config.Value.variables = $parsed.variables
+ }
+ if ($config.Value.Count -gt 0) {
+ $requestConfig = $config.Value
+ }
+ }
+
+ if ($null -ne $requestConfig) {
+ $resolved.Value += $requestConfig
+ }
+ elseif ((Resolve-Path $FilePath).Path -eq (Resolve-Path $yamlFile).Path) {
+ $resolved.Value += @{}
+ }
+ }
+ catch {
+ # Ignora file YAML non validi
+ }
+ }
+
+ # Costruisci la catena delle directory
+ $dirChain = @()
+ $currentDir = Split-Path -LiteralPath $yamlFile
+
+ $result = @{}
+
+ while ($true) {
+ if ($currentDir -match [regex]::Escape("EFTL processing")) {
+ $result.hasEftlProcessing = $true
+ }
+
+ $dirChain = ,$currentDir + $dirChain
+ if ($currentDir -eq $sourceDir) {
+ break
+ }
+ $parentDir = Split-Path -LiteralPath $currentDir
+ if ($parentDir -eq $currentDir) {
+ break
+ }
+ $currentDir = $parentDir
+ }
+
+ foreach ($dir in $dirChain) {
+ Add-File (Join-Path $dir 'opencollection.yml')
+ Add-File (Join-Path $dir 'folder.yml')
+ }
+
+ # Aggiungi il file principale
+ Add-File $yamlFile
+
+ foreach ($config in $resolved.Value) {
+ $result = Merge-RequestConfig $result $config
+ }
+
+ return $result
+}
+
+function Build-RequestContent ($request, $requestName, $requestConfig = @{}, [ref][System.Collections.Generic.HashSet[string]]$dotenvVariables = $(New-Object System.Collections.Generic.HashSet[string])) {
+ $lines = @()
+ $variableDefinitions = [ref] @()
+ $commentedVariableDefinitions = [ref] @()
+ $parameterVariableDefinitions = [ref] @()
+ $seenVariables = [ref] (New-Object System.Collections.Generic.HashSet[string])
+
+ function Add-Variable ($Name, $Value) {
+ if (-not $Name) { return }
+ $normalized = ([string]$Name).Trim()
+ if (-not $normalized) { return }
+ if ($seenVariables.Value.Contains($normalized)) { return }
+ if ($dotenvVariables.Value.Contains($normalized)) { return }
+ [void]$seenVariables.Value.Add($normalized)
+ $variableDefinitions.Value += @{ name=$normalized; value=$Value }
+ }
+
+ function Add-ParameterVariable ($Name, $Value) {
+ if (-not $Name) { return }
+ $normalized = ([string]$Name).Trim()
+ if (-not $normalized) { return }
+ if ($seenVariables.Value.Contains($normalized)) { return }
+ if ($dotenvVariables.Value.Contains($normalized)) { return }
+ [void]$seenVariables.Value.Add($normalized)
+ $parameterVariableDefinitions.Value += @{ name=$normalized; value=$Value }
+ }
+
+ function Add-CommentedVariable ($Name, $Value) {
+ if (-not $Name) { return }
+ $normalized = ([string]$Name).Trim()
+ if (-not $normalized) { return }
+ $commentedVariableDefinitions.Value += @{ name=$normalized; value=$Value }
+ }
+
+ function Add-ReferencedVariables ($Value, $FallbackValue = $DEFAULT_ENV_VAR_VALUE) {
+ foreach ($placeholder in Collect-Placeholders ([string]$Value)) {
+ Add-Variable $placeholder $FallbackValue
+ }
+ }
+
+ function Convert-JsonStructure {
+ param(
+ [Parameter(Mandatory)]
+ $Value
+ )
+
+ # Caso 1: array
+ if ($Value -is [System.Collections.IEnumerable] -and $Value -isnot [string]) {
+ $result = [System.Collections.IEnumerable]@()
+ foreach ($item in $Value) {
+ $innerValue = $null
+ if ($null -ne $item) { $innerValue = Convert-JsonStructure $item }
+ $result += $innerValue
+ }
+ return $result
+ }
+
+ # Caso 2: PSCustomObject (JSON convertito)
+ if ($Value -is [PSObject]) {
+ $dict = [System.Collections.Specialized.OrderedDictionary]::new()
+ foreach ($prop in $Value.PSObject.Properties) {
+ if ($null -ne $prop.Value) {
+ if ($prop.Value -is [System.Collections.IEnumerable] -and $prop.Value.Length -eq 0 -and $prop.Value -isnot [string]) {
+ $dict[$prop.Name] = [System.Collections.IEnumerable]@()
+ }
+ else
+ {
+ $dict[$prop.Name] = Convert-JsonStructure $prop.Value
+ }
+ }
+ else {
+ $dict[$prop.Name] = $null
+ }
+ }
+ return $dict
+ }
+
+ # Caso 3: hashtable puro
+ if ($Value -is [hashtable]) {
+ $dict = [System.Collections.Specialized.OrderedDictionary]::new()
+ foreach ($key in $Value.Keys) {
+ $innerValue = $null
+ if ($null -ne $key -and $null -ne $Value[$key]) { $innerValue = Convert-JsonStructure $Value[$key] }
+ $dict[$key] = $innerValue
+ }
+ return $dict
+ }
+
+ # Caso 4: valore primitivo → applico la tua funzione
+ $primitiveValue = $Value
+ if ($null -ne $Value) { $primitiveValue = Render-Value $Value }
+ return $primitiveValue
+ }
+
+ function Add-ParameterVariables ($Name, $Value) { Add-ParameterVariable $Name $Value }
+
+ function Add-CommentedVariables ($Name, $Value) { Add-CommentedVariable $Name $Value }
+
+ function Render-Value ($Value) {
+ if ($Value -isnot [string]) { return $Value }
+
+ $regex = [regex]'\{\{([^{}]+)\}\}'
+ $regex.Replace($Value, { param($match)
+ $inner = $match.Groups[1].value
+ $placeholder = Parse-PlaceholderContent $inner
+ if ($placeholder.isDotenv) {
+ return $match.Value
+ }
+ if ($placeholder.name -and $dotenvVariables.Value.Contains($placeholder.name)) {
+ return "{{`$dotenv $($placeholder.name)}}"
+ }
+ return $match.Value
+ })
+ }
+
+ function Replace-PreRequestEftlScript ($inputText) {
+ # Sostituisce tutto fino al primo [EFTL] con codice specifico
+ $processedPreRequest = ($inputText -replace '^[\s\S]*?(?=\[EFTL\])', "exports.elixBase64EftlDocument = btoa(String.raw```n")
+ # Sostituisce tutto fino al primo [EFTL] con codice specifico
+ $processedPreRequest = ($processedPreRequest -replace '(?s)(.*\[/EFTL\]).*$', "`$1`n``);")
+ return $processedPreRequest
+ }
+
+ function Add-DefaultPostResponseEftlScript {
+ return @"
+var status = response.statusCode;
+
+if (status !== 200) {
+ console.log("ERRORE HTTP! Response status code: " + status);
+ return;
+}
+
+var decodedDocument = "";
+var response = response.parsedBody;
+
+if (response.value.code === "ERROR") {
+ decodedDocument = "ERRORE EFTL!\n";
+ decodedDocument += response.value.description.split("\n").slice(0, 3).join("\n");
+}
+else {
+ decodedDocument = atob(response.value.processedDocument);
+}
+
+console.log(decodedDocument);
+"@
+ }
+
+ # -------------------------
+ # Variabili da requestConfig
+ # -------------------------
+ $configVariables = @()
+ if ($requestConfig.variables -is [System.Collections.IEnumerable]) {
+ $configVariables = $requestConfig.variables
+ }
+ foreach ($variable in $configVariables) {
+ if ($null -ne $variable -and $variable.name) {
+ Add-Variable $variable.name $variable.value
+ }
+ }
+
+ # -------------------------
+ # URL
+ # -------------------------
+ $url = $request.url ?? ''
+ if ($url) {
+ Add-ReferencedVariables $url
+ $url = ($url -replace ':([A-Za-z0-9_]+)', '{{$1}}')
+ $url = Render-Value $url
+ $url = $url.Split('?')[0]
+ }
+
+ # -------------------------
+ # Headers
+ # -------------------------
+ $queryParams = @()
+ $headers = [ref] @()
+
+ function Add-Header ($Name, $Value) {
+ if (-not $Name) { return }
+ Add-ReferencedVariables ($Value ?? '')
+ $headers.Value += @{
+ name = ([string]$Name).Trim()
+ value = Render-Value ($Value ?? '')
+ }
+ }
+
+ foreach ($header in ($request.headers ?? @())) {
+ if ($header -and $header.name) {
+ Add-Header $header.name ($header.value ?? '')
+ }
+ }
+
+ foreach ($header in ($requestConfig.headers ?? @())) {
+ if ($header -and $header.name) {
+ Add-Header $header.name ($header.value ?? '')
+ }
+ }
+
+ # -------------------------
+ # Params
+ # -------------------------
+ foreach ($param in ($request.params ?? @())) {
+ $name = $param.name ?? ''
+ $value = $param.value ?? ''
+ $type = ([string]($param.type ?? 'query')).ToLower()
+ $disabled = ([string]$param.disabled).ToLower() -eq 'true'
+
+ if ($disabled) {
+ Add-CommentedVariables $name $value
+ continue
+ }
+
+ Add-ReferencedVariables $value
+
+ if ($type -eq 'header') {
+ $headers.Value += @{ name=$name; value=(Render-Value $value) }
+ }
+ else {
+ $queryParams += @{ name=$name; value="{{$name}}" }
+ Add-ParameterVariables $name $value
+ }
+ }
+
+ # -------------------------
+ # Auth
+ # -------------------------
+ if ($requestConfig.auth) {
+ switch ($requestConfig.auth.type) {
+ 'bearer' {
+ Add-ReferencedVariables ($requestConfig.auth.token ?? '')
+ Add-Header 'Authorization' ("Bearer " + (Render-Value ($requestConfig.auth.token ?? '')))
+ }
+ 'basic' {
+ $username = $requestConfig.auth.username ?? ''
+ $password = $requestConfig.auth.password ?? ''
+ Add-ReferencedVariables $username
+ Add-ReferencedVariables $password
+ Add-Header 'Authorization' ("Basic " + (Render-Value $username) + ":" + (Render-Value $password))
+ }
+ default {
+ $headers.Value += @{
+ name = "UNKNOWN_$($requestConfig.auth.type)"
+ value = "Basic $($requestConfig.auth.token)"
+ }
+ }
+ }
+ }
+
+ # -------------------------
+ # Commented variables
+ # -------------------------
+ if ($commentedVariableDefinitions.Value.Count -gt 0) {
+ $lines += "# Other variables for $requestName"
+ foreach ($variable in $commentedVariableDefinitions.Value | Sort-Object -Property name, value) {
+ $lines += "# @$(Sanitize-VarName $variable.name)$VARIABLE_NAME_VALUE_SEPARATOR$(Format-VariableValue $variable.value @{ renderValue = { param($v) Render-Value $v } })"
+ }
+ }
+
+ # -------------------------
+ # Parameter variables
+ # -------------------------
+ if ($parameterVariableDefinitions.Value.Count -gt 0) {
+ $lines += "# Parameter variables for $requestName"
+ foreach ($variable in $parameterVariableDefinitions.Value | Sort-Object -Property name, value) {
+ $lines += "@$(Sanitize-VarName $variable.name)$VARIABLE_NAME_VALUE_SEPARATOR$(Format-VariableValue $variable.value @{ renderValue = { param($v) Render-Value $v } })"
+ }
+ }
+
+ # -------------------------
+ # Body
+ # -------------------------
+ $requestBody = ''
+
+ if ($request.body -and ($request.body -is [psobject] -or $request.body -is [hashtable])) {
+ $bodyType = ([string]($request.body.type ?? '')).ToLower()
+
+ if ($bodyType -eq 'json') {
+ $jsonData = ConvertFrom-Json -Depth 20 -InputObject ($request.body.data)
+
+ if ($jsonData -is [string]) {
+ $requestBody = Render-Value $jsonData
+ }
+ elseif ($jsonData -is [System.Collections.IEnumerable]) {
+ $requestBody = (ConvertTo-Json (Convert-JsonStructure $jsonData) -Depth 20)
+ }
+ elseif ($jsonData -is [psobject] -or $jsonData -is [hashtable]) {
+ $requestBody = (ConvertTo-Json (Convert-JsonStructure $jsonData) -Depth 20)
+ }
+
+ Add-Header 'Content-Type' 'application/json'
+ }
+ elseif ($bodyType -eq 'form-urlencoded') {
+ $parts = @()
+ foreach ($entry in ($request.body.data ?? @())) {
+ if (-not $entry -or -not $entry.name) { continue }
+ Add-ReferencedVariables ($entry.value ?? '')
+ $parts += "$($entry.name)=$(Render-Value ($entry.value ?? ''))"
+ }
+ $requestBody = ($parts -join '&')
+ Add-Header 'Content-Type' 'application/x-www-form-urlencoded'
+ }
+ }
+
+ # -------------------------
+ # Variables
+ # -------------------------
+ if ($variableDefinitions.Value.Count -gt 0) {
+ $lines += "# Variables for $requestName"
+ foreach ($variable in $variableDefinitions.Value | Sort-Object -Property name, value) {
+ $lines += "@$(Sanitize-VarName $variable.name)$VARIABLE_NAME_VALUE_SEPARATOR$(Format-VariableValue $variable.value @{ renderValue = { param($v) Render-Value $v } })"
+ }
+ }
+
+ # -------------------------
+ # Super-special treatment for requests belonging to elixForms API v2\EFTL Processing folder
+ # Here we blindly assume that ALL requests must be treated in the same way!
+ # Pre-request script is taken from the original request and manipulated so it can be integrated into the generated .http file
+ # -------------------------
+ if ($request.preRequestScript) {
+ $lines += ''
+ $lines += "{{"
+ $lines += "// Pre-request script"
+ if ($requestConfig.hasEftlProcessing) {
+ $lines += (Replace-PreRequestEftlScript $request.preRequestScript)
+ }
+ else {
+ $lines += $request.preRequestScript
+ }
+ $lines += "}}"
+ }
+
+ # -------------------------
+ # Final request line
+ # -------------------------
+ $method = ([string]($request.method ?? 'GET')).ToUpper()
+ $requestUrl = $url
+
+ foreach ($param in $queryParams) {
+ if (-not $param.name) { continue }
+ $separator = ($requestUrl.Contains('?') ? '&' : '?')
+ $requestUrl = "$requestUrl$separator$($param.name)=$($param.value)"
+ }
+
+ $lines += ''
+ $lines += "$method $requestUrl"
+
+ foreach ($header in $headers.Value) {
+ $lines += "$($header.name): $($header.value)"
+ }
+
+ if ($requestBody) {
+ $lines += ''
+ $lines += $requestBody
+ }
+
+ # -------------------------
+ # Super-special treatment for requests belonging to elixForms API v2\EFTL Processing folder
+ # Here we blindly assume that ALL requests must be treated in the same way!
+ # Post-response script is overwritten by default so it should magically work
+ # -------------------------
+ if ($requestConfig.hasEftlProcessing) {
+ $lines += ''
+ $lines += "{{"
+ $lines += "// Post-response script (EFTL)"
+ $lines += Add-DefaultPostResponseEftlScript
+ $lines += "}}"
+ }
+ elseif ($request.postResponseScript) {
+ $lines += ''
+ $lines += "{{"
+ $lines += "// Post-response script"
+ $lines += $request.postResponseScript
+ $lines += "}}"
+ }
+
+ return ($lines -join "`n")
+}
+
+function Ensure-Dir($path) {
+ if (-not (Test-Path -LiteralPath $path)) {
+ New-Item -ItemType Directory -Path $path | Out-Null
+ }
+}
+
+function Walk-YamlFiles($rootDir) {
+ Get-ChildItem -LiteralPath $rootDir -Recurse -File -Include *.yml, *.yaml |
+ Where-Object { $_.Name -notmatch '^\.|node_modules|folder\.yml' } |
+ Select-Object -ExpandProperty FullName
+}
+
+function Clean-Folder($dir) {
+ if (-not (Test-Path -LiteralPath $dir)) { return }
+
+ foreach ($entry in Get-ChildItem -LiteralPath $dir) {
+ if ($entry.PSIsContainer) {
+ Clean-Folder $entry.FullName
+ $children = Get-ChildItem -LiteralPath $entry.FullName
+ if ($children.Count -eq 0) {
+ Remove-Item -LiteralPath $entry.FullName -Force
+ }
+ } else {
+ if (!$entry.PSIsContainer -and $entry.Name -match '\.js$|\.http$|^\.env\..*$') {
+ Remove-Item -LiteralPath $entry.FullName -Force
+ }
+ }
+ }
+}
+
+function Get-DotenvVariablesForTargetDir ($TargetDir, $OutputRoot, $DotEnvVarsByTarget) {
+ $variables = $(New-Object System.Collections.Generic.HashSet[string])
+ $variables.Clear()
+ $currentDir = $TargetDir
+
+ while ($true) {
+ if ($DotEnvVarsByTarget.ContainsKey($currentDir)) {
+ foreach ($variable in $DotEnvVarsByTarget[$currentDir]) {
+ [void]$variables.Add($variable)
+ }
+ }
+
+ if (-not $currentDir) {
+ Write-warning "Current directory is null while searching for dotenv variables for target dir: $TargetDir"
+ }
+ $parentDir = Split-Path -LiteralPath $currentDir
+ if ($currentDir -eq $OutputRoot -or $parentDir -eq $currentDir) {
+ break
+ }
+
+ $currentDir = $parentDir
+ }
+
+ return $variables
+}
+
+function Write-EnvironmentTemplates ($sourceDir, $outputRoot) {
+ $targets = [ref] @()
+ $localDotEnvVarsByTarget = @{}
+
+ function Visit ([string]$CurrentDir) {
+ $entries = Get-ChildItem -LiteralPath $CurrentDir -Force
+ $hasEnvironmentsDir = ($entries | Where-Object {
+ $_.PSIsContainer -and $_.Name -eq 'environments' -and (Get-ChildItem -LiteralPath $_.FullName -Force | Where-Object { -not $_.PSIsContainer -and $_.Name -match '\.ya?ml$' }).Count -gt 0
+ }).Count -gt 0
+
+ if ($hasEnvironmentsDir) {
+ $targets.Value += $CurrentDir
+ }
+
+ foreach ($entry in $entries) {
+ if (-not $entry.PSIsContainer) { continue }
+ if ($entry.Name.StartsWith('.')) { continue }
+ if ($entry.Name -eq 'node_modules') { continue }
+
+ Visit (Join-Path $CurrentDir $entry.Name)
+ }
+ }
+
+ Visit $sourceDir
+
+ foreach ($dir in $targets.Value) {
+ $relativeDir = [System.IO.Path]::GetRelativePath($sourceDir, $dir)
+ if ($relativeDir -and $relativeDir -ne '.') {
+ $targetDir = Join-Path $outputRoot $relativeDir
+ }
+ else {
+ $targetDir = $outputRoot
+ }
+
+ Ensure-Dir $targetDir
+
+ $environmentsDir = Join-Path $dir 'environments'
+ if (-not (Test-Path $environmentsDir)) {
+ continue
+ }
+
+ $envFiles =
+ Get-ChildItem -LiteralPath $environmentsDir -Force |
+ Where-Object { -not $_.PSIsContainer -and $_.Name -match '\.ya?ml$' } |
+ ForEach-Object { $_.FullName }
+
+ $variableNames = @()
+ $seenNames = New-Object System.Collections.Generic.HashSet[string]
+
+ foreach ($envFile in $envFiles) {
+ $parsed = Parse-YamlFile $envFile
+ if (-not $parsed) { continue }
+
+ $variables = @()
+ if ($parsed.variables -is [System.Collections.IEnumerable]) {
+ $variables = $parsed.variables
+ }
+
+ foreach ($variable in $variables) {
+ if (-not $variable -or -not $variable.name) { continue }
+
+ $name = ([string]$variable.name).Trim()
+ if (-not $name) { continue }
+ if ($seenNames.Contains($name)) { continue }
+
+ [void]$seenNames.Add($name) # Ma porc
+ $variableNames += $name
+ }
+ }
+
+ if ($variableNames.Count -gt 0) {
+ $templateContent = ($variableNames | ForEach-Object { "$_=$DEFAULT_ENV_VAR_VALUE" }) -join "`n"
+ $templateContent += "`n"
+ }
+ else {
+ $templateContent = ""
+ }
+
+ $templatePath = Join-Path $targetDir '.env.template'
+ Set-Content -LiteralPath $templatePath -Value $templateContent -Encoding UTF8 -NoNewLine
+
+ $localDotEnvVarsByTarget[$targetDir] = $seenNames
+ }
+
+ return $localDotEnvVarsByTarget
+}
+
+function Write-JsFiles ($sourceDir, $outputRoot) {
+ $targets = [ref] @()
+
+ function Visit ($CurrentDir) {
+ $entries = Get-ChildItem -LiteralPath $CurrentDir -Force
+
+ $hasJsFiles = $entries | Where-Object {
+ -not $_.PSIsContainer -and $_.Name -match '\.js$'
+ }
+
+ if ($hasJsFiles) {
+ $targets.Value += $CurrentDir
+ }
+
+ # Visita ricorsivamente le sottodirectory
+ foreach ($entry in $entries) {
+ if (-not $entry.PSIsContainer) { continue }
+ if ($entry.Name.StartsWith('.')) { continue }
+ if ($entry.Name -eq 'node_modules') { continue }
+
+ Visit (Join-Path $CurrentDir $entry.Name)
+ }
+ }
+
+ Visit $sourceDir
+
+ foreach ($dir in $targets.Value) {
+ $relativeDir = [System.IO.Path]::GetRelativePath($sourceDir, $dir)
+ if ($relativeDir -and $relativeDir -ne '.') {
+ $targetDir = Join-Path $outputRoot $relativeDir
+ }
+ else {
+ $targetDir = $outputRoot
+ }
+
+ Ensure-Dir $targetDir
+
+ if (-not (Test-Path $dir)) {
+ continue
+ }
+
+ $jsFiles =
+ Get-ChildItem -LiteralPath $dir -Force |
+ Where-Object { -not $_.PSIsContainer -and $_.Name -match '\.js$' } |
+ ForEach-Object {
+ @{
+ Source = $_.FullName
+ Target = Join-Path $targetDir $_.Name
+ }
+ }
+
+ foreach ($jsFile in $jsFiles) {
+ Copy-Item -LiteralPath $jsFile.Source -Destination $jsFile.Target -Force
+ }
+ }
+
+ return $targets.Value
+}
+
+function Invoke-Main {
+ # Workspace root
+ $workspaceRoot = Find-WorkspaceRoot $StartDir
+ $workspaceFile = Join-Path $workspaceRoot 'workspace.yml'
+ $workspace = Parse-Workspace $workspaceFile
+ $collections = @()
+ if ($workspace.collections -is [System.Collections.IEnumerable]) {
+ $collections = $workspace.collections
+ }
+
+ if ($collections.Count -eq 0) {
+ throw "No collections found in workspace.yml"
+ }
+
+ $outputBaseRoot = Join-Path $OutputDir 'autodocs/httpyac'
+ if (-not (Test-Path $outputBaseRoot)) {
+ New-Item -ItemType Directory -Path $outputBaseRoot | Out-Null
+ }
+ $outputBaseRoot = Resolve-Path -LiteralPath $outputBaseRoot
+
+ Clean-Folder $outputBaseRoot
+
+ foreach ($collection in $collections) {
+ if (-not $collection -or -not $collection.name -or -not $collection.path) {
+ continue
+ }
+
+ $sourceDir = Join-Path $workspaceRoot $collection.path
+ if (-not (Test-Path $sourceDir)) {
+ Write-Warning "Skipping missing collection path: $($collection.path)"
+ continue
+ }
+
+ $outputRoot = Join-Path $outputBaseRoot $collection.name
+ Ensure-Dir $outputRoot
+
+ # JS files
+ $writtenJsFiles = Write-JsFiles $sourceDir $outputRoot
+
+ # dotenv templates
+ $myDotEnvVarsByTarget = @{}
+ $myDotEnvVarsByTarget = (Write-EnvironmentTemplates $sourceDir $outputRoot)
+
+ # YAML files
+ $yamlFiles = Walk-YamlFiles $sourceDir
+ $processed = 0
+
+ foreach ($yamlFile in $yamlFiles) {
+
+ $content = Get-Content -LiteralPath $yamlFile -Raw
+ $requestName = Parse-RequestInfo $content
+ if (-not $requestName) {
+ $requestName = [System.IO.Path]::GetFileNameWithoutExtension($yamlFile)
+ }
+
+ $httpBlock = Parse-HttpBlock $content
+ if (-not $httpBlock -or -not $httpBlock.url) {
+ continue
+ }
+
+ $relativePath = [System.IO.Path]::GetRelativePath($sourceDir, $yamlFile)
+ $parsedPath = [System.IO.Path]::GetFileNameWithoutExtension($relativePath)
+ $parsedDir = Split-Path -LiteralPath $relativePath
+
+ if ($parsedDir -and $parsedDir -ne '') {
+ $targetDir = Join-Path $outputRoot $parsedDir
+ }
+ else {
+ $targetDir = $outputRoot
+ }
+ Ensure-Dir $targetDir
+
+ $requestConfig = Get-RequestConfigForFile $yamlFile $sourceDir
+ $outputFile = Join-Path $targetDir ("$parsedPath.http")
+
+ $myDotenvVariables = Get-DotenvVariablesForTargetDir $targetDir $outputRoot $myDotEnvVarsByTarget
+ if (-not $myDotenvVariables) {
+ $myDotenvVariables = $(New-Object System.Collections.Generic.HashSet[string])
+ }
+
+ $requestContent = Build-RequestContent $httpBlock $requestName $requestConfig ([ref]$myDotenvVariables)
+
+ Set-Content -LiteralPath $outputFile -Value $requestContent -Encoding UTF8
+
+ $processed++
+ }
+
+ $namePadded = $collection.name.PadRight(33)
+ $httpCount = $processed.ToString().PadLeft(3)
+ $jsCount = $writtenJsFiles.Count.ToString().PadLeft(3)
+
+ Write-Host "$namePadded => generated $httpCount .http file(s) and $jsCount .js file(s)"
+ }
+}
+
+Invoke-Main
diff --git a/scripts/setup-json-environment.ps1 b/scripts/setup-json-environment.ps1
new file mode 100644
index 0000000..6eb89c6
--- /dev/null
+++ b/scripts/setup-json-environment.ps1
@@ -0,0 +1,125 @@
+# Percorsi file
+$inputJsonPath = Join-Path $PSScriptRoot ".." "env.json.template" # JSON originale
+$outputJsonPath = Join-Path $PSScriptRoot ".." "env.json" # JSON di destinazione
+
+# Lettura JSON originale mantenendo l'ordine
+$rawJson = Get-Content $inputJsonPath -Raw
+$parsedJson = $rawJson | ConvertFrom-Json -AsHashtable
+
+# Se env.json esiste, lo carico per preservare le sezioni non aggiornate
+$existingEnv = $null
+if (Test-Path $outputJsonPath) {
+ $existingEnv = (Get-Content $outputJsonPath -Raw) | ConvertFrom-Json -AsHashtable
+}
+
+# Funzione per chiedere Y|S/N
+function Ask-YesNo($message) {
+ while ($true) {
+ $resp = Read-Host "$message [YySs/Nn]"
+ switch ($resp.ToUpper()) {
+ "Y" { return $true }
+ "S" { return $true }
+ default { return $false }
+ }
+ }
+}
+
+# Funzione per chiedere un valore
+function Ask-Value($key, $currentValue) {
+ $currentValueHint = ""
+ if (-not [string]::IsNullOrEmpty($currentValue)) {
+ $currentValueHint = "[attuale: '$currentValue'] "
+ }
+ return Read-Host "Chiave '$key' $currentValueHint`n(digita `"`" per inserire stringa vuota e lascia vuoto per NON aggiornare)"
+}
+
+# Copia profonda preservando ordine
+$newJson = [ordered]@{}
+
+foreach ($topKey in $parsedJson.Keys) {
+ if ($topKey -eq "Config") {
+ # Copia Config senza modifiche, i parametri serviranno dopo la generazione
+ $newJson["Config"] = $parsedJson["Config"]
+ continue
+ }
+
+ # Sezione API → trattamento speciale
+ if ($topKey -eq "API") {
+ $newJson["API"] = [ordered]@{}
+
+ foreach ($sectionName in $parsedJson["API"].Keys) {
+ $section = $parsedJson["API"][$sectionName]
+
+ $shouldConfigure = Ask-YesNo "Vuoi configurare la sezione '$sectionName'?"
+
+ # Se NON voglio configurare → devo distinguere:
+ if (-not $shouldConfigure) {
+ Write-Host "Sezione '$sectionName' non configurata. Mantengo valori esistenti, se presenti." -ForegroundColor Yellow
+
+ # 1. Se NON esiste già env.json → creo sezione vuota uguale al template
+ if (-not $existingEnv) {
+ $newJson["API"][$sectionName] = $section
+ continue
+ }
+
+ # 2. Se esiste già env.json e sia API che la sezione sono presenti → mantengo la versione esistente
+ if ($existingEnv["API"] -and $existingEnv["API"].Contains($sectionName)) {
+ $newJson["API"][$sectionName] = $existingEnv["API"][$sectionName]
+ continue
+ }
+
+ # 3. Se esiste già env.json, ma API o la sezione non sono presenti → creo sezione vuota uguale al template
+ $newJson["API"][$sectionName] = $section
+ continue
+ }
+
+ # Altrimenti creo una nuova sezione (o aggiorno quella esistente)
+ $newSection = [ordered]@{}
+
+ foreach ($key in $section.Keys) {
+ if ($key -eq "_httpyac_only") {
+ # Mantieni la chiave speciale senza chiedere input
+ $newSection[$key] = $section[$key]
+ continue
+ }
+
+ if ($existingEnv -and $existingEnv["API"] -and $existingEnv["API"].Contains($sectionName)) {
+ $oldValue = $existingEnv["API"][$sectionName][$key]
+ }
+ else {
+ $oldValue = ""
+ }
+
+ $inputValue = Ask-Value $key $oldValue
+
+ if ($inputValue -eq "") {
+ # Mantieni valore esistente se presente
+ $newSection[$key] = $oldValue
+ }
+ elseif ($inputValue -eq "`"`"") {
+ # Aggiorna con stringa vuota
+ $newSection[$key] = ""
+ }
+ else {
+ # Aggiorna con nuovo valore
+ $newSection[$key] = $inputValue
+ }
+ }
+
+ $newJson["API"][$sectionName] = $newSection
+ }
+ }
+ else {
+ # Altri elementi allo stesso livello di API → preservati integralmente
+ if ($existingEnv -and $existingEnv.Contains($topKey)) {
+ $newJson[$topKey] = $existingEnv[$topKey]
+ } else {
+ $newJson[$topKey] = $parsedJson[$topKey]
+ }
+ }
+}
+
+# Scrittura JSON finale mantenendo l'ordine
+$newJson | ConvertTo-Json -Depth 20 | Set-Content $outputJsonPath -Encoding UTF8
+
+Write-Host "`nFile env.json aggiornato correttamente."
diff --git a/scripts/setup-tools.ps1 b/scripts/setup-tools.ps1
new file mode 100644
index 0000000..f9ac67e
--- /dev/null
+++ b/scripts/setup-tools.ps1
@@ -0,0 +1,21 @@
+function Initialize-PowerShellEnvironment {
+ Write-Host "Initializing PowerShell environment..." -ForegroundColor Yellow
+
+ # Add any environment setup logic here, such as importing modules, setting variables, etc.
+ # Example: Import-Module SomeModule
+ Import-Module powershell-yaml -ErrorAction SilentlyContinue
+
+ Write-Host "PowerShell environment initialized." -ForegroundColor Green
+}
+
+function Invoke-Main {
+ Write-Host "Preparing environment..." -ForegroundColor Cyan
+ Write-Host
+
+ Initialize-PowerShellEnvironment
+ Write-Host
+
+ Write-Host "Environment preparation complete!" -ForegroundColor Green
+}
+
+Invoke-Main
\ No newline at end of file
diff --git a/scripts/update-bruno-environments.ps1 b/scripts/update-bruno-environments.ps1
new file mode 100644
index 0000000..8bfe777
--- /dev/null
+++ b/scripts/update-bruno-environments.ps1
@@ -0,0 +1,152 @@
+# Percorsi file
+$envFile = Resolve-Path -LiteralPath (Join-Path $PSScriptRoot ".." "env.json") # JSON originale
+$collectionsRoot = Resolve-Path -LiteralPath (Join-Path $PSScriptRoot ".." "bruno/collections") # cartella di partenza delle collezioni
+
+# Costanti
+$ENV_JSON_FILENAME = "env.json"
+$CFG_SECTION_NAME = "Config"
+$EXCLUDE_BRUNO_CFG_NAME = "ExcludeFromBruno"
+$API_SECTION_NAME = "API"
+$ENV_TEMPLATE_FILENAME = ".env.template"
+$ENV_FILENAME = ".env"
+
+# 1. Se il file non esiste → errore
+if (-not (Test-Path $envFile)) {
+ Write-Error "File '$ENV_JSON_FILENAME' non trovato."
+ exit 1
+}
+
+# Carica JSON mantenendo ordine
+$raw = Get-Content $envFile -Raw
+$data = $raw | ConvertFrom-Json -AsHashtable
+
+if (-not $data.ContainsKey($API_SECTION_NAME)) {
+ Write-Error "Il file '$ENV_JSON_FILENAME' non contiene la sezione '$API_SECTION_NAME'."
+ exit 1
+}
+
+# Funzione per leggere file .env (KEY=VALUE)
+function Read-EnvFile($path) {
+ $result = [ordered]@{}
+ foreach ($line in Get-Content $path) {
+ if ($line.Trim() -eq "" -or $line.Trim().StartsWith("#")) { continue }
+ if ($line -match "^\s*([^=]+)\s*=\s*(.*)$") {
+ $key = $matches[1].Trim()
+ $value = $matches[2]
+ $result[$key] = $value
+ }
+ }
+ return $result
+}
+
+# Funzione per scrivere file .env
+function Write-EnvFile($path, $hashtable) {
+ $lines = foreach ($k in $hashtable.Keys) {
+ "$k=$(Format-EnvValue $hashtable[$k])"
+ }
+ Set-Content $path -Value $lines -Encoding UTF8
+}
+
+function Format-EnvValue($value) {
+ if ($null -eq $value) {
+ return ""
+ }
+ if ($value -match "#") {
+ return "'$value'"
+ }
+ return $value
+}
+
+function KeysMatch($a, $b) {
+ $diff = Compare-Object -ReferenceObject ($a | Sort-Object -Unique) -DifferenceObject ($b | Sort-Object -Unique)
+
+ return -not $diff
+}
+
+# 2a. Leggi la configurazione di base (Config) se presente
+$config = $null
+$noBrunoKeys = @()
+if ($data.ContainsKey($CFG_SECTION_NAME)) {
+ $config = $data[$CFG_SECTION_NAME]
+ if ($config.ContainsKey($EXCLUDE_BRUNO_CFG_NAME)) {
+ $noBrunoKeys = $config[$EXCLUDE_BRUNO_CFG_NAME]
+ }
+}
+
+# 2. Scorri tutte le sezioni sotto API
+foreach ($sectionName in $data[$API_SECTION_NAME].Keys) {
+
+ Write-Host "`n--- Sezione: $sectionName ---"
+
+ $section = $data[$API_SECTION_NAME][$sectionName]
+
+ # a. Verifica esistenza cartella
+ $folder = Join-Path $collectionsRoot $sectionName
+ if (-not (Test-Path $folder)) {
+ Write-Warning "La cartella '$folder' non esiste. Sezione ignorata."
+ continue
+ }
+
+ # b. Verifica .env.template
+ $templatePath = Join-Path $folder $ENV_TEMPLATE_FILENAME
+ if (Test-Path $templatePath) {
+ $template = Read-EnvFile $templatePath
+
+ $templateKeys = $template.Keys
+ $sectionKeys = $section.Keys | Where-Object { $_ -notin $noBrunoKeys }
+
+ if ($templateKeys.Count -ne $sectionKeys.Count -or -not (KeysMatch $templateKeys $sectionKeys)) {
+ Write-Warning "Il file '$ENV_TEMPLATE_FILENAME' in '$sectionName' non ha le stesse chiavi della sezione."
+ }
+ }
+
+ # c/d/e. Gestione file .env
+ $envPath = Join-Path $folder $ENV_FILENAME
+
+ if (-not (Test-Path $envPath)) {
+ # c. Genera nuovo file .env
+ Write-Host "Generazione nuovo file '$ENV_FILENAME' per '$sectionName'."
+ $newEnv = [ordered]@{}
+ foreach ($key in $sectionKeys) {
+ $newEnv[$key] = $section[$key]
+ }
+ Write-EnvFile $envPath $newEnv
+ continue
+ }
+
+ # d. Verifica chiavi .env esistente
+ $existingEnv = Read-EnvFile $envPath
+
+ $envKeys = $existingEnv.Keys
+ $sectionKeys = $section.Keys | Where-Object { $_ -notin $noBrunoKeys }
+
+ if ($envKeys.Count -ne $sectionKeys.Count -or -not (KeysMatch $envKeys $sectionKeys)) {
+ Write-Warning "Il file '$ENV_FILENAME' in '$sectionName' non ha le stesse chiavi della sezione."
+ }
+
+ # e. Aggiorna valori
+ $updatedEnv = [ordered]@{}
+
+ foreach ($key in $sectionKeys) {
+ $valueFromJson = $section[$key]
+
+ if ($existingEnv.Contains($key)) {
+ if ($null -ne $valueFromJson) {
+ # aggiorna
+ $updatedEnv[$key] = $valueFromJson
+ } else {
+ # mantieni
+ $updatedEnv[$key] = $existingEnv[$key]
+ }
+ } else {
+ # chiave mancante → aggiungi
+ $updatedEnv[$key] = $valueFromJson
+ }
+ }
+
+ Write-Host "Aggiornamento file '$ENV_FILENAME' per '$sectionName'..."
+ Write-EnvFile $envPath $updatedEnv
+ Write-Host "File '$(Resolve-Path -LiteralPath $envPath)' aggiornato."
+}
+
+Write-Host "`nOperazione completata."
diff --git a/scripts/update-httpyac-environments.ps1 b/scripts/update-httpyac-environments.ps1
new file mode 100644
index 0000000..d373c9c
--- /dev/null
+++ b/scripts/update-httpyac-environments.ps1
@@ -0,0 +1,149 @@
+# Percorsi file
+$envFile = Resolve-Path -LiteralPath (Join-Path $PSScriptRoot ".." "env.json") # JSON originale
+$collectionsRoot = Resolve-Path -LiteralPath (Join-Path $PSScriptRoot ".." "autodocs/httpyac") # cartella di partenza delle collezioni
+
+# Costanti
+$API_SECTION_NAME = "API"
+$ENV_TEMPLATE_FILENAME = ".env.template"
+$ENV_FILENAME = ".env"
+
+# 1. Se il file non esiste → errore
+if (-not (Test-Path $envFile)) {
+ Write-Error "File '$ENV_JSON_FILENAME' non trovato."
+ exit 1
+}
+
+# Carica JSON mantenendo ordine
+$raw = Get-Content $envFile -Raw
+$data = $raw | ConvertFrom-Json -AsHashtable
+
+if (-not $data.ContainsKey($API_SECTION_NAME)) {
+ Write-Error "Il file '$ENV_JSON_FILENAME' non contiene la sezione '$API_SECTION_NAME'."
+ exit 1
+}
+
+# Funzione per leggere file .env (KEY=VALUE)
+function Read-EnvFile($path) {
+ $result = [ordered]@{}
+ foreach ($line in Get-Content $path) {
+ if ($line.Trim() -eq "" -or $line.Trim().StartsWith("#")) { continue }
+ if ($line -match "^\s*([^=]+)\s*=\s*(.*)$") {
+ $key = $matches[1].Trim()
+ $value = $matches[2]
+ $result[$key] = $value
+ }
+ }
+ return $result
+}
+
+# Funzione per scrivere file .env
+function Write-EnvFile($path, $hashtable) {
+ $lines = foreach ($k in $hashtable.Keys) {
+ "$k=$(Format-EnvValue $hashtable[$k])"
+ }
+ Set-Content $path -Value $lines -Encoding UTF8
+}
+
+function Format-EnvValue($value) {
+ if ($null -eq $value) {
+ return ""
+ }
+ if ($value -match "#") {
+ return "'$value'"
+ }
+ return $value
+}
+
+function KeysMatch($a, $b) {
+ $diff = Compare-Object -ReferenceObject ($a | Sort-Object -Unique) -DifferenceObject ($b | Sort-Object -Unique)
+
+ return -not $diff
+}
+
+# 2. Scorri tutte le sezioni sotto API
+foreach ($sectionName in $data[$API_SECTION_NAME].Keys) {
+
+ Write-Host "`n--- Sezione: $sectionName ---"
+
+ $section = $data[$API_SECTION_NAME][$sectionName]
+
+ # a. Verifica esistenza cartella
+ $folder = Join-Path $collectionsRoot $sectionName
+ if (-not (Test-Path $folder)) {
+ Write-Warning "La cartella '$folder' non esiste. Sezione ignorata."
+ continue
+ }
+
+ # b. Verifica .env.template
+ $templatePath = Join-Path $folder $ENV_TEMPLATE_FILENAME
+ if (Test-Path $templatePath) {
+ $template = Read-EnvFile $templatePath
+
+ $templateKeys = $template.Keys
+ $sectionKeys = $section.Keys
+
+ if ($templateKeys.Count -ne $sectionKeys.Count -or -not (KeysMatch $templateKeys $sectionKeys)) {
+ Write-Warning "Il file '$ENV_TEMPLATE_FILENAME' in '$sectionName' non ha le stesse chiavi della sezione."
+ }
+ }
+
+ # c/d/e. Gestione file .env
+ $envPath = Join-Path $folder $ENV_FILENAME
+
+ if (-not (Test-Path $envPath)) {
+ # c. Genera nuovo file .env
+ Write-Host "Generazione nuovo file '$ENV_FILENAME' per '$sectionName'."
+ $newEnv = [ordered]@{}
+ foreach ($key in $sectionKeys) {
+ $newEnv[$key] = $section[$key]
+ }
+ Write-EnvFile $envPath $newEnv
+ continue
+ }
+
+ # d. Verifica chiavi .env esistente
+ $existingEnv = Read-EnvFile $envPath
+
+ $envKeys = $existingEnv.Keys
+ $sectionKeys = $section.Keys
+
+ if ($envKeys.Count -ne $sectionKeys.Count -or -not (KeysMatch $envKeys $sectionKeys)) {
+ Write-Warning "Il file '$ENV_FILENAME' in '$sectionName' non ha le stesse chiavi della sezione."
+ }
+
+ # e. Aggiorna valori
+ $updatedEnv = [ordered]@{}
+
+ foreach ($key in $section.Keys) {
+ $valueFromJson = $section[$key]
+
+ if ($existingEnv.Contains($key)) {
+ if ($null -ne $valueFromJson) {
+ # aggiorna
+ $updatedEnv[$key] = $valueFromJson
+ } else {
+ # mantieni
+ $updatedEnv[$key] = $existingEnv[$key]
+ }
+ } else {
+ # chiave mancante → aggiungi
+ $updatedEnv[$key] = $valueFromJson
+ }
+ }
+
+ # f. Aggiungi chiavi mancanti da .env.template
+ if (Test-Path $templatePath) {
+ foreach ($key in $template.Keys) {
+ if (-not $updatedEnv.Contains($key)) {
+ Write-Host "Aggiunta chiave mancante '$key' da '$ENV_TEMPLATE_FILENAME'."
+ $updatedEnv[$key] = $template[$key]
+ }
+ }
+ }
+
+ Write-Host "Aggiornamento file '$ENV_FILENAME' per '$sectionName'..."
+ Write-EnvFile $envPath $updatedEnv
+ Write-Host "File '$(Resolve-Path -LiteralPath $envPath)' aggiornato."
+}
+
+Write-Host "`nOperazione completata."
diff --git a/setup-json-environment.bat b/setup-json-environment.bat
new file mode 100644
index 0000000..d505f02
--- /dev/null
+++ b/setup-json-environment.bat
@@ -0,0 +1,13 @@
+@echo off
+echo %cmdcmdline% | findstr /i /c:"%~nx0" >NUL && set iscommandline=1
+echo %PSModulePath% | findstr /i /c:"%USERPROFILE%" >NUL && set ispowershell=1
+
+cd /D "%~dp0"
+
+echo.
+
+@pwsh -NoProfile -ExecutionPolicy Bypass -Command .\scripts\setup-json-environment.ps1 %*
+
+echo.
+
+IF DEFINED iscommandline IF NOT DEFINED ispowershell pause
diff --git a/setup-tools.bat b/setup-tools.bat
new file mode 100644
index 0000000..1c0a11f
--- /dev/null
+++ b/setup-tools.bat
@@ -0,0 +1,13 @@
+@echo off
+echo %cmdcmdline% | findstr /i /c:"%~nx0" >NUL && set iscommandline=1
+echo %PSModulePath% | findstr /i /c:"%USERPROFILE%" >NUL && set ispowershell=1
+
+cd /D "%~dp0"
+
+echo.
+
+@pwsh -NoProfile -ExecutionPolicy Bypass -Command .\scripts\setup-tools.ps1 %*
+
+echo.
+
+IF DEFINED iscommandline IF NOT DEFINED ispowershell pause
diff --git a/update-bruno-environments.bat b/update-bruno-environments.bat
new file mode 100644
index 0000000..e831484
--- /dev/null
+++ b/update-bruno-environments.bat
@@ -0,0 +1,13 @@
+@echo off
+echo %cmdcmdline% | findstr /i /c:"%~nx0" >NUL && set iscommandline=1
+echo %PSModulePath% | findstr /i /c:"%USERPROFILE%" >NUL && set ispowershell=1
+
+cd /D "%~dp0"
+
+echo.
+
+@pwsh -NoProfile -ExecutionPolicy Bypass -Command .\scripts\update-bruno-environments.ps1 %*
+
+echo.
+
+IF DEFINED iscommandline IF NOT DEFINED ispowershell pause
diff --git a/update-httpyac-environments.bat b/update-httpyac-environments.bat
new file mode 100644
index 0000000..6df6afe
--- /dev/null
+++ b/update-httpyac-environments.bat
@@ -0,0 +1,13 @@
+@echo off
+echo %cmdcmdline% | findstr /i /c:"%~nx0" >NUL && set iscommandline=1
+echo %PSModulePath% | findstr /i /c:"%USERPROFILE%" >NUL && set ispowershell=1
+
+cd /D "%~dp0"
+
+echo.
+
+@pwsh -NoProfile -ExecutionPolicy Bypass -Command .\scripts\update-httpyac-environments.ps1 %*
+
+echo.
+
+IF DEFINED iscommandline IF NOT DEFINED ispowershell pause