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

Uitgebreider filter op Object notificatie-abonnementen #405

Open
JanBrek opened this issue May 21, 2024 · 6 comments
Open

Uitgebreider filter op Object notificatie-abonnementen #405

JanBrek opened this issue May 21, 2024 · 6 comments

Comments

@JanBrek
Copy link

JanBrek commented May 21, 2024

Thema / Theme

Objecten API

Omschrijving / Description

Vraag
Diepere filtering naast bestaande objectType kenmerk.

Use case
Taken, betalingen, etc. zijn 1 objectType maar worden gelezen door meerdere ZACs (en later evt. meerdere portalen).
Om een overvloed aan notificaties te voorkomen en om evt. fouten in verwerking (verkeerde zac verwerkt een notificatie/object) te voorkomen willen we meer filtering op notificaties van objecten.

Voorstel
Omdat ik er niet van hou om met lege handen aan te komen hier alvast een voorstel. Maar een andere oplossing luister ik ook graag naar :)

  • Objecten API zoekt altijd in een 'notificatiekenmerken' veld wat een map is (geen geneste objecten).
  • Als dit veld aanwezig is wordt de inhoud in de 'kenmerken' van de notificatie toegevoegd.

Voorbeeld:
(uitgekleed) Object:
{
"caseId": "8b1a9419-3ae8-476e-bffd-976024879033",
"notificatiekenmerken": {
"origin": "erfpacht"
},
"aanvrager": {
"voornaam": "john",
"achternaam": "doe",
},
"aanvraaggegevens": {
"soortAanvraag": "c",
"toestemmingBenadering": true,
}
}

Resulteert in notificatie:
{
"actie": "update",
"kanaal": "objecten",
"resource": "object",
"kenmerken": {
"objectType": "https://objecttypen-zgw.test.denhaag.nl/api/v2/objecttypes/f7541170-d060-434a-9753-cf0db988a44f",
"origin": "erfpacht"
},
"hoofdObject": "https://objecten-zgw.test.denhaag.nl/api/v2/objects/a5d4926d-5685-4a26-808a-c4c69cc5e57f",
"resourceUrl": "https://objecten-zgw.test.denhaag.nl/api/v2/objects/a5d4926d-5685-4a26-808a-c4c69cc5e57f",
"aanmaakdatum": "2024-05-21T11:24:05.992Z"
}

Een andere oplossing zou zijn dit apart per objectType gaan vast te leggen in een apart API veld...

Toegevoegde waarde / Added value

Veel minder notificaties & load
Minder kans op per ongeluk verwerkte objecten (een ZAC verwerkt door slechte programmatuur een object van een ander ZAC)

Aanvullende opmerkingen / Additional context

No response

@JanBrek JanBrek added enhancement New feature or request triage labels May 21, 2024
@alextreme alextreme self-assigned this May 21, 2024
@alextreme alextreme changed the title Title here Additionele 'kenmerken' meesturen in notificaties afgegeven door de Objecten API May 21, 2024
@joeribekker joeribekker changed the title Additionele 'kenmerken' meesturen in notificaties afgegeven door de Objecten API Uitgebreider filter op Object notificatie-abonnementen May 21, 2024
@joeribekker
Copy link
Member

Taken, betalingen, etc. zijn 1 objectType maar worden gelezen door meerdere ZACs (en later evt. meerdere portalen).

But why are they the same objecttype?

In general we understand that filtering in a more flexible way is desired, because of the flexible nature of the Objects API.

We have "Channel", which has filter properties. The Channel is for objects in general. We cannot "set" filter properties per subscription.

We need to investigate whether we can sent objects as data from the Objects API to the Notificaties API, if that works, then allow flexible subscriptions.

Initial estimate, without investigating first: 4 weeks. I suggest we first make a timeboxed analysis/investigation, for about 1 week and then see if this is feasible or not before going all the way.

@alextreme
Copy link
Member

I'll discuss this issue further during refinement, there are multiple alternatives on how to accomplish what JanB requires so I'd like to estimate these individually

@joeribekker
Copy link
Member

Please add back triage when we need to triage it. For now, blocked.

@joeribekker joeribekker added blocked and removed triage labels Jun 4, 2024
@joeribekker
Copy link
Member

joeribekker commented Jun 6, 2024

Een notificatie stuurt nu dit (even gefocused op kenmerken):

{
  "kanaal": "objecten",
  "hoofdObject": "http://example.com/",
  "resource": "string",
  "resourceUrl": "http://example.com/",
  "actie": "string",
  "aanmaakdatum": "2024-06-06T15:25:21Z",
  "kenmerken": {
    "kenmerk1": "foo",
    "kenmerk2": "bar"
  }
}

Een abonnement weet welke kenmerken er voor een specifiek kanaal kunnen worden meegestuurd. In dit geval kanaal objecten, die kenmerk1 en kenmerk2 kent. Applicaties kunnen zo abonneren op kanaal objecten gefilterd op notificaties met kenmerk1=foo.

Wat NIET kan is, dat je zegt: Abonneer op kanaal objecten met filter kenmerk3=shizzle. Immers, kenmerk3 is geen geldig kenmerk binnen dit kanaal.

Wat we willen uitzoeken is of we dit kunnen sturen:

{
  "kanaal": "objecten",
  "hoofdObject": "http://example.com/",
  "resource": "string",
  "resourceUrl": "http://example.com/",
  "actie": "string",
  "aanmaakdatum": "2024-06-06T15:25:21Z",
  "kenmerken": {
    "kenmerk1": "foo",
    "kenmerk2": {
      "waarde": "bar",
      "kenmerk3": "shizzle"
    }
  }
}

en of we daarop kunnen filteren.

We geven nu enkel kenmerk1 en kenmerk2 maar kenmerk2 is een object, waar kenmerk3 in verpakt zit. In principe voldoet dit aan het kanaal filter maar of het werkt...? Dit zou je in staat kunnen stellen om van alles in het kenmerk2 object te gooien.

@JanBrek JanBrek changed the title Uitgebreider filter op Object notificatie-abonnementen Uitgebreide filter op Object notificatie-abonnementen Jun 7, 2024
@JanBrek JanBrek changed the title Uitgebreide filter op Object notificatie-abonnementen Uitgebreider filter op Object notificatie-abonnementen Jun 7, 2024
@JanBrek
Copy link
Author

JanBrek commented Sep 11, 2024

@joeribekker Any update on this?

@joeribekker
Copy link
Member

I didn't hear any alternatives, so the estimate is what I indicated before: 1 week investigation, after that we can report if and how we can solve it.

Option 1: Investigate using nested objects
Option 2: Adjust specification and proposal

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

No branches or pull requests

3 participants