[midPoint] Workflow API access

Radovan Semancik radovan.semancik at evolveum.com
Wed Feb 24 10:15:50 CET 2016


Hi,

That's right. We usually say that approx. 95% of the functionality is 
available using REST and SOAP. The workflow part was a slightly 
unfortunate omission. We'll fix that. Access certification is a new 
functionality so it is not yet in the remote interfaces. But it will get 
there.

When it comes to SOAP vs REST one has to consider that RESTful 
interfaces are inherently limited by the REST architectural style. SOAP 
and REST approaches are not 100% equivalent. RESTful invocations are not 
RPCs. Therefore there is no simple and convenient way how to directly 
invoke functionality that is inherently RPC-based. The comprehensive 
executeChanges operation is in this category. It works on several 
objects at once which is not possible to do in REST. Also, directly 
invoking bulk actions is inherently RPC-based operation. There are some 
(quite nasty) tricks how to do that in REST. But that would somehow 
defeat the idea of having a (clean) RESTful interface in the first 
place. If there is a popular demand to ruin the REST interface with 
nasty tricks we will do it. But I prefer a clean approach unless we are 
forced to do otherwise.

-- 
Radovan Semancik
Software Architect
evolveum.com



On 02/24/2016 09:17 AM, Pavol Mederly wrote:
> Petr,
>
> I think that majority of functionality is accessible. Just looking at 
> ModelRestService I see that what is missing is:
> - workflow functionality (WorkflowService)
> - bulk actions functionality (ScriptingService) - see *1
> - certification functionality (AccessCertificationService) - see *2
> - complex "executeChanges" method - see *3
>
> Maybe others would correct me, but this is all I know of at this moment.
>
> As you can see, these are quite marginal pieces... the majority of 
> midPoint functions can be invoked remotely via SOAP or REST.
>
> Notes:
> *1) This is fully accessible via SOAP, and, moreover, can be invoked 
> also via REST in asynchronous way (by creating a task)
> *2) This is quite new feature (included as a prototype in 3.3); I 
> estimate we can put it into SOAP/REST API in 3.5 (sooner only if 
> really needed)
> *3) This is part of SOAP API. On REST API it can be simulated by 
> invoking a set of modifyObject calls.
>
> Back to workflows: they exist for quite a long time but I had a 
> feeling they are not used much. (Maybe because of the awkward current 
> GUI, that is being reworked for 3.4.) So I had very little motivation 
> in providing remote API for them. But we see increasing interest in 
> workflows among users of midPoint, so we pay appropriate attention to 
> workflow-related functionality now.
>
> And final note: all of these methods can be implemented in - literally 
> - few days.
>
> Best regards,
> Pavol
>
>
> On 24.02.2016 8:05, Petr Gašparík wrote:
>>
>> Hi Pavol,
>> I have interesting question on my mind :
>> What other functionality, accessible from GUI, is not accessible via 
>> REST?
>>
>> So far I used to tell to potential customers that every functionality 
>> from GUI is also accessible from the REST interface.
>>
>> Best regards, Petr
>>
>>
>> Dne st 24. 2. 2016 0:52 uživatel Pavol Mederly 
>> <pavol.mederly at gmail.com <mailto:pavol.mederly at gmail.com>> napsal:
>>
>>     Hello Elijah,
>>
>>     work item approval or rejection is currently possible only via
>>     local Java API. (Implemented as WorkflowService interface.)
>>
>>     We plan to implement remote access to this functionality in
>>     forthcoming version 3.4, along with some changes in internal
>>     workflow data structures. It is feasible for you to wait for this
>>     release, or you'd need it sooner?
>>
>>     It could be implemented immediately by adding respective wrapper
>>     methods to ModelRestService and ModelCrudService, copying e.g.
>>     task-related methods (suspendTasks, etc). But as I said, the
>>     respective data structures will slightly change in 3.4, so the
>>     clients will have to be - very probably - adapted as well.
>>
>>     Best regards,
>>     Pavol
>>
>>
>>     On 24.02.2016 0:43, Elijah Jones wrote:
>>>
>>>     Hi,
>>>
>>>     I am looking into managing workflows via the REST API and have a
>>>     couple of questions:
>>>
>>>     1.Is it currently possible to approve or reject workflow items
>>>     via the REST API?
>>>
>>>     2.If so, is there a resource which would direct me on how to use
>>>     this?
>>>
>>>     I have done a bit of research but have not been able to find
>>>     anything. It seems that the objects supported by the REST
>>>     interface don’t include workflows.
>>>
>>>     I did find however this quote from the page below:  “After some
>>>     tweaking, the self-service application could be notified as
>>>     well; or it could query midPoint to see the status of the
>>>     request - this is not implemented yet, but it's not that hard to
>>>     implement.”
>>>
>>>     https://wiki.evolveum.com/display/midPoint/How+to+use+workflows+in+a+self-service+scenario
>>>
>>>     This seems to imply that you can access current workflows via
>>>     some kind of API, but I can’t find where you would tweak to
>>>     implement this
>>>
>>>     Any help would be appreciated
>>>
>>>     Thanks,
>>>
>>>     Elijah
>>>
>>>
>>>
>>>     /This email, and any attachment, is confidential and also
>>>     privileged. If you have received it in error, please notify me
>>>     immediately and delete it from your system along with any
>>>     attachments. You should not copy or use it for any purpose, nor
>>>     disclose its contents to any other person. /
>>>
>>>
>>>     _______________________________________________
>>>     midPoint mailing list
>>>     midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>>     http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>>     _______________________________________________
>>     midPoint mailing list
>>     midPoint at lists.evolveum.com <mailto:midPoint at lists.evolveum.com>
>>     http://lists.evolveum.com/mailman/listinfo/midpoint
>>
>> -- 
>> -- 
>> Petr G.
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> http://lists.evolveum.com/mailman/listinfo/midpoint
>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160224/26ea42ca/attachment.htm>


More information about the midPoint mailing list