simpleidserver / SimpleIdServer

OpenID, OAuth 2.0, SCIM2.0, UMA2.0, FAPI, CIBA & OPENBANKING Framework for ASP.NET Core
https://simpleidserver.com/
Apache License 2.0
729 stars 99 forks source link

[SCIM] Notification payload, add more info #776

Open gabrielemilan opened 3 months ago

gabrielemilan commented 3 months ago

Hello,

is it possibile to add more info about the operation in the message payload?

This is an example of payload:

{ "body": { "messageId": "01000000-c374-4230-e487-08dcb2d718a4", "requestId": null, "correlationId": null, "conversationId": "01000000-c374-4230-53cb-08dcb2d718a5", "initiatorId": null, "sourceAddress": "sb://fame-dev1.servicebus.windows.net/travelmsapisci_ScimApi_bus_yryyyygdqtbdbiwibdqmfiqfrj?autodelete=300", "destinationAddress": "sb://fame-dev1.servicebus.windows.net/SimpleIdServer.Scim.ExternalEvents/RepresentationUpdatedEvent?type=topic", "responseAddress": null, "faultAddress": null, "messageType": [ "urn:message:SimpleIdServer.Scim.ExternalEvents:RepresentationUpdatedEvent", "urn:message:SimpleIdServer.Scim.ExternalEvents:IntegrationEvent" ], "message": { "token": "", "id": "040dc02f-8587-4b39-8690-56af7d93f2de", "version": 1, "resourceType": "ScimGroup", "serializedRepresentation": "{\n \"id\": \"040dc02f-8587-4b39-8690-56af7d93f2de\",\n \"members\": [\n {\n \"value\": \"001c721c-33f6-49b6-b919-61471d4e202f\",\n \"type\": \"User\"\n }\n ],\n \"meta\": {\n \"resourceType\": \"Group\",\n \"created\": \"2024-07-22T15:59:21.358Z\",\n \"lastModified\": \"2024-08-02T09:40:05.2811681Z\",\n \"version\": 1,\n \"location\": \"http://travel-api-scim.dev.enterprise.uefa.com/v2/Groups/040dc02f-8587-4b39-8690-56af7d93f2de\"\n },\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ]\n}" }, "expirationTime": null, "sentTime": "2024-08-02T09:40:08.0940167Z", "headers": { "Origin": "travel", "OriginType": "SCIM" }, "host": { "machineName": "travel-ms-api-scim-dev--giziqym-5fc69cf49c-xp7qr", "processName": "ScimApi", "processId": 1, "assembly": "ScimApi", "assemblyVersion": "1.0.0.0", "frameworkVersion": "8.0.7", "massTransitVersion": "8.2.3.0", "operatingSystemVersion": "Unix 5.15.158.2" } }, "contentType": "application/vnd.masstransit+json", "correlationId": null, "deadLetterSource": null, "deliveryCount": 1, "enqueuedSequenceNumber": 3214, "enqueuedTimeUtc": "2024-08-02T09:40:08.286Z", "expiresAtUtc": "9999-12-31T23:59:59.9999999", "forcePersistence": false, "isBodyConsumed": false, "label": null, "lockedUntilUtc": "2024-08-02T09:41:08.205Z", "lockToken": "dc0ba5e1-4aa0-41d6-84e5-da017831be80", "messageId": "01000000c3744230e48708dcb2d718a4", "partitionKey": null, "properties": { "Origin": "travel", "OriginType": "SCIM", "Diagnostic-Id": "00-aacd6f8a80bc6e1d21cdd39c67e73d6e-edff4ca3a9a46c63-00" }, "replyTo": null, "replyToSessionId": null, "scheduledEnqueueTimeUtc": "0001-01-01T00:00:00", "sequenceNumber": 3213, "sessionId": null, "size": 2294, "state": 0, "timeToLive": "10675199.02:48:05.4775807", "to": null, "viaPartitionKey": null }

Is it possible to have an operation attribute like "MemberAdded", "MemberRemoved", etc etc.

Thanks. Gabriele

simpleidserver commented 3 months ago

Hello @gabrielemilan ,

It is possible to return a list of PATCH operations in an external event. Each PATCH operation represents an action executed on a property of the representation. For example: { operation: ADD, path: name.formatted, value: "newvalue" }.

I made some modifications in the Ticket776 branch to return these lists of actions in the external event for the "HTTP PATCH" and "HTTP PUT" actions.

The class RepresentationUpdatedEvent contains a list of PatchAttributeOperation with the following properties:

Kind regards,

SID

gabrielemilan commented 3 months ago

Ok, thanks, let me know when will be delivered in prerelease package. :-)

simpleidserver commented 3 months ago

The nuget package version 5.0.1 is published :)