-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PIN-5776 descriptor state waiting for approval changes and analysis #1325
Open
Viktor-K
wants to merge
15
commits into
develop
Choose a base branch
from
PIN-5776-descriptor-state-waiting-approval
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+241
−137
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…t and Wating for approval
…ate DRAFT or Waiting for approval
…iting for approval state
Viktor-K
changed the title
PIN-5776 descriptor state waiting approval
PIN-5776 descriptor state waiting for approval changes and analysis
Dec 20, 2024
Viktor-K
requested review from
beetlecrunch,
galales,
AsterITA,
Carminepo2 and
taglioni-r
as code owners
December 20, 2024 11:29
sandrotaje
approved these changes
Dec 23, 2024
ecamellini
reviewed
Dec 24, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some minor naming comments plus a proposal on pattern matching for all the state checks!
AsterITA
reviewed
Jan 17, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work, I agree with @ecamellini points
ecamellini
approved these changes
Jan 21, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes PIN-5776
Descrizione
Con il rilascio della feature capofila è stato aggiunto il nuovo stato WAITING_FOR_APPROVAL per i descriptor degli eservice. Durante lo sviluppo di questa PR sono stati analizzati gli usi e logiche legate agli stati DRAFT e WAITING_FOR_APPROVAL dei descriptor di un eservice. In alcuni punti sono state applicate modifiche per permettere alle logiche di eseguire le operazioni anche quando lo stato del descriptor è quello di WAITING_FOR_APPROVAL (WFA).
In sintesi si considera lo stato WFA come un DRAFT e il descrittore è considerato azionabile e valido alle operazioni se si trova in uno degli altri stati : SUSPENDED, ARCHIVED, DEPRECATED, PUBLISHED.
🚀 API Gateway
Tutte le seguenti API arricchiscono le risposte con l'ultimo descrittore valido di un dato eservice, definendo lo stato la versione e serverURLS, con le modifiche di questa PR viene ritenuto valido un descrittore che non si trova ne nello stato di DRAFT ne in WFA. Di seguito le API affette da questa modifica:
Tenant API
/organizations/origin/:origin/externalId/:externalId/eservices
: restituisce gli eservice associati a un’organizzazione, con i rispettivi descrittori validi.Catalog API
/eservices/:eserviceId
recupera le informazioni di un eservice specifico/eservices/:eserviceId/descriptors
ritorna la lista dei descriptor, In questo metodo viene applicato il filtro isValidDescriptorState che elimina i descrittori non validi./eservices/:eserviceId/descriptors/:descriptorId
utilizza l’asserzione assertNotValidDescriptor per verificare che il descrittore sia valido.🍽️ Backend for Frontend
Converter
Il converter toBffCatalogDescriptorEService usato per la creazione del payload di risposta, filtra dalla risposta i descrittori non validi. Di seguito le API affette da questa modifica:
GET
/catalog/eservices/:eserviceId/descriptor/:descriptorId
usa il metodo getCatalogEServiceDescriptor, che applica il filtro sopra descritto.GET
/export/eservices/:eserviceId/descriptors/:descriptorId
usa il metodo verifyExportEligibility che ora verifica che un descrittore non sia valido, oltre a controllare altre condizioni di idoneità.Validatori
Sono state modificate le logiche nei validatori del BFF per identificare i descrittori non validi, ossia quelli in stato DRAFT o WFA.
Producer Eservice
/producers/eservices
utilizza il metodo getProducerEServices, che arricchisce i dati con la funzione enhanceProducerEService. Quest’ultima include un campodraftDescriptor
, che contiene descrittori in stato DRAFT e WFA.Visibilità descriptor esportati
La rotte che prevedono l'export degli eservice dopo le modifiche esporteranno solo descriptor che non sono ne in stato DRAFT ne WFA, rotta di riferimento
/export/eservices/:eserviceId/descriptors/:descriptorId
Converter from Event V1
Nel converter protobufConverterFromV1 si utilizza solo lo stato DRAFT per determinare se aggiungere il campo publishedAt. Non verrà aggiunta logica per gestire lo stato WFA, in quanto gli eventi V1 non sono più gestiti.
Converter from Event V2
Gestiscono il nuovo campo è gestito correttamente
⚙️ Catalog Process
Tutte le seguenti operazioni di catalog process richiedono che l’eservice sia nello stato DRAFT per essere eseguite:
• updateEService
• deleteEService
• createRiskAnalysis
• updateRiskAnalysis
• deleteRiskAnalysis
Descriptor visibility API payload response
Le api che restituiscono dai di un eservice utilizzano la funzione
applyVisibilityToEService
che con le nuove modifiche considera visibili tutti i descrittori che non sono né in stato DRAFT né in stato WFA.Le seguenti rotte ora filtrano i descriptor restituendo solo quelli "validi":
/eservices
(listing eservice)/eservices/:eServiceId
(retrieve eservice by id)/eservices/:eServiceId/descriptors/:descriptorId/documents/:documentId
, non ritorna dei descriptor ma sfrutta gli stesi criteri per determinare che tra i descrittori validi non ci sia quello contenuto nella richiesta.Upload Document
Attualmente, è possibile caricare un documento solo se lo stato del descrittore è uno dei seguenti: DRAFT, PUBLISHED, SUSPENDED, DEPRECATED.
Delete Document
Se l’operazione riguarda la cancellazione di un documento, viene tenuto conto anche dello stato WFA del descrittore.
Delete Draft Descriptor & Update Draft Descriptor
Queste operazioni possono avvenire solo se il descrittore è nello stato DRAFT. Lo stato WFA non è considerato.
Publish Descriptor
La pubblicazione di un descrittore può avvenire solo se il descrittore è nello stato DRAFT. Lo stato WFA non è considerato.
Clone Descriptor
Il clone di un descrittore avviene sempre se il descrittore è nello stato DRAFT. Lo stato WFA non è considerato.
Update Eservice Description
L’operazione di aggiornamento della descrizione di un eservice (updateEServiceDescription) non considera lo stato WFA.
Test
✅ test updated