Skip to content
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

ZTC: scope catalogi.geforceerd-verwijderen bij DELETE onduidelijk #2478

Open
johannesbattjes opened this issue Sep 21, 2024 · 8 comments
Open

Comments

@johannesbattjes
Copy link

johannesbattjes commented Sep 21, 2024

Bij verschillende entiteiten staat bij DELETE: WT-Claims ( (catalogi.schrijven | catalogi.geforceerd-verwijderen)).
Daarboven staat Verwijder een XXXTYPE. Dit kan alleen als het een concept betreft.
Van de eerste scope is het duidelijk: de applicatie die verwijdert mag dit alleen doen als deze applicatie de scope catalogi-schrijven heeft in de AC.
Van de tweede is niet duidelijk wat de bedoeling is en ik kan dit nergens vinden in de standaard. Via Google kun je deze Pagina vinden waarin staat: catalogi.geforceerd-verwijderen Laat toe om: Gepubliceerde types geforceerd te verwijderen. Alle resources zijn beschikbaar. (Deze pagina roept op zichzelf de volgende vragen op: waarom staat dit niet in de standaard, en waarom is deze lijst met scopes niet compleet.)

Maar zodra een zaaktype gepubliceerd is kan er een zaak mee aangemaakt zijn zonder dat de tool waarmee geforceerd verwijderd wordt dat "weet". Wij zullen vooralsnog deze permissie negeren in de ZTC omdat hij te "gevaarlijk" is.

Kunnen jullie achterhalen met welk doel deze scope is toegevoegd? Onder welke voorwaarden mag deze worden toegepast?

@HenriKorver
Copy link
Collaborator

HenriKorver commented Sep 24, 2024

... waarom staat dit niet in de standaard ...

Goede vraag. Ik ben het eens dat de pagina's waar de scopes beschreven worden een duidelijke goed vindbare plek binnen de standaard moeten krijgen. Nu staan deze pagina's in de cloud-omgeving van de referentie-implementaties waar ze eigenlijk niet thuis horen. Bovendien is de doorontwikkeling van de referentie-implementaties stopgezet.

...en waarom is deze lijst met scopes niet compleet.)

Wat is er niet compleet aan deze lijst met scopes?

@johannesbattjes
Copy link
Author

Van bijvoorbeeld zaken staat alleen de scope zaken.lezen vermeld.

@HenriKorver
Copy link
Collaborator

De scope zaken.lezen zou volgens mij ook de enige scope van de Zaken API moeten zijn die overgenomen wordt door de Catalogi API. Immers een consumer van de Zaken API die rechten heeft om zaken te lezen zou ook de bijbehorende zaaktypes moeten kunnen ophalen (= lezen) uit de Catalogi API.

Maar een consumer van de Zaken API met rechten om zaken aan te maken of bij te werken zal nooit automatisch rechten hebben om zaaktypen aan te maken of te bewerken in de Catalogi API.

@HenriKorver
Copy link
Collaborator

Maar zodra een zaaktype gepubliceerd is kan er een zaak mee aangemaakt zijn zonder dat de tool waarmee geforceerd verwijderd wordt dat "weet". Wij zullen vooralsnog deze permissie negeren in de ZTC omdat hij te "gevaarlijk" is.

Deze problematiek speelt toch ook al bij de scope catalogi.geforceerd-schrijven (zie issue #2477)? Immers in dat geval "weet" de applicatie (bijv. ZTC-beheertool) die een zaaktype bijwerkt ook niet welke zaken geraakt zullen worden door de wijziging. Dat zal allemaal out-of-band uitgezocht moeten worden door de super user van het ZTC-beheertool.

@johannesbattjes
Copy link
Author

De scope zaken.lezen zou volgens mij ook de enige scope van de Zaken API moeten zijn die overgenomen wordt door de Catalogi API. Immers een consumer van de Zaken API die rechten heeft om zaken te lezen zou ook de bijbehorende zaaktypes moeten kunnen ophalen (= lezen) uit de Catalogi API.

Ok - als je het zo bedoelt snap ik het maar waarom staat dat dan nergens uitgelegd?
Ook lijkt het mij nodeloos ingewikkeld. Je kunt de applicatie die de zaken leest immers de scope catalogi.lezen toekennen in de AC. Dat althans doen wij in productie en het werkt prima.

@johannesbattjes
Copy link
Author

Deze problematiek speelt toch ook al bij de scope catalogi.geforceerd-schrijven (zie issue #2477)?

Wat mij betreft mag die scope geforceerd schrijven weg. Maar inhoudelijk: het probleem speelt daar niet. De scope geforceerd wijzigen is bedoeld voor een correctie (althans dat neem ik aan). En correcties mogen alleen dingen zoals IOT's toevoegen aan het zaaktype, wat betekent dat bestaande zaken niet wijzigen. Terwijl bij het verwijderen van een zaaktype je niet weet hoeveel zaken je beinvloedt. Zelfs als je met een query kijkt of er al een zaak is met het te verwijderen type, kan er op dat moment een zaak met dat type aangemaakt worden. Het is ook niet nodig: als je een zaaktype niet goed vindt kun je hem direct beëindigen door eindegeldigheid een waarde te geven.
Maar misschien zijn er use cases waarbij verwijderen wel zin heeft - vandaar mijn vraag over doel en voorwaarden.

@HenriKorver
Copy link
Collaborator

HenriKorver commented Sep 25, 2024

Ok - als je het zo bedoelt snap ik het maar waarom staat dat dan nergens uitgelegd?

Het is mjjn interpretatie van hoe mijn voorganger(s) het bedoeld hebben. Maar daarbij lees ik door allerlei fouten in de standaard heen (zie uitleg hieronder).

Ook lijkt het mij nodeloos ingewikkeld. Je kunt de applicatie die de zaken leest immers de scope catalogi.lezen toekennen in de AC. Dat althans doen wij in productie en het werkt prima.

Eens en daarom stel ik voor om de scopes documenten.lezen en zaken.lezen te verwijderen uit de scopes van de Catalogi API. Deze scopes waren trouwens sowieso niet goed gedefinieerd. Er staat:

Laat toe om: leesoperaties uit te voeren vanaf de Zaken API. Alle resources zijn beschikbaar.

maar het zou zo geweest moeten zijn (althans dat is de enige zinnige interpretatie die ik eraan kan geven):

Laat toe om: leesoperaties uit te voeren vanaf consumers van de Zaken API. Alle resources zijn beschikbaar.

Ook stel ik voor om tevens dit stukje tekst uit de standaard te verwijderen:

afbeelding

@HenriKorver
Copy link
Collaborator

Het is ook niet nodig: als je een zaaktype niet goed vindt kun je hem direct beëindigen door eindegeldigheid een waarde te geven.

@johannesbattjes Interessante observatie, goed punt. Ik denk dat ik het met je eens ben.

Maar misschien zijn er use cases waarbij verwijderen wel zin heeft - vandaar mijn vraag over doel en voorwaarden.

@joeribekker, @sergei-maertens: Weten jullie use cases waarbij het "hard" verwijderen (lees DELETE) van zaaktypen zin heeft?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants