36 changed files with 284 additions and 5714 deletions
+187
View File
@@ -0,0 +1,187 @@
# Analisi repository API Collections
## Esito
Il repository ha unarchitettura semplice e appropriata allo scopo, ma la pipeline Bruno → httpyac non è sufficientemente protetta. I rischi principali sono:
1. esempi versionati contenenti dati personali e identificativi di sessione;
2. conversioni httpyac incomplete o incompatibili;
3. tre file YAML non validi per il parser usato dal progetto;
4. test e quality gate quasi assenti.
Non serve una riscrittura generale: gli interventi possono essere incrementali e concentrati sui confini di conversione e validazione.
## Struttura e dipendenze
```text
bruno/workspace.yml
└─ 11 collezioni Bruno / 272 richieste circa
├─ folder e configurazioni ereditate
├─ ambienti e template dei segreti
├─ script Bruno
└─ esempi di request/response versionati
env.json.template
└─ setup-json-environment.ps1 → env.json locale
├─ update-bruno-environments.ps1 → .env Bruno
└─ update-httpyac-environments.ps1 → .env httpyac
bruno/
└─ generate-httpyac-requests.ps1 → autodocs/httpyac/ ignorato da Git
```
Dipendenze esterne:
- PowerShell ≥ 7.5;
- modulo `powershell-yaml`, disponibile localmente in versione 0.4.12;
- Bruno;
- estensione/CLI httpyac, non disponibile nella shell esaminata.
`tools/generate-http-requests/node_modules` è un artefatto locale ignorato, senza manifest versionato, e non costituisce una dipendenza riproducibile del repository.
## Quality gate e test attuali
Non risultano configurati CI, Pester, PSScriptAnalyzer, linting, coverage, scansione dei segreti o validazione automatica delle collezioni.
Controlli read-only eseguiti:
- 5 script PowerShell analizzati: zero errori sintattici;
- 338 file YAML analizzati con `powershell-yaml`;
- 3 YAML non validi;
- 269 richieste analizzabili: 129 GET, 118 POST, 17 PUT, 3 DELETE, 2 PATCH;
- 140 richieste mutative analizzabili;
- solo 4 delle 140 richieste mutative hanno una definizione di test a livello di richiesta;
- i 7 `.env.template` sono attualmente sincronizzati con `env.json.template`;
- nessuna suite automatizzata eseguibile;
- PSScriptAnalyzer e httpyac CLI non presenti.
Gli `examples` presenti nelle collezioni sono snapshot, non test. Lo stato complessivo dei gate è quindi **non superato/non definito**: manca un gate ufficiale e la validazione YAML già fallisce.
## Backlog tecnico prioritizzato
Costo indicativo: **S** < 1 giorno, **M** 13 giorni, **L** > 3 giorni.
### 1. Dati personali e cookie di sessione negli esempi versionati
- **Severità/costo:** Critica / M
- **File/modulo:** esempi Bruno, per esempio [Get Items.yml](<C:/_Git/UniPR/api-collections/bruno/collections/IRIS GW (Gateway) REST API (v1)/WfItems/Get Items.yml:136>) e [Get UserInfo.yml](<C:/_Git/UniPR/api-collections/bruno/collections/Shibboleth/Get UserInfo.yml:76>).
- **Problema:** rilevati identificativi compatibili con codici fiscali in 38 file e cookie/session ID in 20 file. Alcuni esempi includono anche nomi e informazioni organizzative. Il file più grande supera 5,3 MB e 134.000 righe.
- **Rischio:** esposizione di dati personali, conservazione indefinita nella cronologia Git, possibili credenziali di sessione ancora utilizzabili, forte rumore nelle review.
- **Intervento minimo:** verificare lorigine dei dati, invalidare eventuali sessioni ancora valide, redigere o sostituire con dati sintetici gli esempi; limitare gli snapshot alle proprietà indispensabili.
- **Test prima dellintervento:** introdurre una scansione ripetibile per cookie, token e identificativi personali con allowlist esplicita; registrare il baseline prima della redazione.
- **Impatto architetturale:** trasversale sulla politica di gestione degli esempi, senza nuovi layer.
### 2. Tre collezioni non sono parseabili dal convertitore dichiarato
- **Severità/costo:** Alta / S
- **File/modulo:** [Backoffice - Dashboard.yml](<C:/_Git/UniPR/api-collections/bruno/collections/elixForms API v2/Console UI/Backoffice - Dashboard.yml:125>), [Login - Backoffice.yml](<C:/_Git/UniPR/api-collections/bruno/collections/elixForms API v2/Console UI/Login - Backoffice.yml:172>), [Login - Gestione Schede.yml](<C:/_Git/UniPR/api-collections/bruno/collections/elixForms API v2/Console UI/Login - Gestione Schede.yml:140>).
- **Problema:** i literal block contengono righe iniziali whitespace-only che `powershell-yaml` rifiuta. Il generatore propaga lerrore da [Parse-Yaml](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:26).
- **Rischio:** generazione httpyac interrotta e output parziale o obsoleto.
- **Intervento minimo:** normalizzare quei blocchi e fare fallire il comando con un riepilogo completo dei file invalidi.
- **Test prima dellintervento:** gate che esegua il parsing di tutti i YAML; fixture con il blocco problematico e verifica dellerrore diagnostico.
- **Impatto architetturale:** nessuno; rende affidabile il formato sorgente.
### 3. Script Bruno copiati in httpyac senza adattamento del runtime
- **Severità/costo:** Alta / M
- **File/modulo:** [Parse-HttpBlock](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:206) e [Build-RequestContent](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:738).
- **Problema:** 16 file `.http` generati contengono chiamate Bruno come `bru.setVar` e `res.getStatus()`. httpyac documenta invece oggetti quali `response`, `$global` ed `exports`; la copia verbatim attraversa impropriamente il confine tra due runtime diversi. [Documentazione ufficiale httpyac](https://httpyac.github.io/guide/scripting.html)
- **Rischio:** request apparentemente generate ma script e test non eseguibili.
- **Intervento minimo:** tradurre solo le API Bruno effettivamente usate oppure interrompere esplicitamente la conversione dei file non supportati, evitando output silenziosamente difettoso.
- **Test prima dellintervento:** golden test per login, lettura risposta e salvataggio variabile; esecuzione del `.http` generato contro un endpoint mock.
- **Impatto architetturale:** importante sul boundary Bruno→httpyac, ma confinato alladapter esistente.
### 4. I body `multipart-form` vengono ignorati
- **Severità/costo:** Alta / M
- **File/modulo:** [Build-RequestContent](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:693); richieste interessate includono [AJ Console - Save Object.yml](<C:/_Git/UniPR/api-collections/bruno/collections/elixForms API v2/Console UI/AJ Console - Save Object.yml:15>), [Backoffice - Create Group.yml](<C:/_Git/UniPR/api-collections/bruno/collections/elixForms API v2/Console UI/Backoffice - Create Group.yml:16>) e Login Backoffice.
- **Problema:** il generatore implementa soltanto `json` e `form-urlencoded`; per multipart emette una POST senza body e senza segnalazione.
- **Rischio:** operazioni mutative errate, con comportamento molto diverso dalla richiesta Bruno.
- **Intervento minimo:** supportare multipart per i campi realmente presenti oppure fallire esplicitamente indicando request e body type.
- **Test prima dellintervento:** fixture multipart con campi testo, placeholder e caratteri speciali; confronto golden del body generato.
- **Impatto architetturale:** locale al convertitore.
### 5. Aree mutative quasi prive di protezione automatica
- **Severità/costo:** Alta / L
- **File/modulo:** soprattutto `Cambio stato e-o integrazione`, `Console UI`, ESSE3 e i 93 POST EFTL.
- **Problema:** soltanto 4 delle 140 richieste mutative analizzabili hanno test request-level; non esiste un comando CI che li esegua.
- **Rischio:** regressioni su cambio stato, clone, aggiornamenti, delete e autenticazione scoperte soltanto manualmente.
- **Intervento minimo:** partire da smoke/contract test per autenticazione e operazioni più distruttive, usando ambienti controllati o mock; non è necessario testare subito ogni snapshot.
- **Test prima dellintervento:** definire una matrice minima per status, payload obbligatori, errori 4xx e assenza di effetti collaterali indesiderati.
- **Impatto architetturale:** introduce un gate, non un nuovo layer applicativo.
### 6. Serializzazione `.env` non round-trip safe
- **Severità/costo:** Alta / S
- **File/modulo:** [update-bruno-environments.ps1](C:/_Git/UniPR/api-collections/scripts/update-bruno-environments.ps1:29) e [update-httpyac-environments.ps1](C:/_Git/UniPR/api-collections/scripts/update-httpyac-environments.ps1:26).
- **Problema:** i valori contenenti `#` vengono quotati, ma il parser conserva le quote; una seconda esecuzione può produrre quote duplicate. Apici, newline e altri caratteri dotenv non vengono gestiti sistematicamente.
- **Rischio:** password e token validi diventano inutilizzabili senza errore esplicito.
- **Intervento minimo:** definire escaping e parsing simmetrici per il sottoinsieme dotenv supportato.
- **Test prima dellintervento:** round-trip parametrico per `#`, apici, spazi, `=`, valori vuoti e `null`.
- **Impatto architetturale:** boundary dei segreti; nessun nuovo layer necessario.
### 7. Test errato e dead code nello script “owners”
- **Severità/costo:** Media / S
- **File/modulo:** [SCRIPT - Get Contracts with two or more owners.yml](<C:/_Git/UniPR/api-collections/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml:113>).
- **Problema:** loutput espone `ownersCount`, ma il test verifica `contributorCount` alla [riga 248](<C:/_Git/UniPR/api-collections/bruno/collections/IRIS GW (Gateway) REST API (v1)/Contracts/SCRIPT - Get Contracts with two or more owners.yml:248>). Il controllo `output.length >= 0` alla riga 258 è tautologico. Rimane inoltre un intero ramo contributor commentato e una funzione department non più utilizzata.
- **Rischio:** fallimenti ingannevoli o test che passano senza verificare laggregazione; manutenzione confusa.
- **Intervento minimo:** correggere la proprietà, usare una fixture non vuota e rimuovere il ramo commentato dopo aver verificato che non sia necessario.
- **Test prima dellintervento:** dataset con zero, uno e più owners e paginazione multipla.
- **Impatto architetturale:** nessuno; elimina una conseguenza concreta del copy/paste.
### 8. Generatore troppo concentrato e accoppiato al nome della cartella EFTL
- **Severità/costo:** Media / M
- **File/modulo:** [generate-httpyac-requests.ps1](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:420).
- **Problema:** 1.095 righe; `Build-RequestContent` è di 377 righe con circa 63 diramazioni. Il comportamento EFTL è attivato cercando `"EFTL processing"` nel percorso e sovrascrive indiscriminatamente il post-response script alle [righe 733785](C:/_Git/UniPR/api-collections/scripts/generate-httpyac-requests.ps1:733). Inoltre `Parse-Workspace` reimplementa manualmente il parsing pur essendo già disponibile il parser YAML.
- **Rischio:** cambiamenti locali producono regressioni trasversali; rinominare una cartella cambia la semantica.
- **Intervento minimo:** aggiungere test di caratterizzazione e separare soltanto rendering di auth, body e script in funzioni pure; rendere esplicita la modalità EFTL nella configurazione.
- **Test prima dellintervento:** golden test EFTL/non-EFTL, inclusi script senza marker o marker incompleti.
- **Impatto architetturale:** chiarisce il confine tra conversione generica e regola EFTL senza introdurre pattern ulteriori.
### 9. Duplicazione degli updater e variabili dipendenti da rami precedenti
- **Severità/costo:** Media / M
- **File/modulo:** i due `update-*-environments.ps1`, differenti per appena 15 aggiunte e 18 rimozioni.
- **Problema:** `$sectionKeys` viene inizializzata dentro il ramo che trova `.env.template`, ma può essere usata successivamente anche quando il template manca. La duplicazione rende facile correggere un solo updater.
- **Rischio:** chiavi mancanti, riuso accidentale dei valori delliterazione precedente e divergenza Bruno/httpyac.
- **Intervento minimo:** prima inizializzare sempre le chiavi; poi usare ununica funzione parametrizzata per root e policy di esclusione.
- **Test prima dellintervento:** template presente/assente, `.env` presente/assente, chiavi aggiunte/rimosse e valori `null`.
- **Impatto architetturale:** riduce duplicazione di conoscenza nella pipeline dei segreti.
### 10. Bootstrap delle dipendenze non riproducibile
- **Severità/costo:** Media / S
- **File/modulo:** [setup-tools.ps1](C:/_Git/UniPR/api-collections/scripts/setup-tools.ps1:1) e [README.md](C:/_Git/UniPR/api-collections/README.md:18).
- **Problema:** il README promette un tentativo di installazione, ma lo script esegue solo `Import-Module ... -ErrorAction SilentlyContinue` e comunica comunque successo. Non è dichiarata una versione compatibile.
- **Rischio:** una nuova workstation fallisce più avanti con diagnostica poco chiara.
- **Intervento minimo:** verificare presenza/versione e terminare con istruzioni esplicite oppure installare soltanto previo consenso dellutente.
- **Test prima dellintervento:** esecuzione in una sessione senza modulo e con versione incompatibile.
- **Impatto architetturale:** dependency hygiene, nessun cambiamento strutturale.
### 11. Copie e contenuti obsoleti aumentano il rischio di deriva
- **Severità/costo:** Bassa / SM
- **File/modulo:** directory `OLD`, `Obsolete`, file `Get Items Copy.yml`/`Get ASNs Copy.yml` e due coppie di runner completamente identiche.
- **Problema:** duplicazione significativa e snapshot molto grandi; non è però dimostrabile dalla sola analisi statica che siano davvero inutilizzati.
- **Rischio:** correzioni applicate a una sola copia, review lente e crescita del repository.
- **Intervento minimo:** censire uso e ownership; eliminare solo copie confermate inutilizzate o documentarne esplicitamente lo scopo.
- **Test prima dellintervento:** confronto comportamentale delle copie e verifica con gli utilizzatori.
- **Impatto architetturale:** nessuno; pulizia controllata, non refactoring speculativo.
## Invarianti consigliate
I futuri gate dovrebbero verificare almeno che:
- ogni YAML sia parseabile dal parser effettivamente usato;
- nessun body type venga ignorato silenziosamente;
- gli script attraversino Bruno→httpyac solo se tradotti o dichiarati compatibili;
- gli output generati siano prodotti in una directory temporanea e validati;
- i template dei segreti restino sincronizzati;
- esempi e snapshot non contengano credenziali o dati personali non autorizzati.
Non raccomando al momento un ADR formale: basterebbe documentare queste invarianti nel repository e automatizzarle.
Non ho letto il contenuto di `env.json`, non ho eseguito chiamate API e non ho lanciato script che scrivono output. `git status` e `git diff` sono rimasti vuoti: nessun file è stato modificato.
@@ -1,7 +1,5 @@
elixFormsWsAuthenticationToken= elixFormsWsAuthenticationToken=
elixFormsApiUsername=
elixFormsApiPassword= elixFormsApiPassword=
elixFormsApiUsername=
elixFormsConsoleUsername= elixFormsConsoleUsername=
elixFormsConsolePassword= elixFormsConsolePassword=
elixProStudioUsername=
elixProStudioPassword=
@@ -1,11 +1,11 @@
info: info:
name: AJ Console - Get Object Title (GENERICSCHEMA) name: AJ Console - Get Object Title (GENERICSCHEMA)
type: http type: http
seq: 2 seq: 6
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/AJSRV/metadata/objectTitle?ATTR_NAME=master_field&ATTR_VALUE=true&TYPE=GENERICSCHEMA&OBJECT_ID=168258" url: "{{elixFormsRootUrl}}/AJSRV/metadata/objectTitle?ATTR_NAME=master_field&ATTR_VALUE=true&TYPE=GENERICSCHEMA&OBJECT_ID=168258"
headers: headers:
- name: Cookie - name: Cookie
value: "{{elixFormsAjsrvCookie}}" value: "{{elixFormsAjsrvCookie}}"
@@ -30,7 +30,6 @@ runtime:
scripts: scripts:
- type: before-request - type: before-request
code: |- code: |-
/*
const noCookieFoundError = "No AJSRV cookie found!"; const noCookieFoundError = "No AJSRV cookie found!";
var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie"); var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie");
@@ -39,7 +38,6 @@ runtime:
console.error(noCookieFoundError, ajsrvCookie); console.error(noCookieFoundError, ajsrvCookie);
throw new Error(noCookieFoundError); throw new Error(noCookieFoundError);
} }
*/
settings: settings:
encodeUrl: true encodeUrl: true
@@ -1,11 +1,11 @@
info: info:
name: AJ Console - Get Object Title (SCHEMADATA) name: AJ Console - Get Object Title (SCHEMADATA)
type: http type: http
seq: 2 seq: 5
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/AJSRV/metadata/objectTitle?ATTR_NAME=master_field&ATTR_VALUE=true&TYPE=SCHEMADATA&OBJECT_ID=35397" url: "{{elixFormsRootUrl}}/AJSRV/metadata/objectTitle?ATTR_NAME=master_field&ATTR_VALUE=true&TYPE=SCHEMADATA&OBJECT_ID=35397"
headers: headers:
- name: Cookie - name: Cookie
value: "{{elixFormsAjsrvCookie}}" value: "{{elixFormsAjsrvCookie}}"
@@ -30,7 +30,6 @@ runtime:
scripts: scripts:
- type: before-request - type: before-request
code: |- code: |-
/*
const noCookieFoundError = "No AJSRV cookie found!"; const noCookieFoundError = "No AJSRV cookie found!";
var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie"); var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie");
@@ -39,7 +38,6 @@ runtime:
console.error(noCookieFoundError, ajsrvCookie); console.error(noCookieFoundError, ajsrvCookie);
throw new Error(noCookieFoundError); throw new Error(noCookieFoundError);
} }
*/
settings: settings:
encodeUrl: true encodeUrl: true
@@ -1,11 +1,11 @@
info: info:
name: AJ Console - Save Object name: AJ Console - Save Object
type: http type: http
seq: 2 seq: 7
http: http:
method: POST method: POST
url: "{{elixFormsConsoleUrl}}/AJSRV/metadata/save" url: "{{elixFormsRootUrl}}/AJSRV/metadata/save"
headers: headers:
- name: Cookie - name: Cookie
value: ISIPSESSION=047b770fac5627c03c94030ca0c3b45c; AJSRV=BTN_USER_1787207482458_8771527838545232265; ISIPSESSION_TRACK=99b2488e73af7c61f6e5affceeb32502; JSESSIONID=e3c44b958c4f282660a5fc8ed994 value: ISIPSESSION=047b770fac5627c03c94030ca0c3b45c; AJSRV=BTN_USER_1787207482458_8771527838545232265; ISIPSESSION_TRACK=99b2488e73af7c61f6e5affceeb32502; JSESSIONID=e3c44b958c4f282660a5fc8ed994
@@ -23,7 +23,6 @@ runtime:
scripts: scripts:
- type: before-request - type: before-request
code: |- code: |-
/*
const noCookieFoundError = "No AJSRV cookie found!"; const noCookieFoundError = "No AJSRV cookie found!";
var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie"); var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie");
@@ -32,7 +31,6 @@ runtime:
console.error(noCookieFoundError, ajsrvCookie); console.error(noCookieFoundError, ajsrvCookie);
throw new Error(noCookieFoundError); throw new Error(noCookieFoundError);
} }
*/
settings: settings:
encodeUrl: true encodeUrl: true
@@ -1,11 +1,11 @@
info: info:
name: AJ Console - Search schemas name: AJ Console - Search schemas
type: http type: http
seq: 2 seq: 4
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/AJSRV/metadata/search?SEARCH_IN[]=616&PAGE=1&AJL=it&PAGESIZE=80&SECURE=true" url: "{{elixFormsRootUrl}}/AJSRV/metadata/search?SEARCH_IN[]=616&PAGE=1&AJL=it&PAGESIZE=80&SECURE=true"
headers: headers:
- name: x-requested-with - name: x-requested-with
value: XMLHttpRequest value: XMLHttpRequest
@@ -1,7 +0,0 @@
info:
name: AJ Console
type: folder
seq: 2
request:
auth: inherit
@@ -1,11 +1,11 @@
info: info:
name: Backoffice - Create Group name: Backoffice - Create Group
type: http type: http
seq: 3 seq: 9
http: http:
method: POST method: POST
url: "{{elixFormsConsoleUrl}}/backoffice/groups/_savedata.jsp" url: "{{elixFormsRootUrl}}/backoffice/groups/_savedata.jsp"
headers: headers:
- name: Cookie - name: Cookie
value: ISIPSESSION=047b770fac5627c03c94030ca0c3b45c; AJSRV=BTN_USER_1787207482458_8771527838545232265; ISIPSESSION_TRACK=99b2488e73af7c61f6e5affceeb32502; JSESSIONID=e3c44b958c4f282660a5fc8ed994 value: ISIPSESSION=047b770fac5627c03c94030ca0c3b45c; AJSRV=BTN_USER_1787207482458_8771527838545232265; ISIPSESSION_TRACK=99b2488e73af7c61f6e5affceeb32502; JSESSIONID=e3c44b958c4f282660a5fc8ed994
@@ -45,7 +45,6 @@ runtime:
scripts: scripts:
- type: before-request - type: before-request
code: |- code: |-
/*
const noCookieFoundError = "No AJSRV cookie found!"; const noCookieFoundError = "No AJSRV cookie found!";
var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie"); var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie");
@@ -54,7 +53,6 @@ runtime:
console.error(noCookieFoundError, ajsrvCookie); console.error(noCookieFoundError, ajsrvCookie);
throw new Error(noCookieFoundError); throw new Error(noCookieFoundError);
} }
*/
settings: settings:
encodeUrl: true encodeUrl: true
@@ -1,11 +1,11 @@
info: info:
name: Backoffice - Dashboard name: Backoffice - Dashboard
type: http type: http
seq: 2 seq: 11
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/backoffice/backoffice_console.jsp?IUQOID=0&IURTLGY=&IUXSID=TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}" url: "{{elixFormsRootUrl}}/backoffice/backoffice_console.jsp?IUQOID=0&IURTLGY=&IUXSID=TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}"
headers: headers:
- name: Host - name: Host
value: console-unipr.elixforms.it value: console-unipr.elixforms.it
@@ -21,6 +21,7 @@ http:
- name: IUXSID - name: IUXSID
value: TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}} value: TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}
type: query type: query
description: Must be computed by executing "Login - Backoffice"
auth: inherit auth: inherit
runtime: runtime:
@@ -1,11 +1,11 @@
info: info:
name: Backoffice - Save Group name: Backoffice - Save Group
type: http type: http
seq: 4 seq: 10
http: http:
method: POST method: POST
url: "{{elixFormsConsoleUrl}}/backoffice/groups/_savedata.jsp" url: "{{elixFormsRootUrl}}/backoffice/groups/_savedata.jsp"
headers: headers:
- name: Accept - name: Accept
value: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 value: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
@@ -1,7 +0,0 @@
info:
name: Backoffice
type: folder
seq: 1
request:
auth: inherit
@@ -1,11 +1,11 @@
info: info:
name: Creazione Moduli - Export Module name: Creazione Moduli - Export Module
type: http type: http
seq: 2 seq: 8
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/AJSRV/ELIXFORMS/moduleExport?MODULE_ID=21405&exportProtocol=true" url: "{{elixFormsRootUrl}}/AJSRV/ELIXFORMS/moduleExport?MODULE_ID=21405&exportProtocol=true"
headers: headers:
- name: Cookie - name: Cookie
value: "{{elixFormsAjsrvCookie}}" value: "{{elixFormsAjsrvCookie}}"
@@ -22,7 +22,6 @@ runtime:
scripts: scripts:
- type: before-request - type: before-request
code: |- code: |-
/*
const noCookieFoundError = "No AJSRV cookie found!"; const noCookieFoundError = "No AJSRV cookie found!";
var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie"); var ajsrvCookie = bru.getVar("elixFormsAjsrvCookie");
@@ -31,7 +30,6 @@ runtime:
console.error(noCookieFoundError, ajsrvCookie); console.error(noCookieFoundError, ajsrvCookie);
throw new Error(noCookieFoundError); throw new Error(noCookieFoundError);
} }
*/
settings: settings:
encodeUrl: true encodeUrl: true
@@ -1,11 +1,11 @@
info: info:
name: Gestione Schede - Get all schemas name: Gestione Schede - Get all schemas
type: http type: http
seq: 2 seq: 3
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/AJSRV/schemas" url: "{{elixFormsRootUrl}}/AJSRV/schemas"
headers: headers:
- name: Cookie - name: Cookie
value: ISIPSESSION=dd755718a116664c31b89d25d251c6b2; AJSRV=BTN_USER_1787732684670_7497683962865219861; JSESSIONID=e480913d3ccdc8d517c2e8662d9a value: ISIPSESSION=dd755718a116664c31b89d25d251c6b2; AJSRV=BTN_USER_1787732684670_7497683962865219861; JSESSIONID=e480913d3ccdc8d517c2e8662d9a
@@ -5,7 +5,7 @@ info:
http: http:
method: POST method: POST
url: "{{elixFormsConsoleUrl}}/CISIInformationUnit/ExecuteTransaction.jws?IUXSID=TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}" url: "{{elixFormsRootUrl}}/CISIInformationUnit/ExecuteTransaction.jws?IUXSID=TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}"
headers: headers:
- name: Host - name: Host
value: console-unipr.elixforms.it value: console-unipr.elixforms.it
@@ -15,6 +15,7 @@ http:
- name: IUXSID - name: IUXSID
value: TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}} value: TX_I4453_UNIPR_{{unixTimestamp}}_R{{randomRID}}
type: query type: query
description: Values are computed in pre-script!
body: body:
type: multipart-form type: multipart-form
data: data:
@@ -1,11 +1,11 @@
info: info:
name: Login - Gestione Schede name: Login - Gestione Schede
type: http type: http
seq: 1 seq: 2
http: http:
method: GET method: GET
url: "{{elixFormsConsoleUrl}}/rwe2/schema_console.jsp" url: "{{elixFormsRootUrl}}/rwe2/schema_console.jsp"
headers: headers:
- name: Cookie - name: Cookie
value: ISIPSESSION=dd755718a116664c31b89d25d251c6b2; AJSRV=BTN_USER_1787732684670_7497683962865219861; JSESSIONID=e480913d3ccdc8d517c2e8662d9a value: ISIPSESSION=dd755718a116664c31b89d25d251c6b2; AJSRV=BTN_USER_1787732684670_7497683962865219861; JSESSIONID=e480913d3ccdc8d517c2e8662d9a
@@ -14,7 +14,7 @@ http:
value: console-unipr.elixforms.it value: console-unipr.elixforms.it
disabled: true disabled: true
- name: Referer - name: Referer
value: https://consol-unipr.elixforms.it/backoffice/ value: https://console-unipr.elixforms.it/backoffice/
params: params:
- name: IUXSID - name: IUXSID
value: TX_I4453_UNIPR_1787737266508_R-1756946974 value: TX_I4453_UNIPR_1787737266508_R-1756946974
@@ -1,223 +0,0 @@
info:
name: Login - elixPro Studio
type: http
seq: 1
http:
method: POST
url: "{{elixProStudioUrl}}/eP/elixpro-studio/launch"
body:
type: form-urlencoded
data:
- name: cod_utente
value: pierpaolo.mammi@unipr.it
- name: password
value: "!PwnedPM7smroFxile9?"
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: https://unipr.elixforms.it/eP/elixpro-studio/launch
method: POST
body:
type: form-urlencoded
data:
- name: cod_utente
value: pierpaolo.mammi@unipr.it
- name: password
value: "!PwnedPM7smroFxile9?"
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 12:25:59 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: text/html;charset=UTF-8
- name: x-frame-options
value: SAMEORIGIN
- name: vary
value: Accept-Encoding
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: content-length
value: "2062"
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: html
data: |-
<!DOCTYPE html>
<html lang="it" style="font-size:112.5%;">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>elixPro Studio</title>
<link rel="icon" type="image/svg+xml" href="/eP/elixpro-studio/assets/images/favicon.svg">
<link rel="icon" type="image/svg+xml" sizes="16x16" href="/eP/elixpro-studio/assets/images/favicon-16.svg">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.googleapis.com/css2?family=Titillium+Web:wght@300;400;600;700&display=swap" crossorigin>
<link rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css">
<link rel="stylesheet" href="/eP/elixpro-studio/assets/css/layout.css?v=311">
</link>
<body class="bg-light elx-app" style="font-size:1rem;">
<div class="app-container">
<header class="app-header">
<div class="header-content">
<div class="header-left">
<button type="button" id="sidebarMobileToggle" class="btn btn-outline-light btn-sm d-md-none me-2" aria-label="Apri menu">
<i class="bi bi-list"></i>
</button>
<div class="logo-section" id="headerLogoLink" role="button" tabindex="0" title="Ultimi 200 log elixPro" aria-label="Apri log: ultimi 200 record elixPro">
<img src="/eP/elixpro-studio/assets/images/elixforms-logo.png?v=311" alt="elixForms" class="elixforms-brand-logo me-2">
<span class="brand-text">elixPro Studio</span>
</img>
</div>
<div class="header-right d-flex align-items-center gap-2">
<a href="/eP/elixpro-studio/assets/docs/manuale-utente.html" id="headerUserGuideLink" class="btn btn-sm border-0 bg-transparent text-white elx-header-efapps" target="_blank" rel="noopener noreferrer" title="Documentazione">
<i class="bi bi-book fs-5" aria-hidden="true"></i>
<span class="visually-hidden">Documentazione</span>
</a>
<a href="#" id="headerEfAppsLink" class="btn btn-sm border-0 bg-transparent text-white elx-header-efapps" role="button" title="eF Apps">
<i class="bi bi-grid-3x3-gap fs-5" aria-hidden="true"></i>
<span class="visually-hidden">eF Apps</span>
</a>
<div class="dropdown d-inline-block">
<button class="btn btn-outline-light btn-sm dropdown-toggle" type="button" id="profileMenuBtn" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i>
<span id="profileDisplayName">pierpaolo.mammi@unipr.it</span>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="profileMenuBtn" style="min-width: 280px;">
<li>
<a href="#" id="btnProfileMenu" class="dropdown-item" role="button"><i class="bi bi-person-vcard me-2"></i>Profilo utente</a>
</li>
<li>
<hr class="dropdown-divider"></hr>
<li>
<a href="#" id="btnLogoutMenu" class="dropdown-item text-danger" role="button"><i class="bi bi-box-arrow-right me-2"></i>Esci</a>
</li>
</li>
</ul>
</div>
</div>
</div>
<div class="app-main">
<aside id="sidebar" class="app-sidebar">
<div class="sidebar-panel-head">
<button type="button" id="sidebarToggle" class="sidebar-panel-toggle" title="Collassa/Espandi menu" aria-label="Collassa menu laterale">
<i class="bi bi-layout-sidebar-inset fs-5" id="sidebarToggleIcon" aria-hidden="true"></i>
</button>
</div>
<nav class="sidebar-nav">
<a class="nav-item nav-item--dashboard active" data-view="welcome" href="#">
<i class="bi bi-house-door"></i>
<span>Dashboard</span>
</a>
<div class="nav-separator">
<span class="nav-separator-text">elixPro</span>
</div>
<a class="nav-item" data-view="elixpro-procedimenti" href="#">
<i class="bi bi-diagram-3-fill"></i>
<span>Procedimenti</span>
</a>
<a class="nav-item" data-view="elixpro-elixlog" href="#">
<i class="bi bi-file-text"></i>
<span>Log</span>
</a>
</nav>
<footer class="app-footer app-footer--sidebar" role="contentinfo" style="text-align: center">
<span class="app-footer-build">1.0.1 - [build 311]</span>
</footer>
</aside>
<main class="app-content">
<div id="view-host"></div>
</main>
</div>
<div class="modal fade" id="profileModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-white border-bottom py-3">
<h5 class="modal-title"><i class="bi bi-person-vcard me-2"></i>Profilo utente</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<dl class="row mb-0">
<dt class="col-4">Piattaforma</dt>
<dd class="col-8" id="profileDialogPlatform">unipr.elixforms.it</dd>
<dt class="col-4">Utente</dt>
<dd class="col-8" id="profileDialogUsername">pierpaolo.mammi@unipr.it</dd>
<dt class="col-4">Nome</dt>
<dd class="col-8" id="profileDialogFullName">pierpaolo.mammi@unipr.it</dd>
<dt class="col-4">Email</dt>
<dd class="col-8" id="profileDialogEmail">-</dd>
<dt class="col-4">Gruppi</dt>
<dd class="col-8" id="profileDialogGroups">-</dd>
</dl>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Chiudi</button>
</div>
</div>
</div>
</div>
</div>
<script>window.ELIXPRO_APP_BASE='/eP/elixpro-studio';</script>
<script>window.BO02_APP_BASE=window.ELIXPRO_APP_BASE;</script>
<script>window.ELIXPRO_BUILD='311';</script>
<script>window.ELIXPRO_VERSION='1.0.1';</script>
<script>window.ELIXPRO_VERSION_BUILD_LABEL='1.0.1 - [build 311]';</script>
<script>window.ELIXPRO_PROCEDIMENTO_EDITOR_BASE='https://unipr.elixforms.it/eP/elixpro-editor/procedimento-x/editor?procedure-tag=';</script>
<script>window.ELIXPRO_EDITOR_BASE_CONFIGURED=true;</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script type="module" src="/eP/elixpro-studio/assets/js/app.js?v=311"></script>
</header>
</div>
</body>
</link>
</link>
</link>
</link>
</link>
</link>
</link>
</link>
</meta>
</meta>
</head>
</html>
@@ -1,80 +0,0 @@
info:
name: elixPro - Check promotion to Production
type: http
seq: 11
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/workflow/release-check?procedureTag=gestione_siti_web_nuovo_wf"
params:
- name: procedureTag
value: gestione_siti_web_nuovo_wf
type: query
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/workflow/release-check?procedureTag=gestione_siti_web_nuovo_wf"
method: GET
params:
- name: procedureTag
value: gestione_siti_web_nuovo_wf
type: query
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:29:04 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "154"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true,
"data": {
"ready": true,
"procedureTag": "gestione_siti_web_nuovo_wf",
"technicalDetail": "La bozza non è pronta per la pubblicazione.",
"issues": []
}
}
@@ -1,54 +0,0 @@
info:
name: elixPro - Copy module to Edit
type: http
seq: 13
http:
method: POST
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/proc-toedit"
body:
type: json
data: |-
{
"procedureTag": "module_tag_XXX"
}
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/proc-toedit"
method: POST
body:
type: json
data: |-
{
"procedureTag": "module_tag_XXX"
}
response:
status: 200
statusText: OK
body:
type: text
data: |-
{
"ok": true,
"procedureTag": "module_tag_XXX"
}
@@ -1,670 +0,0 @@
info:
name: elixPro - Get groups catalog
type: http
seq: 4
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/groups/catalog"
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/groups/catalog"
method: GET
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:14:45 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
- name: transfer-encoding
value: chunked
body:
type: json
data: |-
{
"ok": true,
"data": [
{
"idGroup": 91,
"name": "Azione D DIA",
"groupApplicationKey": null,
"label": "#91 Azione D DIA"
},
{
"idGroup": 90,
"name": "Azione D DISTI",
"groupApplicationKey": null,
"label": "#90 Azione D DISTI"
},
{
"idGroup": 88,
"name": "Azione D DUSIC",
"groupApplicationKey": null,
"label": "#88 Azione D DUSIC"
},
{
"idGroup": 89,
"name": "Azione D GSPI",
"groupApplicationKey": null,
"label": "#89 Azione D GSPI"
},
{
"idGroup": 92,
"name": "Azione D MC",
"groupApplicationKey": null,
"label": "#92 Azione D MC"
},
{
"idGroup": 94,
"name": "Azione D SAF",
"groupApplicationKey": null,
"label": "#94 Azione D SAF"
},
{
"idGroup": 93,
"name": "Azione D SCVSA",
"groupApplicationKey": null,
"label": "#93 Azione D SCVSA"
},
{
"idGroup": 95,
"name": "Azione D SEA",
"groupApplicationKey": null,
"label": "#95 Azione D SEA"
},
{
"idGroup": 96,
"name": "Azione D SMFI",
"groupApplicationKey": null,
"label": "#96 Azione D SMFI"
},
{
"idGroup": 97,
"name": "Azione D SMV",
"groupApplicationKey": null,
"label": "#97 Azione D SMV"
},
{
"idGroup": 98,
"name": "Azione D TUTTI",
"groupApplicationKey": null,
"label": "#98 Azione D TUTTI"
},
{
"idGroup": 38,
"name": "Borse CAI",
"groupApplicationKey": null,
"label": "#38 Borse CAI"
},
{
"idGroup": 45,
"name": "Borse CAPAS",
"groupApplicationKey": null,
"label": "#45 Borse CAPAS"
},
{
"idGroup": 54,
"name": "Borse CeFID",
"groupApplicationKey": null,
"label": "#54 Borse CeFID"
},
{
"idGroup": 43,
"name": "Borse CENTROACQUE.EU",
"groupApplicationKey": null,
"label": "#43 Borse CENTROACQUE.EU"
},
{
"idGroup": 36,
"name": "Borse Centro Default",
"groupApplicationKey": null,
"label": "#36 Borse Centro Default"
},
{
"idGroup": 41,
"name": "Borse Centro Servizi E-Learning",
"groupApplicationKey": null,
"label": "#41 Borse Centro Servizi E-Learning"
},
{
"idGroup": 42,
"name": "Borse Centro Serv. per Salute, Igiene Sicurezza lavoro",
"groupApplicationKey": null,
"label": "#42 Borse Centro Serv. per Salute, Igiene Sicurezza lavoro"
},
{
"idGroup": 48,
"name": "Borse Centro Universitario di Odontoiatria",
"groupApplicationKey": null,
"label": "#48 Borse Centro Universitario di Odontoiatria"
},
{
"idGroup": 44,
"name": "Borse CERIT",
"groupApplicationKey": null,
"label": "#44 Borse CERIT"
},
{
"idGroup": 47,
"name": "Borse CeRS",
"groupApplicationKey": null,
"label": "#47 Borse CeRS"
},
{
"idGroup": 39,
"name": "Borse CLA",
"groupApplicationKey": null,
"label": "#39 Borse CLA"
},
{
"idGroup": 37,
"name": "Borse CSAC",
"groupApplicationKey": null,
"label": "#37 Borse CSAC"
},
{
"idGroup": 40,
"name": "Borse CSC",
"groupApplicationKey": null,
"label": "#40 Borse CSC"
},
{
"idGroup": 28,
"name": "Borse DIA",
"groupApplicationKey": null,
"label": "#28 Borse DIA"
},
{
"idGroup": 50,
"name": "Borse DISS",
"groupApplicationKey": null,
"label": "#50 Borse DISS"
},
{
"idGroup": 35,
"name": "Borse DISTI",
"groupApplicationKey": null,
"label": "#35 Borse DISTI"
},
{
"idGroup": 23,
"name": "Borse DUSIC",
"groupApplicationKey": null,
"label": "#23 Borse DUSIC"
},
{
"idGroup": 27,
"name": "Borse GSPI",
"groupApplicationKey": null,
"label": "#27 Borse GSPI"
},
{
"idGroup": 29,
"name": "Borse MC",
"groupApplicationKey": null,
"label": "#29 Borse MC"
},
{
"idGroup": 49,
"name": "Borse MILC",
"groupApplicationKey": null,
"label": "#49 Borse MILC"
},
{
"idGroup": 34,
"name": "Borse SAF",
"groupApplicationKey": null,
"label": "#34 Borse SAF"
},
{
"idGroup": 30,
"name": "Borse SCVSA",
"groupApplicationKey": null,
"label": "#30 Borse SCVSA"
},
{
"idGroup": 31,
"name": "Borse SEA",
"groupApplicationKey": null,
"label": "#31 Borse SEA"
},
{
"idGroup": 51,
"name": "Borse SEM",
"groupApplicationKey": null,
"label": "#51 Borse SEM"
},
{
"idGroup": 32,
"name": "Borse SMFI",
"groupApplicationKey": null,
"label": "#32 Borse SMFI"
},
{
"idGroup": 33,
"name": "Borse SMV",
"groupApplicationKey": null,
"label": "#33 Borse SMV"
},
{
"idGroup": 52,
"name": "Borse Tutti",
"groupApplicationKey": null,
"label": "#52 Borse Tutti"
},
{
"idGroup": 46,
"name": "Borse UNIPR-CO LAB",
"groupApplicationKey": null,
"label": "#46 Borse UNIPR-CO LAB"
},
{
"idGroup": 117,
"name": "Commissione semestre aperto 2026",
"groupApplicationKey": null,
"label": "#117 Commissione semestre aperto 2026"
},
{
"idGroup": 118,
"name": "Compilatori esonero frequenza semestre aperto",
"groupApplicationKey": null,
"label": "#118 Compilatori esonero frequenza semestre aperto"
},
{
"idGroup": 87,
"name": "Edilizia - Gruppo candidature collaudi",
"groupApplicationKey": null,
"label": "#87 Edilizia - Gruppo candidature collaudi"
},
{
"idGroup": 20,
"name": "Gestione Proposta CCT",
"groupApplicationKey": null,
"label": "#20 Gestione Proposta CCT"
},
{
"idGroup": 108,
"name": "Gestione Siti Web - Autorizzatore",
"groupApplicationKey": null,
"label": "#108 Gestione Siti Web - Autorizzatore"
},
{
"idGroup": 106,
"name": "Gestione Siti Web - U.O. Comunicazione",
"groupApplicationKey": null,
"label": "#106 Gestione Siti Web - U.O. Comunicazione"
},
{
"idGroup": 107,
"name": "Gestione Siti Web - U.O. Sistemi Tecnologici e Infrastruttura",
"groupApplicationKey": null,
"label": "#107 Gestione Siti Web - U.O. Sistemi Tecnologici e Infrastruttura"
},
{
"idGroup": 18,
"name": "GruppoApp",
"groupApplicationKey": null,
"label": "#18 GruppoApp"
},
{
"idGroup": 19,
"name": "Gruppo di prova",
"groupApplicationKey": null,
"label": "#19 Gruppo di prova"
},
{
"idGroup": 105,
"name": "Modulo A/13 - Richiesta di Certificato",
"groupApplicationKey": null,
"label": "#105 Modulo A/13 - Richiesta di Certificato"
},
{
"idGroup": 115,
"name": "Modulo A/52 - Richiesta di immatricolazione in ritardo",
"groupApplicationKey": null,
"label": "#115 Modulo A/52 - Richiesta di immatricolazione in ritardo"
},
{
"idGroup": 119,
"name": "NEWGROUP",
"groupApplicationKey": null,
"label": "#119 NEWGROUP"
},
{
"idGroup": 104,
"name": "Operatore di test",
"groupApplicationKey": null,
"label": "#104 Operatore di test"
},
{
"idGroup": 100,
"name": "PEV 2026",
"groupApplicationKey": null,
"label": "#100 PEV 2026"
},
{
"idGroup": 74,
"name": "Procedimento LIQC - CAPAS",
"groupApplicationKey": null,
"label": "#74 Procedimento LIQC - CAPAS"
},
{
"idGroup": 81,
"name": "Procedimento LIQC - CeFID",
"groupApplicationKey": null,
"label": "#81 Procedimento LIQC - CeFID"
},
{
"idGroup": 65,
"name": "Procedimento LIQC - Centri di Marina Cassano",
"groupApplicationKey": null,
"label": "#65 Procedimento LIQC - Centri di Marina Cassano"
},
{
"idGroup": 67,
"name": "Procedimento LIQC - Centro Accoglienza e Inclusione (C.A.I)",
"groupApplicationKey": null,
"label": "#67 Procedimento LIQC - Centro Accoglienza e Inclusione (C.A.I)"
},
{
"idGroup": 72,
"name": "Procedimento LIQC - CENTROACQUE.EU",
"groupApplicationKey": null,
"label": "#72 Procedimento LIQC - CENTROACQUE.EU"
},
{
"idGroup": 68,
"name": "Procedimento LIQC - Centro Linguistico di Ateneo (C.L.A.)",
"groupApplicationKey": null,
"label": "#68 Procedimento LIQC - Centro Linguistico di Ateneo (C.L.A.)"
},
{
"idGroup": 70,
"name": "Procedimento LIQC - Centro Servizi E- Learning",
"groupApplicationKey": null,
"label": "#70 Procedimento LIQC - Centro Servizi E- Learning"
},
{
"idGroup": 71,
"name": "Procedimento LIQC - Centro Serv. per Salute, Igiene Sicurezza lavoro",
"groupApplicationKey": null,
"label": "#71 Procedimento LIQC - Centro Serv. per Salute, Igiene Sicurezza lavoro"
},
{
"idGroup": 69,
"name": "Procedimento LIQC - Centro Studi Catulliani - C.S.C.",
"groupApplicationKey": null,
"label": "#69 Procedimento LIQC - Centro Studi Catulliani - C.S.C."
},
{
"idGroup": 77,
"name": "Procedimento LIQC - Centro Universitario di Odontoiatria",
"groupApplicationKey": null,
"label": "#77 Procedimento LIQC - Centro Universitario di Odontoiatria"
},
{
"idGroup": 73,
"name": "Procedimento LIQC - CERIT",
"groupApplicationKey": null,
"label": "#73 Procedimento LIQC - CERIT"
},
{
"idGroup": 76,
"name": "Procedimento LIQC - CeRS",
"groupApplicationKey": null,
"label": "#76 Procedimento LIQC - CeRS"
},
{
"idGroup": 66,
"name": "Procedimento LIQC - CSAC",
"groupApplicationKey": null,
"label": "#66 Procedimento LIQC - CSAC"
},
{
"idGroup": 55,
"name": "Procedimento LIQC - Dip. Discipl. Umanistiche, Sociali e Imprese Cult.",
"groupApplicationKey": null,
"label": "#55 Procedimento LIQC - Dip. Discipl. Umanistiche, Sociali e Imprese Cult."
},
{
"idGroup": 56,
"name": "Procedimento LIQC - Dip. Giurisprudenza, Studi Politici e Internazionali",
"groupApplicationKey": null,
"label": "#56 Procedimento LIQC - Dip. Giurisprudenza, Studi Politici e Internazionali"
},
{
"idGroup": 57,
"name": "Procedimento LIQC - Dip. Ingegneria e Architettura",
"groupApplicationKey": null,
"label": "#57 Procedimento LIQC - Dip. Ingegneria e Architettura"
},
{
"idGroup": 64,
"name": "Procedimento LIQC - Dip. Ingegneria Sist. e Tec. DISTI",
"groupApplicationKey": null,
"label": "#64 Procedimento LIQC - Dip. Ingegneria Sist. e Tec. DISTI"
},
{
"idGroup": 58,
"name": "Procedimento LIQC - Dip. Medicina e Chirurgia",
"groupApplicationKey": null,
"label": "#58 Procedimento LIQC - Dip. Medicina e Chirurgia"
},
{
"idGroup": 59,
"name": "Procedimento LIQC - Dip. Sc. Chimiche, Vita e Sostenibilita' Ambientale",
"groupApplicationKey": null,
"label": "#59 Procedimento LIQC - Dip. Sc. Chimiche, Vita e Sostenibilita' Ambientale"
},
{
"idGroup": 63,
"name": "Procedimento LIQC - Dip. Scienze degli Alimenti e del Farmaco",
"groupApplicationKey": null,
"label": "#63 Procedimento LIQC - Dip. Scienze degli Alimenti e del Farmaco"
},
{
"idGroup": 60,
"name": "Procedimento LIQC - Dip. Scienze Economiche e Aziendali",
"groupApplicationKey": null,
"label": "#60 Procedimento LIQC - Dip. Scienze Economiche e Aziendali"
},
{
"idGroup": 61,
"name": "Procedimento LIQC - Dip. Scienze Matematiche, Fisiche e Informatiche",
"groupApplicationKey": null,
"label": "#61 Procedimento LIQC - Dip. Scienze Matematiche, Fisiche e Informatiche"
},
{
"idGroup": 62,
"name": "Procedimento LIQC - Dip. Scienze Medico-Veterinarie",
"groupApplicationKey": null,
"label": "#62 Procedimento LIQC - Dip. Scienze Medico-Veterinarie"
},
{
"idGroup": 82,
"name": "Procedimento LIQC - Dip. Test",
"groupApplicationKey": null,
"label": "#82 Procedimento LIQC - Dip. Test"
},
{
"idGroup": 79,
"name": "Procedimento LIQC - DISS",
"groupApplicationKey": null,
"label": "#79 Procedimento LIQC - DISS"
},
{
"idGroup": 78,
"name": "Procedimento LIQC - MILC",
"groupApplicationKey": null,
"label": "#78 Procedimento LIQC - MILC"
},
{
"idGroup": 80,
"name": "Procedimento LIQC - SEM",
"groupApplicationKey": null,
"label": "#80 Procedimento LIQC - SEM"
},
{
"idGroup": 101,
"name": "Procedimento LIQC - Tutti",
"groupApplicationKey": null,
"label": "#101 Procedimento LIQC - Tutti"
},
{
"idGroup": 75,
"name": "Procedimento LIQC - UNIPR-CO LAB",
"groupApplicationKey": null,
"label": "#75 Procedimento LIQC - UNIPR-CO LAB"
},
{
"idGroup": 86,
"name": "Progetti Tutti",
"groupApplicationKey": null,
"label": "#86 Progetti Tutti"
},
{
"idGroup": 84,
"name": "Progetti U.O. Ricerca Europea e Internazionale",
"groupApplicationKey": null,
"label": "#84 Progetti U.O. Ricerca Europea e Internazionale"
},
{
"idGroup": 85,
"name": "Progetti U.O. Ricerca Nazionale e Industriale",
"groupApplicationKey": null,
"label": "#85 Progetti U.O. Ricerca Nazionale e Industriale"
},
{
"idGroup": 113,
"name": "RDA MANUT - Area Edilizia - Dirigente",
"groupApplicationKey": null,
"label": "#113 RDA MANUT - Area Edilizia - Dirigente"
},
{
"idGroup": 112,
"name": "RDA MANUT - Area Edilizia - Ufficio Tecnico",
"groupApplicationKey": null,
"label": "#112 RDA MANUT - Area Edilizia - Ufficio Tecnico"
},
{
"idGroup": 111,
"name": "RDA MANUT - Contabilita",
"groupApplicationKey": null,
"label": "#111 RDA MANUT - Contabilita"
},
{
"idGroup": 114,
"name": "RDA MANUT - U.O.T. Acquisti",
"groupApplicationKey": null,
"label": "#114 RDA MANUT - U.O.T. Acquisti"
},
{
"idGroup": 99,
"name": "Richieste di Subappalto Subaffidamento Distacco",
"groupApplicationKey": null,
"label": "#99 Richieste di Subappalto Subaffidamento Distacco"
},
{
"idGroup": 21,
"name": "test",
"groupApplicationKey": null,
"label": "#21 test"
},
{
"idGroup": 103,
"name": "Test 01",
"groupApplicationKey": null,
"label": "#103 Test 01"
},
{
"idGroup": 26,
"name": "Test Call Center",
"groupApplicationKey": null,
"label": "#26 Test Call Center"
},
{
"idGroup": 110,
"name": "UO Accoglienza Mobilità e Studenti Stranieri",
"groupApplicationKey": null,
"label": "#110 UO Accoglienza Mobilità e Studenti Stranieri"
},
{
"idGroup": 25,
"name": "UO Bilanci e Contabilità Analitica",
"groupApplicationKey": null,
"label": "#25 UO Bilanci e Contabilità Analitica"
},
{
"idGroup": 116,
"name": "UO Carriere Studenti",
"groupApplicationKey": null,
"label": "#116 UO Carriere Studenti"
},
{
"idGroup": 53,
"name": "UO Comunicazione Istituzionale e Cerimoniale",
"groupApplicationKey": null,
"label": "#53 UO Comunicazione Istituzionale e Cerimoniale"
},
{
"idGroup": 22,
"name": "UO Formazione",
"groupApplicationKey": null,
"label": "#22 UO Formazione"
},
{
"idGroup": 17,
"name": "UO PTA",
"groupApplicationKey": null,
"label": "#17 UO PTA"
},
{
"idGroup": 83,
"name": "UO PTA Altri moduli",
"groupApplicationKey": null,
"label": "#83 UO PTA Altri moduli"
},
{
"idGroup": 24,
"name": "UO Sistemi Tecnologici e Infrastrutture",
"groupApplicationKey": null,
"label": "#24 UO Sistemi Tecnologici e Infrastrutture"
},
{
"idGroup": 109,
"name": "ZMANG",
"groupApplicationKey": null,
"label": "#109 ZMANG"
}
]
}
@@ -1,993 +0,0 @@
info:
name: elixPro - Get module code
type: http
seq: 5
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-editor/rest/workflow/:moduleTag/:state/epWorkflow"
params:
- name: moduleTag
value: edilizia_rda_manutenzione_wf
type: path
- name: state
value: draft
type: path
description: draft | released
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: https://unipr.elixforms.it/eP/elixpro-editor/rest/workflow/:moduleTag/:state/epWorkflow
method: GET
params:
- name: moduleTag
value: edilizia_rda_manutenzione_wf
type: path
- name: state
value: draft
type: path
description: draft | released
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 12:25:09 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
- name: transfer-encoding
value: chunked
body:
type: json
data: |-
{
"value": {
"code": "OK",
"complete": true,
"globalStatus": "OK",
"uuid": "d9fb568b-7d5c-4f85-b513-95047b04e6bd",
"version": "3.0.0",
"matchingEntities": {
"metadata": {
"editorVersion": "6.0.1",
"generatedAt": "2026-07-23T12:59:23.315Z",
"schemaVersion": "2.0.1"
},
"roles": [
{
"azioni": [
{
"listArray": [
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso, list_ACQUISTI_inCorso, list_DIRIG_inCorso, list_TECNICO_inCorso",
"key": "azione_ACQUISTI_prendiInCarico",
"moveToList": "list_ACQUISTI_esecuzioneDetermina",
"notifica": "",
"status": "stato_ACQUISTI_inPreparazioneDetermina",
"title": "Prendi in carico",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_ACQUISTI_inCorso, list_CONTAB_inCorso, list_TECNICO_inCorso",
"key": "azione_ACQUISTI_passaAGenerazioneDetermina",
"moveToList": "list_ACQUISTI_esecuzioneDetermina",
"notifica": "",
"status": "stato_ACQUISTI_inGenerazioneDetermina",
"title": "Passa a generazione Determina",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_ACQUISTI_inCorso, list_TECNICO_inCorso, list_CONTAB_inCorso, list_DIRIG_inCorso",
"key": "azione_ACQUISTI_confermaEProtocolla",
"moveToList": "list_ACQUISTI_esecuzioneDetermina",
"notifica": "",
"status": "stato_ACQUISTI_inPredisposizioneDocumentazione",
"title": "Conferma e protocolla Determina",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso, list_ACQUISTI_inCorso, list_DIRIG_inCorso",
"key": "azione_ACQUISTI_inviaAAetPerDocumentazioneFinale",
"moveToList": "list_TECNICO_documentazioneFinale, list_TECNICO_inCorso",
"notifica": "",
"status": "stato_TECNICO_inPreparazioneDocumentazioneScrittura",
"title": "Invia a Area Edilizia (IMPORTO < 150k)",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso, list_ACQUISTI_inCorso, list_TECNICO_inCorso, list_DIRIG_inCorso",
"key": "azione_ACQUISTI_inviaAContabilita",
"moveToList": "list_CONTAB_inAttesaScritturaContabile",
"notifica": "",
"status": "stato_CONTAB_inScritturaContabile",
"title": "Invia a Contabilità (IMPORTO >= 150k)",
"type": "button"
}
],
"title": "PASSAGGIO DI STATO"
},
{
"listArray": [
{
"behaviourTag": "aggiungiSchedaAlFascicolo",
"config": "config = {}; config.selectedCategoryId = 22;",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_ACQUISTI_aggiungiDatiACQ",
"moveToList": "",
"notifica": "config = {}; config.selectedCategoryId = 22;",
"status": "",
"title": "Aggiungi dati",
"type": "button"
},
{
"behaviourTag": "generaPdfDaTemplate",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_ACQUISTI_generaPdfDetermina",
"moveToList": "",
"notifica": "",
"status": "",
"title": "Genera PDF Determina",
"type": "button"
},
{
"behaviourTag": "aggiungiSchedaAlFascicolo",
"config": "config = {}; config.selectedCategoryId = 25;",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_ACQUISTI_predisponiDocumentazione",
"moveToList": "",
"notifica": "config = {}; config.selectedCategoryId = 25;",
"status": "",
"title": "Predisponi documentazione (IMPORTO >= 150k)",
"type": "button"
}
],
"title": "AZIONI"
}
],
"layout": {
"height": 637,
"left": 20,
"top": 20,
"width": 591
},
"liste": [
{
"listArray": [
{
"isDetailAllowed": "true",
"key": "list_ACQUISTI_inoltrate",
"title": "Inoltrate",
"type": "button"
},
{
"isDetailAllowed": "true",
"key": "list_ACQUISTI_esecuzioneDetermina",
"title": "Esecuzione Determina",
"type": "button"
}
],
"title": "Controllo richieste"
},
{
"listArray": [
{
"isDetailAllowed": "false",
"key": "list_ACQUISTI_inCorso",
"title": "In corso",
"type": "button"
}
],
"title": "Riepilogo pratiche"
}
],
"procedimentoTag": "edilizia_rda_manutenzione_wf",
"pulsantiAttivi": {
"stato_ACQUISTI_inPredisposizioneDocumentazione": {
"azione_ACQUISTI_inviaAContabilita": true,
"azione_ACQUISTI_predisponiDocumentazione": true,
"azione_ACQUISTI_inviaAAetPerDocumentazioneFinale": true
},
"stato_ACQUISTI_inPreparazioneDetermina": {
"azione_ACQUISTI_aggiungiDatiACQ": true,
"azione_ACQUISTI_passaAGenerazioneDetermina": true
},
"stato_ACQUISTI_inoltrata": {
"azione_ACQUISTI_prendiInCarico": true
},
"stato_ACQUISTI_inGenerazioneDetermina": {
"azione_ACQUISTI_generaPdfDetermina": true,
"azione_ACQUISTI_confermaEProtocolla": true
}
},
"ruolo": {
"colore": "#800080",
"descrizione": "RDA MANUT - U.O.T. Acquisti",
"key": "r_114",
"listaDefault": "Lista starter (da rinominare)",
"nome": "RDA MANUT - U.O.T. Acquisti"
},
"sezioni": {}
},
{
"azioni": [],
"layout": {
"height": 637,
"left": 631,
"top": 20,
"width": 591
},
"liste": [
{
"listArray": [
{
"isDetailAllowed": "false",
"key": "list_DIRIG_inCorso",
"title": "In corso",
"type": "button"
},
{
"isDetailAllowed": "false",
"key": "list_DIRIG_inviateATitulus",
"title": "Inviate a Titulus per firma",
"type": "button"
}
],
"title": "Riepilogo richieste"
}
],
"procedimentoTag": "edilizia_rda_manutenzione_wf",
"pulsantiAttivi": {
"stato_DIRIG_inFaseFirmaTitulus": {}
},
"ruolo": {
"colore": "#804002",
"descrizione": "RDA MANUT - Area Edilizia - Dirigente",
"key": "r_113",
"listaDefault": "Lista starter (da rinominare)",
"nome": "RDA MANUT - Area Edilizia - Dirigente"
},
"sezioni": {}
},
{
"azioni": [
{
"listArray": [
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso, list_TECNICO_inCorso",
"key": "azione_TECNICO_prendiInCarico",
"moveToList": "list_TECNICO_documentazioneDaPreparare",
"notifica": "",
"status": "stato_TECNICO_inPreparazioneDocumentazioneDetermina",
"title": "Prendi in carico",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_TECNICO_inCorso, list_TECNICO_documentazioneDaPreparare",
"key": "azione_TECNICO_passaAGenerazioneAll5",
"moveToList": "list_TECNICO_documentazioneDaPreparare",
"notifica": "",
"status": "stato_TECNICO_inGenerazioneAllegati",
"title": "Passa a generazione Allegato 5",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_TECNICO_documentazioneDaPreparare, list_TECNICO_inCorso",
"key": "azione_TECNICO_passaAInserimentoAllegati",
"moveToList": "list_TECNICO_documentazioneDaPreparare",
"notifica": "",
"status": "stato_TECNICO_inInserimentoAllegatiDetermina",
"title": "Passa a inserimento allegati",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso, list_TECNICO_inCorso",
"key": "azione_TECNICO_inviaAUotAcquisti",
"moveToList": "list_ACQUISTI_inoltrate, list_ACQUISTI_inCorso",
"notifica": "",
"status": "stato_ACQUISTI_inoltrata",
"title": "Conferma e invia a U.O.T. Acquisti",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_TECNICO_inCorso, list_CONTAB_inCorso, list_ACQUISTI_inCorso, list_DIRIG_inCorso",
"key": "azione_TECNICO_passaAInserimentoAllegatiS",
"moveToList": "list_TECNICO_documentazioneFinale",
"notifica": "",
"status": "stato_TECNICO_inInserimentoAllegatiScrittura",
"title": "Passa a inserimento allegati S",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_TECNICO_inCorso, list_ACQUISTI_inCorso, list_DIRIG_inCorso",
"key": "azione_TECNICO_inviaAUoContabilita",
"moveToList": "list_CONTAB_inAttesaScritturaContabile, list_CONTAB_inCorso",
"notifica": "",
"status": "stato_CONTAB_inScritturaContabile",
"title": "Conferma e invia a U.O. Contabilità",
"type": "button"
}
],
"title": "PASSAGGIO DI STATO"
},
{
"listArray": [
{
"behaviourTag": "aggiungiSchedaAlFascicolo",
"config": "config = {}; config.selectedCategoryId = 21;",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_TECNICO_aggiungiDatiTAE",
"moveToList": "",
"notifica": "config = {}; config.selectedCategoryId = 21;",
"status": "",
"title": "Aggiungi dati TAE",
"type": "button"
},
{
"behaviourTag": "generaPdfDaTemplate",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_TECNICO_generaAllegato5",
"moveToList": "",
"notifica": "",
"status": "",
"title": "Genera PDF Allegato 5",
"type": "button"
},
{
"behaviourTag": "aggiungiSchedaAlFascicolo",
"config": "config = {}; config.selectedCategoryId = 23;",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_TECNICO_aggiungiAllegatiDetermina",
"moveToList": "",
"notifica": "config = {}; config.selectedCategoryId = 23;",
"status": "",
"title": "Aggiungi allegati Determina",
"type": "button"
},
{
"behaviourTag": "aggiungiSchedaAlFascicolo",
"config": "config = {}; config.selectedCategoryId = 24;",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_TECNICO_aggiungiAllegatiScrittura",
"moveToList": "",
"notifica": "config = {}; config.selectedCategoryId = 24;",
"status": "",
"title": "Aggiungi allegati Scrittura",
"type": "button"
}
],
"title": "AZIONI"
}
],
"layout": {
"height": 637,
"left": 1242,
"top": 20,
"width": 591
},
"liste": [
{
"listArray": [
{
"isDetailAllowed": "true",
"key": "list_TECNICO_inoltrate",
"title": "Inoltrate",
"type": "button"
},
{
"isDetailAllowed": "true",
"key": "list_TECNICO_documentazioneDaPreparare",
"title": "Documentazione per Determina da preparare",
"type": "button"
},
{
"isDetailAllowed": "true",
"key": "list_TECNICO_documentazioneFinale",
"title": "Documentazione per scrittura da preparare",
"type": "button"
}
],
"title": "Controllo richieste"
},
{
"listArray": [
{
"isDetailAllowed": "false",
"key": "list_TECNICO_inCorso",
"title": "In corso",
"type": "button"
}
],
"title": "Riepilogo pratiche"
}
],
"procedimentoTag": "edilizia_rda_manutenzione_wf",
"pulsantiAttivi": {
"stato_TECNICO_inoltrata": {
"azione_TECNICO_prendiInCarico": true
},
"stato_TECNICO_inGenerazioneAllegati": {
"azione_TECNICO_passaAInserimentoAllegati": true,
"azione_TECNICO_generaAllegato5": true
},
"stato_TECNICO_inPreparazioneDocumentazioneScrittura": {
"azione_TECNICO_passaAInserimentoAllegatiS": true
},
"stato_TECNICO_inInserimentoAllegatiDetermina": {
"azione_TECNICO_inviaAUotAcquisti": true,
"azione_TECNICO_aggiungiAllegatiDetermina": true
},
"stato_TECNICO_inInserimentoAllegatiScrittura": {
"azione_TECNICO_inviaAUoContabilita": true,
"azione_TECNICO_aggiungiAllegatiScrittura": true
},
"stato_TECNICO_inPreparazioneDocumentazioneDetermina": {
"azione_TECNICO_passaAGenerazioneAll5": true,
"azione_TECNICO_aggiungiDatiTAE": true
}
},
"ruolo": {
"colore": "#808000",
"descrizione": "RDA MANUT - Area Edilizia - Ufficio Tecnico",
"key": "r_112",
"listaDefault": "Lista starter (da rinominare)",
"nome": "RDA MANUT - Area Edilizia - Ufficio Tecnico"
},
"sezioni": {}
},
{
"azioni": [
{
"listArray": [
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_CONTAB_inCorso",
"key": "azione_CONTAB_prendiInCarico",
"moveToList": "list_CONTAB_inVerificaCopertura",
"notifica": "",
"status": "stato_CONTAB_inVerificaCopertura",
"title": "Prendi in carico",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_CONTAB_Respingi",
"moveToList": "list_CONTAB_respinte",
"notifica": "",
"status": "stato_CONTAB_respinta",
"title": "Respingi",
"type": "button"
}
],
"title": "PASSAGGIO DI STATO"
},
{
"listArray": [
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "list_ACQUISTI_inCorso, list_DIRIG_inCorso, list_TECNICO_inCorso, list_CONTAB_inCorso",
"key": "azione_CONTAB_confermaCopertura",
"moveToList": "list_TECNICO_inoltrate, list_TECNICO_inCorso",
"notifica": "",
"status": "stato_TECNICO_inoltrata",
"title": "Conferma copertura economica",
"type": "button"
},
{
"behaviourTag": "passaABasic",
"config": "",
"customerNotes": "",
"developerNotes": "",
"doNotMoveToList": "",
"key": "azione_CONTAB_confermaScrittura",
"moveToList": "list_CONTAB_evase",
"notifica": "",
"status": "stato_CONTAB_evasa",
"title": "Conferma scrittura economica",
"type": "button"
}
],
"title": "AZIONI"
}
],
"layout": {
"height": 637,
"left": 20,
"top": 677,
"width": 591
},
"liste": [
{
"listArray": [
{
"isDetailAllowed": "true",
"key": "list_CONTAB_inoltrate",
"title": "Inoltrate",
"type": "button"
},
{
"isDetailAllowed": "true",
"key": "list_CONTAB_inVerificaCopertura",
"title": "Copertura da verificare",
"type": "button"
},
{
"isDetailAllowed": "true",
"key": "list_CONTAB_inAttesaScritturaContabile",
"title": "Scrittura contabile da eseguire",
"type": "button"
}
],
"title": "Controllo richieste"
},
{
"listArray": [
{
"isDetailAllowed": "false",
"key": "list_CONTAB_inCorso",
"title": "In corso",
"type": "button"
},
{
"isDetailAllowed": "false",
"key": "list_CONTAB_respinte",
"title": "Respinte",
"type": "button"
},
{
"isDetailAllowed": "false",
"key": "list_CONTAB_evase",
"title": "Evase",
"type": "button"
}
],
"title": "Riepilogo pratiche"
}
],
"procedimentoTag": "edilizia_rda_manutenzione_wf",
"pulsantiAttivi": {
"stato_CONTAB_respinta": {},
"stato_CONTAB_inoltrata": {
"azione_CONTAB_prendiInCarico": true
},
"stato_CONTAB_inScritturaContabile": {
"azione_CONTAB_confermaScrittura": true
},
"stato_CONTAB_inVerificaCopertura": {
"azione_CONTAB_confermaCopertura": true
},
"stato_CONTAB_evasa": {}
},
"ruolo": {
"colore": "#408000",
"descrizione": "RDA MANUT - Contabilita",
"key": "r_111",
"listaDefault": "Lista starter (da rinominare)",
"nome": "RDA MANUT - Contabilita"
},
"sezioni": {}
}
],
"workflowMapping": [
{
"actionKey": "azione_CONTAB_prendiInCarico",
"behaviour": "passaABasic",
"keepInLists": [
"list_CONTAB_inCorso"
],
"nextActions": [],
"targetLists": [
"list_CONTAB_inVerificaCopertura"
],
"targetState": "stato_CONTAB_inVerificaCopertura"
},
{
"actionKey": "azione_TECNICO_prendiInCarico",
"behaviour": "passaABasic",
"keepInLists": [
"list_CONTAB_inCorso",
"list_TECNICO_inCorso"
],
"nextActions": [],
"targetLists": [
"list_TECNICO_documentazioneDaPreparare"
],
"targetState": "stato_TECNICO_inPreparazioneDocumentazioneDetermina"
},
{
"actionKey": "azione_TECNICO_aggiungiDatiTAE",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_TECNICO_passaAGenerazioneAll5",
"behaviour": "generaPdfDaTemplate",
"keepInLists": [],
"nextActions": [],
"targetLists": [
"list_TECNICO_documentazioneDaPreparare"
],
"targetState": "stato_TECNICO_inGenerazioneAllegati"
},
{
"actionKey": "azione_TECNICO_generaAllegato5",
"behaviour": "generaPdfDaTemplate",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_TECNICO_passaAInserimentoAllegati",
"behaviour": "passaABasic",
"keepInLists": [],
"nextActions": [],
"targetLists": [
"list_TECNICO_documentazioneDaPreparare"
],
"targetState": "stato_TECNICO_inInserimentoAllegatiDetermina"
},
{
"actionKey": "azione_ACQUISTI_prendiInCarico",
"behaviour": "generaPdfDaTemplate",
"keepInLists": [
"list_CONTAB_inCorso",
"list_ACQUISTI_inCorso",
"list_DIRIG_inCorso",
"list_TECNICO_inCorso"
],
"nextActions": [],
"targetLists": [
"list_ACQUISTI_esecuzioneDetermina"
],
"targetState": "stato_ACQUISTI_inPreparazioneDetermina"
},
{
"actionKey": "azione_ACQUISTI_aggiungiDatiACQ",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_ACQUISTI_generaPdfDetermina",
"behaviour": "generaPdfDaTemplate",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_ACQUISTI_confermaEProtocolla",
"behaviour": "passaABasic",
"keepInLists": [
"list_ACQUISTI_inCorso",
"list_TECNICO_inCorso",
"list_CONTAB_inCorso",
"list_DIRIG_inCorso"
],
"nextActions": [],
"targetLists": [
"list_ACQUISTI_esecuzioneDetermina"
],
"targetState": "stato_ACQUISTI_inPredisposizioneDocumentazione"
},
{
"actionKey": "azione_ACQUISTI_inviaAAetPerDocumentazioneFinale",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [
"list_CONTAB_inCorso",
"list_ACQUISTI_inCorso",
"list_DIRIG_inCorso"
],
"nextActions": [],
"targetLists": [
"list_TECNICO_documentazioneFinale",
"list_TECNICO_inCorso"
],
"targetState": "stato_TECNICO_inPreparazioneDocumentazioneScrittura"
},
{
"actionKey": "azione_ACQUISTI_predisponiDocumentazione",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_ACQUISTI_inviaAContabilita",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [
"list_CONTAB_inCorso",
"list_ACQUISTI_inCorso",
"list_TECNICO_inCorso",
"list_DIRIG_inCorso"
],
"nextActions": [],
"targetLists": [
"list_CONTAB_inAttesaScritturaContabile"
],
"targetState": "stato_CONTAB_inScritturaContabile"
},
{
"actionKey": "azione_CONTAB_confermaCopertura",
"behaviour": "passaABasic",
"keepInLists": [
"list_ACQUISTI_inCorso",
"list_DIRIG_inCorso",
"list_TECNICO_inCorso",
"list_CONTAB_inCorso"
],
"nextActions": [],
"targetLists": [
"list_TECNICO_inoltrate",
"list_TECNICO_inCorso"
],
"targetState": "stato_TECNICO_inoltrata"
},
{
"actionKey": "azione_CONTAB_confermaScrittura",
"behaviour": "passaABasic",
"keepInLists": [],
"nextActions": [],
"targetLists": [
"list_CONTAB_evase"
],
"targetState": "stato_CONTAB_evasa"
},
{
"actionKey": "azione_CONTAB_Respingi",
"behaviour": "passaABasic",
"keepInLists": [],
"nextActions": [],
"targetLists": [
"list_CONTAB_respinte"
],
"targetState": "stato_CONTAB_respinta"
},
{
"actionKey": "azione_TECNICO_inviaAUotAcquisti",
"behaviour": "passaABasic",
"keepInLists": [
"list_CONTAB_inCorso",
"list_TECNICO_inCorso"
],
"nextActions": [],
"targetLists": [
"list_ACQUISTI_inoltrate",
"list_ACQUISTI_inCorso"
],
"targetState": "stato_ACQUISTI_inoltrata"
},
{
"actionKey": "azione_ACQUISTI_passaAGenerazioneDetermina",
"behaviour": "passaABasic",
"keepInLists": [
"list_ACQUISTI_inCorso",
"list_CONTAB_inCorso",
"list_TECNICO_inCorso"
],
"nextActions": [],
"targetLists": [
"list_ACQUISTI_esecuzioneDetermina"
],
"targetState": "stato_ACQUISTI_inGenerazioneDetermina"
},
{
"actionKey": "azione_TECNICO_aggiungiAllegatiDetermina",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_TECNICO_aggiungiAllegatiScrittura",
"behaviour": "aggiungiSchedaAlFascicolo",
"keepInLists": [],
"nextActions": [],
"targetLists": [],
"targetState": ""
},
{
"actionKey": "azione_TECNICO_passaAInserimentoAllegatiS",
"behaviour": "passaABasic",
"keepInLists": [
"list_TECNICO_inCorso",
"list_CONTAB_inCorso",
"list_ACQUISTI_inCorso",
"list_DIRIG_inCorso"
],
"nextActions": [],
"targetLists": [
"list_TECNICO_documentazioneFinale"
],
"targetState": "stato_TECNICO_inInserimentoAllegatiScrittura"
},
{
"actionKey": "azione_TECNICO_inviaAUoContabilita",
"behaviour": "passaABasic",
"keepInLists": [
"list_TECNICO_inCorso",
"list_ACQUISTI_inCorso",
"list_DIRIG_inCorso"
],
"nextActions": [],
"targetLists": [
"list_CONTAB_inAttesaScritturaContabile",
"list_CONTAB_inCorso"
],
"targetState": "stato_CONTAB_inScritturaContabile"
}
],
"workflowStateNames": {
"stato_TECNICO_inGenerazioneAllegati": {
"title": "In generazione allegati",
"value": "stato_TECNICO_inGenerazioneAllegati"
},
"stato_CONTAB_respinta": {
"title": "Respinta",
"value": "stato_CONTAB_respinta"
},
"stato_CONTAB_inoltrata": {
"title": "Inoltrata",
"value": "stato_CONTAB_inoltrata"
},
"stato_CONTAB_inScritturaContabile": {
"title": "In esecuzione scrittura contabile",
"value": "stato_CONTAB_inScritturaContabile"
},
"stato_TECNICO_inPreparazioneDocumentazioneDetermina": {
"title": "In preparazione documentazione",
"value": "stato_TECNICO_inPreparazioneDocumentazioneDetermina"
},
"stato_CONTAB_inVerificaCopertura": {
"title": "In verifica copertura economica",
"value": "stato_CONTAB_inVerificaCopertura"
},
"stato_ACQUISTI_inoltrata": {
"title": "Inoltrata",
"value": "stato_ACQUISTI_inoltrata"
},
"stato_ACQUISTI_inGenerazioneDetermina": {
"title": "In generazione Determina",
"value": "stato_ACQUISTI_inGenerazioneDetermina"
},
"stato_TECNICO_inoltrata": {
"title": "Inoltrata",
"value": "stato_TECNICO_inoltrata"
},
"stato_TECNICO_inPreparazioneDocumentazioneScrittura": {
"title": "In preparazione documentazione S",
"value": "stato_TECNICO_inPreparazioneDocumentazioneScrittura"
},
"stato_ACQUISTI_inPredisposizioneDocumentazione": {
"title": "In predisposizione documentazione",
"value": "stato_ACQUISTI_inPredisposizioneDocumentazione"
},
"stato_TECNICO_inInserimentoAllegatiDetermina": {
"title": "In inserimento allegati",
"value": "stato_TECNICO_inInserimentoAllegatiDetermina"
},
"stato_TECNICO_inInserimentoAllegatiScrittura": {
"title": "In inserimento allegati S",
"value": "stato_TECNICO_inInserimentoAllegatiScrittura"
},
"stato_ACQUISTI_inPreparazioneDetermina": {
"title": "In preparazione determina",
"value": "stato_ACQUISTI_inPreparazioneDetermina"
},
"stato_DIRIG_inFaseFirmaTitulus": {
"title": "In fase di firma Titutlus",
"value": "stato_DIRIG_inFaseFirmaTitulus"
},
"stato_CONTAB_evasa": {
"title": "Evasa",
"value": "stato_CONTAB_evasa"
}
}
},
"matchingEntitiesSize": 1
}
}
@@ -1,91 +0,0 @@
info:
name: elixPro - Get module status
type: http
seq: 7
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/workflow/status?procedureTag=edilizia_rda_manutenzione_wf&includePropertiesBody=1"
params:
- name: procedureTag
value: edilizia_rda_manutenzione_wf
type: query
- name: includePropertiesBody
value: "1"
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/workflow/status?procedureTag=edilizia_rda_manutenzione_wf&includePropertiesBody=1"
method: GET
params:
- name: procedureTag
value: edilizia_rda_manutenzione_wf
type: query
- name: includePropertiesBody
value: "1"
type: query
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:12:33 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "1098"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true,
"data": {
"exists": true,
"empty": false,
"editing": true,
"released": true,
"matchingEntitiesSize": 1,
"amountOfOldVersionsDraft": 7,
"amountOfOldVersionsOnline": 0,
"lastModDate": "2026-07-24T10:05:36.505Z",
"lastReleaseDate": "2026-07-24T10:04:31.393Z",
"workflowVersion": "3.0.0",
"message": "Stato letto da /config/properties/{procedureTag}.",
"propertiesResponseBody": "{\n \"value\" : {\n \"code\" : \"OK\",\n \"complete\" : true,\n \"globalStatus\" : \"OK\",\n \"uuid\" : \"71e8b093-6b6d-458f-a096-de8534ddcfeb\",\n \"version\" : \"3.0.0\",\n \"matchingEntities\" : {\n \"amountOfOldVersions\" : 7,\n \"editing\" : true,\n \"lastModDate\" : \"2026-07-24T10:05:36.505Z\",\n \"lastReleaseDate\" : \"2026-07-24T10:04:31.393Z\",\n \"procedureTag\" : \"edilizia_rda_manutenzione_wf\",\n \"released\" : true\n },\n \"matchingEntitiesSize\" : 1\n }\n}",
"efpRowExists": true,
"efpDraftReady": true,
"efpOnlineReady": true,
"modDt": "2026-07-24T10:05:36.505Z",
"modId": "api_token_volatile_user",
"relDt": "2026-07-24T10:04:31.393Z",
"relId": "api_token_volatile_user"
}
}
@@ -1,112 +0,0 @@
info:
name: elixPro - Get module versions
type: http
seq: 6
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/history/versions?procedureTag=edilizia_rda_manutenzione_wf"
params:
- name: procedureTag
value: edilizia_rda_manutenzione_wf
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: https://unipr.elixforms.it/eP/elixpro-studio/api/elixpro/procedimento/history/versions?procedureTag=edilizia_rda_manutenzione_wf
method: GET
params:
- name: procedureTag
value: edilizia_rda_manutenzione_wf
type: query
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 12:57:35 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "729"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true,
"data": {
"configured": true,
"source": "jdbc",
"items": [
{
"id": 17,
"tag": null,
"historyDt": "2026-07-24T10:04:31.390Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 16,
"tag": null,
"historyDt": "2026-07-24T10:01:05.706Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 15,
"tag": null,
"historyDt": "2026-07-24T10:00:04.909Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 14,
"tag": null,
"historyDt": "2026-07-24T09:54:36.791Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 13,
"tag": null,
"historyDt": "2026-07-24T09:10:10.208Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 12,
"tag": null,
"historyDt": "2026-07-23T14:59:20.653Z",
"creId": "pierpaolo.mammi@unipr.it"
},
{
"id": 11,
"tag": null,
"historyDt": "2026-07-23T14:53:22.915Z",
"creId": "pierpaolo.mammi@unipr.it"
}
]
}
}
@@ -1,405 +0,0 @@
info:
name: elixPro - Get modules catalog
type: http
seq: 3
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/moduli/catalog"
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/moduli/catalog"
method: GET
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:13:28 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
- name: transfer-encoding
value: chunked
body:
type: json
data: |-
{
"ok": true,
"data": [
{
"tagModulo": "A52",
"label": "A52"
},
{
"tagModulo": "BR_BANDO",
"label": "BR_BANDO"
},
{
"tagModulo": "BRIC_ACCETTAZIONE",
"label": "BRIC_ACCETTAZIONE"
},
{
"tagModulo": "BRIC_DOMANDA_AMMISSIONE_TAG",
"label": "BRIC_DOMANDA_AMMISSIONE_TAG"
},
{
"tagModulo": "BRIC_DOMANDA_AMMISSIONE_TAGBRSCVSA-32/2025_202511051007",
"label": "BRIC_DOMANDA_AMMISSIONE_TAGBRSCVSA-32/2025_202511051007"
},
{
"tagModulo": "BRIC_RINUNCIA",
"label": "BRIC_RINUNCIA"
},
{
"tagModulo": "BR_INCARICO",
"label": "BR_INCARICO"
},
{
"tagModulo": "CI_TEST_2",
"label": "CI_TEST_2"
},
{
"tagModulo": "FORMAZIONE_IN_HOUSE",
"label": "FORMAZIONE_IN_HOUSE"
},
{
"tagModulo": "INC_RIC_ATTIVAZIONE",
"label": "INC_RIC_ATTIVAZIONE"
},
{
"tagModulo": "PROG_PROPOSTA_DOCENTE",
"label": "PROG_PROPOSTA_DOCENTE"
},
{
"tagModulo": "PROG_PROPOSTA_OPERATORE",
"label": "PROG_PROPOSTA_OPERATORE"
},
{
"tagModulo": "PROPOSTA_PROG_DOCENTE",
"label": "PROPOSTA_PROG_DOCENTE"
},
{
"tagModulo": "PROPOSTA_PROG_OPERATORE",
"label": "PROPOSTA_PROG_OPERATORE"
},
{
"tagModulo": "prova_giulia",
"label": "prova_giulia"
},
{
"tagModulo": "PTA10_RICH_PERM_L104",
"label": "PTA10_RICH_PERM_L104"
},
{
"tagModulo": "PTA_20_21",
"label": "PTA_20_21"
},
{
"tagModulo": "test_firma",
"label": "test_firma"
},
{
"tagModulo": "anthesi_short",
"label": "anthesi_short - anthesi",
"titolo": "anthesi"
},
{
"tagModulo": "QA_API",
"label": "QA_API - ANTHESI",
"titolo": "ANTHESI"
},
{
"tagModulo": "QA_API_senzaSWF",
"label": "QA_API_senzaSWF - ANTHESI",
"titolo": "ANTHESI"
},
{
"tagModulo": "TicketApp",
"label": "TicketApp - App",
"titolo": "App"
},
{
"tagModulo": "ESERC_DIRITTI_PERSONALI",
"label": "ESERC_DIRITTI_PERSONALI - AREA AFFARI GENERALI, MODULI INTERNI",
"titolo": "AREA AFFARI GENERALI, MODULI INTERNI"
},
{
"tagModulo": "SEGNALAZ_DATABREACH",
"label": "SEGNALAZ_DATABREACH - AREA AFFARI GENERALI, MODULI INTERNI",
"titolo": "AREA AFFARI GENERALI, MODULI INTERNI"
},
{
"tagModulo": "ERASMUS_KA131_MOBILITY",
"label": "ERASMUS_KA131_MOBILITY - AREA DIDATTICA - MOBILITY",
"titolo": "AREA DIDATTICA - MOBILITY"
},
{
"tagModulo": "ERASMUS_KA171_MOBILITY",
"label": "ERASMUS_KA171_MOBILITY - AREA DIDATTICA - MOBILITY",
"titolo": "AREA DIDATTICA - MOBILITY"
},
{
"tagModulo": "ESONERO_INSEGNAMENTI_SEMESTRE_APERTO",
"label": "ESONERO_INSEGNAMENTI_SEMESTRE_APERTO - AREA DIDATTICA - SEMETRE_APERTO",
"titolo": "AREA DIDATTICA - SEMETRE_APERTO"
},
{
"tagModulo": "Richiesta_variazione_BUDGET",
"label": "Richiesta_variazione_BUDGET - AREA_ECONOMICO_FINANZIARIA , MODULI_INTERNI",
"titolo": "AREA_ECONOMICO_FINANZIARIA , MODULI_INTERNI"
},
{
"tagModulo": "20260224090926_BRIC_ATTIVAZIONE",
"label": "20260224090926_BRIC_ATTIVAZIONE - AREA PERSONALE E ORGANIZZAZIONE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE"
},
{
"tagModulo": "CORSO_ESTERNO_ISCRIZIONI_MULTIPLE",
"label": "CORSO_ESTERNO_ISCRIZIONI_MULTIPLE - AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE"
},
{
"tagModulo": "RICHIESTA_CORSO_ESTERNO",
"label": "RICHIESTA_CORSO_ESTERNO - AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE"
},
{
"tagModulo": "RICHIESTA_CORSO_INTERNO",
"label": "RICHIESTA_CORSO_INTERNO - AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - FORMAZIONE"
},
{
"tagModulo": "PRE_PRODUZIONE_Richiesta_autorizzazione_incarichi_extralavorativi",
"label": "PRE_PRODUZIONE_Richiesta_autorizzazione_incarichi_extralavorativi - AREA PERSONALE E ORGANIZZAZIONE, MODULI_INTERNI",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE, MODULI_INTERNI"
},
{
"tagModulo": "SCHEDA_DEST_LAV",
"label": "SCHEDA_DEST_LAV - AREA PERSONALE E ORGANIZZAZIONE, MODULI_INTERNI",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE, MODULI_INTERNI"
},
{
"tagModulo": "PTA52_DICH_ASSENZA_CONFL",
"label": "PTA52_DICH_ASSENZA_CONFL - Area Personale e Organizzazione - Moduli post-assunzione",
"titolo": "Area Personale e Organizzazione - Moduli post-assunzione"
},
{
"tagModulo": "PEV_2026_COLL_FUNZ",
"label": "PEV_2026_COLL_FUNZ - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "PEV_2026_OP_COLL",
"label": "PEV_2026_OP_COLL - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "PTA43_TRASF_A_PART-TIME",
"label": "PTA43_TRASF_A_PART-TIME - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "PTA44_TRASF_A_TEMPO_PIENO",
"label": "PTA44_TRASF_A_TEMPO_PIENO - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "PTA54_RICH_PERM_MATR",
"label": "PTA54_RICH_PERM_MATR - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "PTA55_COMN_AVVN_MATR",
"label": "PTA55_COMN_AVVN_MATR - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "Richiesta_autorizzazione_incarichi_extralavorativi",
"label": "Richiesta_autorizzazione_incarichi_extralavorativi - AREA PERSONALE E ORGANIZZAZIONE - PERSONALE",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - PERSONALE"
},
{
"tagModulo": "BRIC_ATTIVAZIONE",
"label": "BRIC_ATTIVAZIONE - AREA PERSONALE E ORGANIZZAZIONE - RICERCA",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - RICERCA"
},
{
"tagModulo": "IR_AZIONE_D_ATTIVAZIONE",
"label": "IR_AZIONE_D_ATTIVAZIONE - AREA PERSONALE E ORGANIZZAZIONE - RICERCA",
"titolo": "AREA PERSONALE E ORGANIZZAZIONE - RICERCA"
},
{
"tagModulo": "PROPOSTA_CCT_DOCENTE",
"label": "PROPOSTA_CCT_DOCENTE - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI"
},
{
"tagModulo": "PROPOSTA_CCT_DOCENTE_DEV",
"label": "PROPOSTA_CCT_DOCENTE_DEV - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI"
},
{
"tagModulo": "PROPOSTA_CCT_OPERATORE",
"label": "PROPOSTA_CCT_OPERATORE - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI"
},
{
"tagModulo": "PROPOSTA_CCT_OPERATORE_DEV",
"label": "PROPOSTA_CCT_OPERATORE_DEV - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI"
},
{
"tagModulo": "RequestForm_RIPARTIZIONE_CCT_DOCENTE",
"label": "RequestForm_RIPARTIZIONE_CCT_DOCENTE - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI"
},
{
"tagModulo": "RIPARTIZIONE_CCT_DSAN",
"label": "RIPARTIZIONE_CCT_DSAN - AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI",
"titolo": "AREA RICERCA E VALORIZZAZIONE - CONTRATTI E CONVENZIONI, MODULI_INTERNI"
},
{
"tagModulo": "CANDIDATURA_INCARICHI_COLLAUDO",
"label": "CANDIDATURA_INCARICHI_COLLAUDO - AREA SERVIZI GENERALI E MONITORAGGIO - EDILIZIA",
"titolo": "AREA SERVIZI GENERALI E MONITORAGGIO - EDILIZIA"
},
{
"tagModulo": "RICH_SUBAPP_SUBAFF_DIST_V2",
"label": "RICH_SUBAPP_SUBAFF_DIST_V2 - AREA SERVIZI GENERALI E MONITORAGGIO - EDILIZIA",
"titolo": "AREA SERVIZI GENERALI E MONITORAGGIO - EDILIZIA"
},
{
"tagModulo": "GESTIONE_SITI_WEB_AGG_REF_TECNICO",
"label": "GESTIONE_SITI_WEB_AGG_REF_TECNICO - AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB",
"titolo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
},
{
"tagModulo": "GESTIONE_SITI_WEB_CHIUS_ANTICIP",
"label": "GESTIONE_SITI_WEB_CHIUS_ANTICIP - AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB",
"titolo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
},
{
"tagModulo": "GESTIONE_SITI_WEB_NUOVO",
"label": "GESTIONE_SITI_WEB_NUOVO - AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB",
"titolo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
},
{
"tagModulo": "GESTIONE_SITI_WEB_TRASF_RESP",
"label": "GESTIONE_SITI_WEB_TRASF_RESP - AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB",
"titolo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
},
{
"tagModulo": "RequestForm_GESTIONE_SITI_WEB_NUOVO",
"label": "RequestForm_GESTIONE_SITI_WEB_NUOVO - AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB",
"titolo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
},
{
"tagModulo": "Relazione_Annuale_Centro",
"label": "Relazione_Annuale_Centro - MODULI_INTERNI",
"titolo": "MODULI_INTERNI"
},
{
"tagModulo": "MOD_A13_RICH_CERTIF",
"label": "MOD_A13_RICH_CERTIF - SEGRETERIA DIDATTICA",
"titolo": "SEGRETERIA DIDATTICA"
},
{
"tagModulo": "FORMAZIONE_01",
"label": "FORMAZIONE_01 - TEST",
"titolo": "TEST"
},
{
"tagModulo": "FORMAZIONE_02",
"label": "FORMAZIONE_02 - TEST",
"titolo": "TEST"
},
{
"tagModulo": "MAMMI_MODULO_TESTING",
"label": "MAMMI_MODULO_TESTING - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST",
"label": "TEST - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST_ANTHESI_RSI",
"label": "TEST_ANTHESI_RSI - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST_CIE",
"label": "TEST_CIE - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST_IDEM",
"label": "TEST_IDEM - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST_PAOLAZ",
"label": "TEST_PAOLAZ - TEST",
"titolo": "TEST"
},
{
"tagModulo": "TEST_SPID",
"label": "TEST_SPID - TEST",
"titolo": "TEST"
},
{
"tagModulo": "RequestForm_EDILIZIA_RDA_MANUTENZIONE",
"label": "RequestForm_EDILIZIA_RDA_MANUTENZIONE - TEST,MODULI_INTERNI",
"titolo": "TEST,MODULI_INTERNI"
},
{
"tagModulo": "RequestForm_FORM_03",
"label": "RequestForm_FORM_03 - TEST,MODULI_INTERNI",
"titolo": "TEST,MODULI_INTERNI"
},
{
"tagModulo": "RequestForm_FORM_05",
"label": "RequestForm_FORM_05 - TEST,MODULI_INTERNI",
"titolo": "TEST,MODULI_INTERNI"
},
{
"tagModulo": "ANTH_PDF_DINAMICO",
"label": "ANTH_PDF_DINAMICO - TEST,MODULI_INTERNI",
"titolo": "TEST,MODULI_INTERNI"
},
{
"tagModulo": "RequestForm_FORM_04",
"label": "RequestForm_FORM_04 - TEST,MODULI_INTERNI",
"titolo": "TEST,MODULI_INTERNI"
}
]
}
@@ -1,354 +0,0 @@
info:
name: elixPro - Get modules list
type: http
seq: 2
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimenti"
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: https://unipr.elixforms.it/eP/elixpro-studio/api/elixpro/procedimenti
method: GET
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 12:30:54 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "4521"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true,
"data": [
{
"id_object": 34108,
"procedimento_tag": "formazione_elixpro_studio",
"titolo": "Formazione elixPro Studio",
"attivo": true,
"last_update_ts": "2026-07-07T09:11:14.371528Z",
"moduli": [
{
"tag_modulo": "RequestForm_FORM_05",
"gruppi_accesso_ids": [
104
],
"gruppi_accesso": [
{
"id": 104,
"name": "Operatore di test"
}
],
"gruppi_accesso_raw": "104"
}
]
},
{
"id_object": 17145,
"procedimento_tag": "procedimento_liqc",
"titolo": "Liquidazione compensi in conto terzi",
"attivo": true,
"last_update_ts": "2025-11-10T09:45:38.046463Z",
"moduli": [
{
"tag_modulo": "RequestForm_RIPARTIZIONE_CCT_DOCENTE",
"gruppi_accesso_ids": [
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82
],
"gruppi_accesso": [
{
"id": 55,
"name": "Procedimento LIQC - Dip. Discipl. Umanistiche, Sociali e Imprese Cult."
},
{
"id": 56,
"name": "Procedimento LIQC - Dip. Giurisprudenza, Studi Politici e Internazionali"
},
{
"id": 57,
"name": "Procedimento LIQC - Dip. Ingegneria e Architettura"
},
{
"id": 58,
"name": "Procedimento LIQC - Dip. Medicina e Chirurgia"
},
{
"id": 59,
"name": "Procedimento LIQC - Dip. Sc. Chimiche, Vita e Sostenibilita' Ambientale"
},
{
"id": 60,
"name": "Procedimento LIQC - Dip. Scienze Economiche e Aziendali"
},
{
"id": 61,
"name": "Procedimento LIQC - Dip. Scienze Matematiche, Fisiche e Informatiche"
},
{
"id": 62,
"name": "Procedimento LIQC - Dip. Scienze Medico-Veterinarie"
},
{
"id": 63,
"name": "Procedimento LIQC - Dip. Scienze degli Alimenti e del Farmaco"
},
{
"id": 64,
"name": "Procedimento LIQC - Dip. Ingegneria Sist. e Tec. DISTI"
},
{
"id": 65,
"name": "Procedimento LIQC - Centri di Marina Cassano"
},
{
"id": 66,
"name": "Procedimento LIQC - CSAC"
},
{
"id": 67,
"name": "Procedimento LIQC - Centro Accoglienza e Inclusione (C.A.I)"
},
{
"id": 68,
"name": "Procedimento LIQC - Centro Linguistico di Ateneo (C.L.A.)"
},
{
"id": 69,
"name": "Procedimento LIQC - Centro Studi Catulliani - C.S.C."
},
{
"id": 70,
"name": "Procedimento LIQC - Centro Servizi E- Learning"
},
{
"id": 71,
"name": "Procedimento LIQC - Centro Serv. per Salute, Igiene Sicurezza lavoro"
},
{
"id": 72,
"name": "Procedimento LIQC - CENTROACQUE.EU"
},
{
"id": 73,
"name": "Procedimento LIQC - CERIT"
},
{
"id": 74,
"name": "Procedimento LIQC - CAPAS"
},
{
"id": 75,
"name": "Procedimento LIQC - UNIPR-CO LAB"
},
{
"id": 76,
"name": "Procedimento LIQC - CeRS"
},
{
"id": 77,
"name": "Procedimento LIQC - Centro Universitario di Odontoiatria"
},
{
"id": 78,
"name": "Procedimento LIQC - MILC"
},
{
"id": 79,
"name": "Procedimento LIQC - DISS"
},
{
"id": 80,
"name": "Procedimento LIQC - SEM"
},
{
"id": 81,
"name": "Procedimento LIQC - CeFID"
},
{
"id": 82,
"name": "Procedimento LIQC - Dip. Test"
}
],
"gruppi_accesso_raw": "55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82"
}
]
},
{
"id_object": 34093,
"procedimento_tag": "test_01",
"titolo": "Procedimento test",
"attivo": true,
"last_update_ts": "2026-07-07T08:07:08.199161Z",
"moduli": [
{
"tag_modulo": "RequestForm_FORM_03",
"gruppi_accesso_ids": [
103
],
"gruppi_accesso": [
{
"id": 103,
"name": "Test 01"
}
],
"gruppi_accesso_raw": "103"
},
{
"tag_modulo": "RequestForm_FORM_04",
"gruppi_accesso_ids": [
103
],
"gruppi_accesso": [
{
"id": 103,
"name": "Test 01"
}
],
"gruppi_accesso_raw": "103"
}
]
},
{
"id_object": 35281,
"procedimento_tag": "edilizia_rda_manutenzione_wf",
"titolo": "RIchiesta di Acquisto per Manutenzione",
"attivo": true,
"last_update_ts": "2026-07-23T12:38:06.015558Z",
"moduli": [
{
"tag_modulo": "RequestForm_EDILIZIA_RDA_MANUTENZIONE",
"gruppi_accesso_ids": [
113,
112,
111,
114
],
"gruppi_accesso": [
{
"id": 113,
"name": "RDA MANUT - Area Edilizia - Dirigente"
},
{
"id": 112,
"name": "RDA MANUT - Area Edilizia - Ufficio Tecnico"
},
{
"id": 111,
"name": "RDA MANUT - Contabilita"
},
{
"id": 114,
"name": "RDA MANUT - U.O.T. Acquisti"
}
],
"gruppi_accesso_raw": "113,112,111,114"
}
]
},
{
"id_object": 34334,
"procedimento_tag": "gestione_siti_web_nuovo_wf",
"titolo": "Richiesta di fornitura nuovo sottodominio ed eventuale sito web tematico",
"attivo": true,
"last_update_ts": "2026-07-08T14:01:32.961486Z",
"moduli": [
{
"tag_modulo": "RequestForm_GESTIONE_SITI_WEB_NUOVO",
"gruppi_accesso_ids": [
108,
106,
107
],
"gruppi_accesso": [
{
"id": 108,
"name": "Gestione Siti Web - Autorizzatore"
},
{
"id": 106,
"name": "Gestione Siti Web - U.O. Comunicazione"
},
{
"id": 107,
"name": "Gestione Siti Web - U.O. Sistemi Tecnologici e Infrastruttura"
}
],
"gruppi_accesso_raw": "108,106,107"
}
]
},
{
"id_object": 34498,
"procedimento_tag": "test_todelete",
"titolo": "ToDelete",
"attivo": true,
"last_update_ts": "2026-07-13T09:09:03.817427Z",
"moduli": []
}
],
"meta": {
"id_index_procedimento": 625,
"id_index_modulo": 630,
"query_family": "xmlindex.i_sidx_<id_schema WF_PROCEDIMENTO> (+ moduli su i_sidx_<id_schema WF_MODULO>)"
}
}
@@ -1,142 +0,0 @@
info:
name: elixPro - Get procedimento (?)
type: http
seq: 8
http:
method: GET
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento?id_object=34334"
params:
- name: id_object
value: "34334"
type: query
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento?id_object=34334"
method: GET
params:
- name: id_object
value: "34334"
type: query
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:35:32 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "3135"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true,
"data": {
"index_row": {
"id_genericschema": 164762,
"offline": false,
"typology": "schemadata",
"id_object": 34334,
"obj_field": "ID_SCHEMADATA",
"id_link": 0,
"link_children": [
0
],
"link_parents": null,
"other_links": null,
"extendeddata": "<EXT description=\"\" title=\"WFProcedimento\"><SECTION key=\"SEC_0001\" order-key=\"ORD001\" title=\"Dati\"><COL0001 default=\"\" name=\"Tag\" order-key=\"ORD001\" read-only=\"no\" required=\"no\" search-default=\"no\" search-grouping=\"AND\" searchable=\"no\" title=\"Tag\" type=\"string\" visible=\"yes\" visible-in-search=\"no\" visible-in-search-backend=\"no\">gestione_siti_web_nuovo_wf</COL0001><COL0002 default=\"\" name=\"Titolo\" order-key=\"ORD002\" read-only=\"no\" required=\"no\" search-default=\"no\" search-grouping=\"AND\" searchable=\"no\" title=\"Titolo\" type=\"string\" visible=\"yes\" visible-in-search=\"no\" visible-in-search-backend=\"no\">Richiesta di fornitura nuovo sottodominio ed eventuale sito web tematico</COL0002><COL0004 default=\"&lt;non predefinito&gt;\" name=\"Attivo\" order-key=\"ORD003\" read-only=\"no\" required=\"no\" search-default=\"no\" search-grouping=\"AND\" searchable=\"no\" title=\"Attivo\" type=\"boolean\" visible=\"yes\" visible-in-search=\"no\" visible-in-search-backend=\"no\">true</COL0004></SECTION></EXT>",
"col0001": "gestione_siti_web_nuovo_wf",
"col0002": "Richiesta di fornitura nuovo sottodominio ed eventuale sito web tematico",
"col0004": true
},
"id_object": 34334,
"id_genericschema": 164762,
"procedimento_tag": "gestione_siti_web_nuovo_wf",
"titolo": "Richiesta di fornitura nuovo sottodominio ed eventuale sito web tematico",
"attivo": true,
"last_update_ts": "2026-07-08T14:01:32.961486Z",
"moduli": [
{
"index_row": {
"id_genericschema": 164763,
"offline": false,
"typology": "schemadata",
"id_object": 34334,
"obj_field": "ID_SCHEMADATA",
"id_link": 0,
"link_children": [
0
],
"link_parents": null,
"other_links": null,
"extendeddata": "<EXT description=\"\" title=\"WFModulo\"><SECTION key=\"SEC_0001\" order-key=\"ORD001\" title=\"Dati\"><COL0001 default=\"\" name=\"Tag_Modulo\" order-key=\"ORD001\" read-only=\"no\" required=\"no\" search-default=\"no\" search-grouping=\"AND\" searchable=\"no\" title=\"Tag Modulo\" type=\"string\" visible=\"yes\" visible-in-search=\"no\" visible-in-search-backend=\"no\">RequestForm_GESTIONE_SITI_WEB_NUOVO</COL0001><COL0002 name=\"ID_gruppi_di_gestione\" order-key=\"ORD002\" read-only=\"no\" required=\"no\" search-default=\"no\" search-grouping=\"AND\" searchable=\"no\" title=\"ID gruppi di gestione\" type=\"string\" visible=\"yes\" visible-in-search=\"no\" visible-in-search-backend=\"no\">108,106,107</COL0002></SECTION></EXT>",
"col0001": "RequestForm_GESTIONE_SITI_WEB_NUOVO",
"col0002": "108,106,107"
},
"tag_modulo": "RequestForm_GESTIONE_SITI_WEB_NUOVO",
"gruppi_accesso_ids": [
108,
106,
107
],
"gruppi_accesso": [
{
"id": 108,
"name": "Gestione Siti Web - Autorizzatore"
},
{
"id": 106,
"name": "Gestione Siti Web - U.O. Comunicazione"
},
{
"id": 107,
"name": "Gestione Siti Web - U.O. Sistemi Tecnologici e Infrastruttura"
}
],
"gruppi_accesso_raw": "108,106,107",
"id_genericschema": 164763,
"titolo_modulo": "AREA SISTEMI INFORMATIVI - GESTIONE SITI WEB"
}
]
}
}
@@ -1,53 +0,0 @@
info:
name: elixPro - Promote module to Production
type: http
seq: 12
http:
method: POST
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento"
body:
type: json
data: |-
{
"procedureTag": "module_tag_XXX"
}
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento"
method: POST
body:
type: json
data: |-
{
"procedureTag": "module_tag_XXX"
}
response:
status: 200
statusText: OK
body:
type: text
data: |-
{
"ok": true
}
@@ -1,108 +0,0 @@
info:
name: elixPro - Update associated groups
type: http
seq: 10
http:
method: POST
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/modulo/update"
body:
type: json
data: |-
{
"idGenericschema": 999999,
"tagModulo": "RequestForm_EDILIZIA_RDA_MANUTENZIONE",
"groupIdsCsv": "113,112,111,114"
}
auth: inherit
runtime:
scripts:
- type: tests
code: |-
test("ISIPSESSION cookie found", function () {
const isipsessionCookie = bru.cookies.get("ISIPSESSION");
expect(isipsessionCookie).to.not.be.null;
expect(isipsessionCookie).to.not.be.empty;
});
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
forwardAuthorizationHeader: false
examples:
- name: example
request:
url: "{{elixProStudioUrl}}/eP/elixpro-studio/api/elixpro/procedimento/modulo/update"
method: POST
body:
type: json
data: |-
{
"idGenericschema": 168022,
"tagModulo": "RequestForm_EDILIZIA_RDA_MANUTENZIONE",
"groupIdsCsv": "113,112,111,114"
}
response:
status: 200
statusText: OK
headers:
- name: date
value: Mon, 31 Aug 2026 13:22:25 GMT
- name: server
value: "Payara Server 6.2025.1 #badassfish"
- name: content-security-policy
value: "default-src https: data: 'unsafe-inline' 'unsafe-eval'; img-src 'self' blob: data: https:;"
- name: content-type
value: application/json;charset=UTF-8
- name: content-length
value: "11"
- name: x-frame-options
value: SAMEORIGIN
- name: strict-transport-security
value: max-age=31536000; includeSubDomains
- name: x-xss-protection
value: "1"
- name: x-content-type-options
value: nosniff
- name: referrer-policy
value: unsafe-url
- name: keep-alive
value: timeout=10, max=500
- name: connection
value: Keep-Alive
body:
type: json
data: |-
{
"ok": true
}
docs: |
# Richiesta
## Parametri
### idGenericschema
Il parametro `idGenericschema` non è immediatamente identificabile dalle altre API.
Per recuperare tale valore:
1. Chiamare la request _"elixPro - Get modules list"_
2. Nell'elenco dei risultati, cercare il modulo desiderato e annotare il valore della property `id_object`
3. Andare sulla AJ Console e cercare l'oggetto avente valore pari a `id_object`
4. Nel dettaglio selezionare lo schema _"WFModulo"_ e annotare il valore nella colonna _"ID Generic Schema"_
### tagModulo
Il parametro `tagModulo` indica quale TAG di modulo elixForms associare al flusso elixPro (a sua volta identificato indirettamente dal parametro `idGenericschema`!).
### groupIdsCsv
Il parametro `groupIdsCsv` è una lista di valori separati da virgola i cui elementi identificano i gruppi da associare al flusso elixPro, cioé i gruppi i cui membri potranno lavorare le rispettive fasi del flusso.
Gli identificativi dei gruppi sono gli ID così come sono visibili sul Backoffice, o recuperabili tramite la request _"elixPro - Get groups catalog"_.
@@ -1,7 +0,0 @@
info:
name: elixPro Studio
type: folder
seq: 3
request:
auth: inherit
@@ -44,13 +44,6 @@ runtime:
[% percentualeEcoFondo = ritenutaEcoFondo * 100; %] [% percentualeEcoFondo = ritenutaEcoFondo * 100; %]
[% percentualeEcoWelfare = ritenutaEcoWelfare * 100; %] [% percentualeEcoWelfare = ritenutaEcoWelfare * 100; %]
[!--
1. [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoAmministrazione %][/FORMAT]%<br/>
2. [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoFondo %][/FORMAT]%<br/>
3. [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoWelfare %][/FORMAT]%<br/>
4. [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]%<br/>
--]
<html> <html>
<head> <head>
<style> <style>
@@ -78,7 +71,7 @@ runtime:
<body> <body>
<!-- Header con logo UniPR come nel template standard --> <!-- Header con logo UniPR come nel template standard -->
<h2>IL DIRIGENTE</h2> <h2>IL DIRETTORE GENERALE</h2>
<p>visti lo Statuto dell'Universit&agrave; degli Studi di Parma ed il Regolamento Generale di Ateneo;</p> <p>visti lo Statuto dell'Universit&agrave; degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
@@ -90,7 +83,9 @@ runtime:
<!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> --> <!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> -->
<p>richiamato integralmente il testo del contratto da stipularsi tra l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];</p> <p>richiamato integralmente il testo del contratto da stipularsi tra l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] e [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];</p>
<!-- Indicazione domanda elixForms: "vista la domanda n.° <ID_DOMANDA>, ricevuta n.° <ID_RICEVUTA> (pervenuta il <DATA_INOLTRO> tramite il portale "Procedure Online");" -->
<p>ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;</p> <p>ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;</p>
@@ -99,7 +94,7 @@ runtime:
<ol> <ol>
<li>di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];</li> <li>di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];</li>
<li>di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verr&agrave; erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN], da assoggettare alle ritenute di cui all'art. 6, comma 1 del "Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza e didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoAmministrazione %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoFondo %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoWelfare %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];</li> <li>di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verr&agrave; erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 1 del "Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza e didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoAmministrazione %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoFondo %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del [FORMAT type="number" pattern="#,##0.##"][% percentualeEcoWelfare %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];</li>
<li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li> <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>
</ol> </ol>
@@ -45,13 +45,6 @@ runtime:
[% percentualeNonEcoFondo = ritenutaNonEcoFondo * 100; %] [% percentualeNonEcoFondo = ritenutaNonEcoFondo * 100; %]
[% percentualeNonEcoWelfare = ritenutaNonEcoWelfare * 100; %] [% percentualeNonEcoWelfare = ritenutaNonEcoWelfare * 100; %]
[!--
1. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoAmministrazione %][/FORMAT]%<br/>
2. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoFondo %][/FORMAT]%<br/>
3. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoWelfare %][/FORMAT]%<br/>
4. [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]%<br/>
--]
<html> <html>
<head> <head>
<style> <style>
@@ -79,7 +72,7 @@ runtime:
<body> <body>
<!-- Header con logo UniPR come nel template standard --> <!-- Header con logo UniPR come nel template standard -->
<h2>IL DIRIGENTE</h2> <h2>IL DIRETTORE GENERALE</h2>
<p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";</p> <p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";</p>
@@ -101,7 +94,9 @@ runtime:
<p>verificata l'applicabilit&agrave; dell'art. 15 "Accordi fra Pubbliche Amministrazioni" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la propriet&agrave; condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;</p> <p>verificata l'applicabilit&agrave; dell'art. 15 "Accordi fra Pubbliche Amministrazioni" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la propriet&agrave; condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;</p>
<p>richiamato integralmente il testo dell'accordo da stipularsi tra l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];</p> <p>richiamato integralmente il testo dell'accordo da stipularsi tra l'Universit&agrave; degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] e [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilit&agrave; scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];</p>
<!-- Indicazione domanda elixForms: "vista la domanda n.° <ID_DOMANDA>, ricevuta n.° <ID_RICEVUTA> (pervenuta il <DATA_INOLTRO> tramite il portale "Procedure Online");" -->
<p>ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;</p> <p>ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;</p>
@@ -114,7 +109,7 @@ runtime:
<li>di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza e didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoAmministrazione %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoFondo %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoWelfare %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];</li> <li>di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza e didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoAmministrazione %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoFondo %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoWelfare %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];</li>
[/THEN][/IF] [/THEN][/IF]
<li>di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attivit&agrave; relativa.</li> <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>
</ol> </ol>
<div class="firma"> <div class="firma">
@@ -45,13 +45,6 @@ runtime:
[% percentualeNonEcoFondo = ritenutaNonEcoFondo * 100; %] [% percentualeNonEcoFondo = ritenutaNonEcoFondo * 100; %]
[% percentualeNonEcoWelfare = ritenutaNonEcoWelfare * 100; %] [% percentualeNonEcoWelfare = ritenutaNonEcoWelfare * 100; %]
[!--
1. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoAmministrazione %][/FORMAT]%<br/>
2. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoFondo %][/FORMAT]%<br/>
3. [FORMAT type="number" pattern="#,##0.##"][% percentualeNonEcoWelfare %][/FORMAT]%<br/>
4. [FORMAT type="number" pattern="#,##0.##"][% ulterioreRitenuta2Max %][/FORMAT]%<br/>
--]
<html> <html>
<head> <head>
<style> <style>
@@ -79,7 +72,7 @@ runtime:
<body> <body>
<!-- Header con logo UniPR come nel template standard --> <!-- Header con logo UniPR come nel template standard -->
<h2>IL DIRIGENTE</h2> <h2>IL DIRETTORE GENERALE</h2>
<p>visto il Decreto Ministeriale 30 novembre 2021 recante "Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52";</p> <p>visto il Decreto Ministeriale 30 novembre 2021 recante "Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52";</p>
@@ -99,6 +92,8 @@ runtime:
<p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p> <p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p>
<!-- Indicazione domanda elixForms: "vista la domanda n.° <ID_DOMANDA>, ricevuta n.° <ID_RICEVUTA> (pervenuta il <DATA_INOLTRO> tramite il portale "Procedure Online");" -->
<p>ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;</p> <p>ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attivit&agrave; di ricerca, consulenza, didattica e alta formazione eseguite dall'Universit&agrave; degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;</p>
<h2>determina</h2> <h2>determina</h2>
@@ -3,34 +3,17 @@ color: "#2E8A54"
variables: variables:
- name: elixFormsApiUrl - name: elixFormsApiUrl
value: https://procedure.unipr.it/eF/services/api value: https://procedure.unipr.it/eF/services/api
description: ""
- name: elixFormsApiUsername - name: elixFormsApiUsername
value: "{{process.env.elixFormsApiUsername}}" value: "{{process.env.elixFormsApiUsername}}"
description: ""
- name: elixFormsWsAuthenticationToken - name: elixFormsWsAuthenticationToken
value: "{{process.env.elixFormsWsAuthenticationToken}}" value: "{{process.env.elixFormsWsAuthenticationToken}}"
description: ""
- name: elixFormsApiUrl_Default - name: elixFormsApiUrl_Default
value: https://procedure.unipr.it/eF/api value: https://procedure.unipr.it/eF/api
description: ""
- name: elixFormsApiPassword - name: elixFormsApiPassword
value: "{{process.env.elixFormsApiPassword}}" value: "{{process.env.elixFormsApiPassword}}"
description: "" - name: elixFormsRootUrl
- name: elixFormsConsoleUrl
value: https://console-unipr.elixforms.it value: https://console-unipr.elixforms.it
description: ""
- name: elixFormsConsoleUsername - name: elixFormsConsoleUsername
value: "{{process.env.elixFormsConsoleUsername}}" value: "{{process.env.elixFormsConsoleUsername}}"
description: ""
- name: elixFormsConsolePassword - name: elixFormsConsolePassword
value: "{{process.env.elixFormsConsolePassword}}" value: "{{process.env.elixFormsConsolePassword}}"
description: ""
- name: elixProStudioUrl
value: https://unipr.elixforms.it
description: ""
- name: elixProStudioUsername
value: "{{process.env.elixProStudioUsername}}"
description: ""
- name: elixProStudioPassword
value: "{{process.env.elixProStudioPassword}}"
description: ""
+4 -7
View File
@@ -1,10 +1,10 @@
{ {
"Config": { "Config": {
"ExcludeFromBruno": [ "ExcludeFromBruno": [
"elixFormsRootUrl",
"elixFormsApiUrl", "elixFormsApiUrl",
"elixFormsApiUrl_Default", "elixFormsApiUrl_Default",
"elixFormsConsoleUrl", "elixFormsRootUrl",
"elixProStudioUrl",
"esse3apiRootUrl", "esse3apiRootUrl",
"IdemApiUrl", "IdemApiUrl",
"IrisApiUrl", "IrisApiUrl",
@@ -16,15 +16,12 @@
"elixForms API v2": { "elixForms API v2": {
"elixFormsApiUrl": "https://console-unipr.elixforms.it/eF/services/api", "elixFormsApiUrl": "https://console-unipr.elixforms.it/eF/services/api",
"elixFormsApiUrl_Default": "https://console-unipr.elixforms.it/eF/api", "elixFormsApiUrl_Default": "https://console-unipr.elixforms.it/eF/api",
"elixFormsConsoleUrl": "https://console-unipr.elixforms.it", "elixFormsRootUrl": "https://console-unipr.elixforms.it",
"elixProStudioUrl": "https://unipr.elixforms.it",
"elixFormsWsAuthenticationToken": null,
"elixFormsApiUsername": null, "elixFormsApiUsername": null,
"elixFormsApiPassword": null, "elixFormsApiPassword": null,
"elixFormsConsoleUsername": null, "elixFormsConsoleUsername": null,
"elixFormsConsolePassword": null, "elixFormsConsolePassword": null,
"elixProStudioUsername": null, "elixFormsWsAuthenticationToken": null
"elixProStudioPassword": null
}, },
"ESSE3 Anagrafica API": { "ESSE3 Anagrafica API": {
"esse3apiRootUrl": "https://unipr2.esse3.pp.cineca.it/e3rest/api", "esse3apiRootUrl": "https://unipr2.esse3.pp.cineca.it/e3rest/api",
+5 -9
View File
@@ -1,21 +1,17 @@
function Initialize-PowerShellEnvironment { function Import-PowerShellYamlModule {
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 Import-Module powershell-yaml -ErrorAction SilentlyContinue
Write-Host "PowerShell environment initialized." -ForegroundColor Green
} }
function Invoke-Main { function Invoke-Main {
Write-Host "Preparing environment..." -ForegroundColor Cyan Write-Host "Preparing environment..." -ForegroundColor Cyan
Write-Host Write-Host
Initialize-PowerShellEnvironment Write-Host "Initializing PowerShell environment..." -ForegroundColor Yellow
Import-PowerShellYamlModule
Write-Host "PowerShell environment initialized." -ForegroundColor Green
Write-Host Write-Host
Write-Host "Environment preparation complete!" -ForegroundColor Green Write-Host "Environment preparation complete!" -ForegroundColor Green
} }
Invoke-Main Invoke-Main
+48
View File
@@ -0,0 +1,48 @@
$setupToolsScript = (Resolve-Path -LiteralPath (Join-Path $PSScriptRoot '..\scripts\setup-tools.ps1')).Path
$expectedOutput = @(
'Preparing environment...'
''
'Initializing PowerShell environment...'
'PowerShell environment initialized.'
''
'Environment preparation complete!'
) -join "`n"
Describe 'setup-tools.ps1' {
It 'imports powershell-yaml and preserves the user-facing output' {
$originalModulePath = $env:PSModulePath
try {
$moduleRoot = Join-Path $TestDrive 'available-modules'
$moduleDirectory = Join-Path $moduleRoot 'powershell-yaml'
$null = New-Item -ItemType Directory -Path $moduleDirectory
Set-Content -LiteralPath (Join-Path $moduleDirectory 'powershell-yaml.psm1') -Value ''
$env:PSModulePath = $moduleRoot
$escapedScriptPath = $setupToolsScript.Replace("'", "''")
$command = "& '$escapedScriptPath'; if (-not (Get-Module -Name powershell-yaml)) { exit 42 }"
$output = @(& pwsh -NoProfile -Command $command 6>&1 | ForEach-Object { $_.ToString() })
$LASTEXITCODE | Should Be 0
($output -join "`n") | Should Be $expectedOutput
}
finally {
$env:PSModulePath = $originalModulePath
}
}
It 'continues successfully when powershell-yaml is unavailable' {
$originalModulePath = $env:PSModulePath
try {
$env:PSModulePath = Join-Path $TestDrive 'missing-modules'
$output = @(& pwsh -NoProfile -File $setupToolsScript 6>&1 | ForEach-Object { $_.ToString() })
$LASTEXITCODE | Should Be 0
($output -join "`n") | Should Be $expectedOutput
}
finally {
$env:PSModulePath = $originalModulePath
}
}
}