<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi,<br>
      <br>
      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.<br>
      <br>
      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.<br>
      <br>
      <pre class="moz-signature" cols="72">-- 
Radovan Semancik
Software Architect
evolveum.com
</pre>
      <br>
      <br>
      On 02/24/2016 09:17 AM, Pavol Mederly wrote:<br>
    </div>
    <blockquote cite="mid:56CD6706.2010606@evolveum.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Petr,<br>
      <br>
      I think that majority of functionality is accessible. Just looking
      at ModelRestService I see that what is missing is:<br>
      - workflow functionality (WorkflowService)<br>
      - bulk actions functionality (ScriptingService) - see *1<br>
      - certification functionality (AccessCertificationService) - see
      *2<br>
      - complex "executeChanges" method - see *3<br>
      <br>
      Maybe others would correct me, but this is all I know of at this
      moment.<br>
      <br>
      As you can see, these are quite marginal pieces... the majority of
      midPoint functions can be invoked remotely via SOAP or REST.<br>
      <br>
      Notes:<br>
      *1) This is fully accessible via SOAP, and, moreover, can be
      invoked also via REST in asynchronous way (by creating a task)<br>
      *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)<br>
      *3) This is part of SOAP API. On REST API it can be simulated by
      invoking a set of modifyObject calls.<br>
      <br>
      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.<br>
      <br>
      And final note: all of these methods can be implemented in -
      literally - few days.<br>
      <br>
      Best regards,<br>
      Pavol<br>
      <br>
      <br>
      <div class="moz-cite-prefix">On 24.02.2016 8:05, Petr Gašparík
        wrote:<br>
      </div>
      <blockquote
cite="mid:CAFmDq47ZwoYfR1xQCh7o12hu6meqKBmx3e9Zwqtpsfx0y2N-JQ@mail.gmail.com"
        type="cite">
        <p dir="ltr">Hi Pavol, <br>
          I have interesting question on my mind :<br>
          What other functionality, accessible from GUI, is not
          accessible via REST? </p>
        <p dir="ltr">So far I used to tell to potential customers that
          every functionality from GUI is also accessible from the REST
          interface. </p>
        <p dir="ltr">Best regards, Petr </p>
        <br>
        <div class="gmail_quote">
          <div dir="ltr">Dne st 24. 2. 2016 0:52 uživatel Pavol Mederly
            <<a moz-do-not-send="true"
              href="mailto:pavol.mederly@gmail.com">pavol.mederly@gmail.com</a>>

            napsal:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> Hello Elijah,<br>
              <br>
              work item approval or rejection is currently possible only
              via local Java API. (Implemented as WorkflowService
              interface.)<br>
              <br>
              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?<br>
              <br>
              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.<br>
              <br>
              Best regards,<br>
              Pavol</div>
            <div bgcolor="#FFFFFF" text="#000000"><br>
              <br>
              <div>On 24.02.2016 0:43, Elijah Jones wrote:<br>
              </div>
              <blockquote type="cite">
                <div>
                  <p class="MsoNormal">Hi,</p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">I am looking into managing
                    workflows via the REST API and have a couple of
                    questions:</p>
                  <p class="MsoNormal"> </p>
                  <p><span>1.<span style="font:7.0pt "Times New
                        Roman"">       </span></span>Is it
                    currently possible to approve or reject workflow
                    items via the REST API?</p>
                  <p><span>2.<span style="font:7.0pt "Times New
                        Roman"">       </span></span>If so, is
                    there a resource which would direct me on how to use
                    this?</p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">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.</p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">I did find however this quote
                    from the page below:  “<span
style="font-size:10.5pt;font-family:"Arial",sans-serif;color:#333333;background:white">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.”</span></p>
                  <p class="MsoNormal"><a moz-do-not-send="true"
href="https://wiki.evolveum.com/display/midPoint/How+to+use+workflows+in+a+self-service+scenario"
                      target="_blank">https://wiki.evolveum.com/display/midPoint/How+to+use+workflows+in+a+self-service+scenario</a></p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">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</p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">Any help would be appreciated</p>
                  <p class="MsoNormal"> </p>
                  <p class="MsoNormal">Thanks,</p>
                  <p class="MsoNormal">Elijah</p>
                  <p class="MsoNormal"> </p>
                </div>
                <br>
                <br>
                <i>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. </i> <br>
                <fieldset></fieldset>
                <br>
                <pre>_______________________________________________
midPoint mailing list
<a moz-do-not-send="true" href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a moz-do-not-send="true" href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
              </blockquote>
              <br>
            </div>
            _______________________________________________<br>
            midPoint mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a><br>
            <a moz-do-not-send="true"
              href="http://lists.evolveum.com/mailman/listinfo/midpoint"
              rel="noreferrer" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br>
          </blockquote>
        </div>
        <div dir="ltr">-- <br>
        </div>
        <div dir="ltr">--
          <div>Petr G.</div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
midPoint mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>