<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000;"><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">Hi Yakov,</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">we are planning to have the beta version of midPilot available in the middle of May, in time for the midPoint Community Meetup on May 12–15, 2026.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">Based on the output you shared, this does not look like an error state. The important part is:</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">finishReason: "no-more-links"</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">This means the process finished earlier than the maximum allowed number of iterations because no additional relevant URLs were found. So completing only 2 out of 4 iterations is not necessarily a problem. It simply means midPilot determined that there were no more useful links to continue with.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">The midpilot-connector-gen project is currently driven mainly through the Connector Generator wizard in the development version of midPoint, although it can also be used directly via REST.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">To configure support in midPoint, you need to set the coordinates of your deployment in the midPoint system configuration:</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> <smartIntegration></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> <!-- URL of your midpilot-connector-gen instance --></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> <connectorGenerationUrl>https://localhost:8090/api/v1</connectorGenerationUrl></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> <!-- link to latest snapshot of connector-scimrest-generic which is used as base for new connector --></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> <connectorFrameworkUrl>https://nexus.evolveum.com/nexus/repository/snapshots/com/evolveum/polygon/scimrest/connector-scimrest-generic/0.1-SNAPSHOT/connector-scimrest-generic-0.1-20260305.102119-29.jar</connectorFrameworkUrl> </smartIntegration></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"></smartIntegration></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">After that, you should be able to see the Connector Generator wizard in midPoint. The wizard is intended to guide you through the next steps and call the endpoints in the correct order. Please note that this is still under active development, so some instability is expected.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">If you want to drive the process manually via REST, the usual sequence is roughly as follows:</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">1. /api/v1/discovery/{session_id}/discovery</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Discover the initial set of documentation links.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">2. /api/v1/scrape/{session_id}/scrape</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Scrape documentation from the discovered URLs.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">3. /api/v1/digester/{session_id}/classes</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract object classes from the scraped documentation.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">4. /api/v1/digester/{session_id}/classes/{object_class}/attributes</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract attributes for each object class.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">5. /api/v1/digester/{session_id}/classes/{object_class}/endpoints</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract endpoints for each object class.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">6. /api/v1/digester/{session_id}/relations</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract relations between object classes.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">7. /api/v1/digester/{session_id}/auth</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract authentication information.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">8. /api/v1/digester/{session_id}/metadata</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Extract metadata information.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">9. /api/v1/codegen/{session_id}/classes/{object_class}/native-schema</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Generate native schema for the object class.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">10. /api/v1/codegen/{session_id}/classes/{object_class}/connid</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Generate ConnId definition for the object class.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">11. /api/v1/codegen/{session_id}/classes/{object_class}/search/{intent}</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"> Generate search code for the object class.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">There are also GET endpoints for checking the status of individual steps, and PUT endpoints if you want to override extracted or generated data manually.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">So in your case, the next step is not to wait for the remaining discovery iterations, but rather to continue with the subsequent pipeline steps using the data that was already discovered and scraped.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">Please note that this is still a fragile product, a project under development. We are actively working on it and trying to improve it.</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">Below is a link to a video showing the current flow on an example of generating a specific connector. Please note that it is more of a practical demo of the generated connector than a detailed presentation of the integration between midPoint and the midpilot-connector-gen API service:</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">https://nextcloud.evolveum.com/s/Cd2emptNmcZRM6J</div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;"><br><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px;" data-mce-style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: none; text-decoration-thickness: auto; text-decoration-style: solid; caret-color: #000000; color: #000000; margin: 0px;">If you have any further questions, please feel free to ask.<span class="Apple-converted-space"> </span></p><br><br></div><div style="font-size: 12pt;" data-mce-style="font-size: 12pt;">Best regards,</div><br><div data-marker="__SIG_PRE__"><div><strong>Alexander Brecko</strong> | AI Developer<br><a data-mce-href="https://evolveum.com" href="https://evolveum.com"><img src="cid:625cd0451f1398c9e23036d75c3ba9f8945d1395@zimbra" data-mce-src="/home/abrecko@evolveum.com/Briefcase/evolveum.png" doc="Briefcase/evolveum.png"></a><br>abrecko@evolveum.com | www.evolveum.com<br></div></div><br><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>From: </b>"Yakov Revyakin via midPoint" <midpoint@lists.evolveum.com><br><b>To: </b>"midPoint General Discussion" <midpoint@lists.evolveum.com><br><b>Cc: </b>"Yakov Revyakin" <yrevyakin@gmail.com><br><b>Sent: </b>Wednesday, March 11, 2026 4:31:38 PM<br><b>Subject: </b>Re: [midPoint] HOW-TO for MidPilot<br></div><br><div data-marker="__QUOTED_TEXT__"><div dir="ltr"><img src="cid:ii_mmm75l3p0" alt="image.png" width="496" height="111" data-mce-src="https://webmail.evolveum.com/service/home/~/?auth=co&loc=en_US&id=809&part=2.2&t=1773330955326"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, 11 Mar 2026 at 17:30, Yakov Revyakin <<a href="mailto:yrevyakin@gmail.com" target="_blank" rel="nofollow noopener noreferrer" data-mce-href="mailto:yrevyakin@gmail.com">yrevyakin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;" data-mce-style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;"><div dir="ltr">Hello Everyone,<br><div><p>Does anyone have successful experience using MidPilot? It would be great to see a reference use case that demonstrates some visible results.</p><p>I was able to configure and run the MidPilot project using the Google Gemini API. As a source API, I used Keycloak. MidPilot successfully discovered and retrieved relevant API URLs and processed them into chunks.</p><p>However, I noticed that only 2 out of the 4 iterations were completed. Appropriate job was completed successfully. Could someone help to clarify what the next step should be or what might be preventing the remaining iterations from running?</p><p>Thanks,</p><p>Yakov</p></div><br><br><br><br><div>I am tr to analyze Keycloak as a source of API for a potential connector. </div></div></blockquote></div><br>_______________________________________________<br>midPoint mailing list<br>midPoint@lists.evolveum.com<br>https://lists.evolveum.com/mailman/listinfo/midpoint</div></div><div><br></div></div></body></html>