diff --git a/.gitignore b/.gitignore index 1dd09a2..8e60403 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,16 @@ # Secrets .env* !.env.template +env.json # Dependencies node_modules # OS files .DS_Store -Thumbs.db \ No newline at end of file +Thumbs.db + +# Automatically generated stuff +autodocs/**/* + +*.temp \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f3b71c5 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# API collections + +This is the repository where most frequent HTTP requests are stored as Bruno collections. + +## Requisites + +A Windows-based OS with Powershell version >= 7.5.x + +One or more of: + +- Bruno desktop client () +- VSCode () with httpyac extension () + +## 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