mv .env.example .env
MidPilot demo setup
|
EXPERIMENTAL
This feature is experimental.
It means that it is not intended for production use.
The feature is not finished.
It is not stable.
The implementation may contain bugs, the configuration may change at any moment without any warning and it may not work at all.
Use at your own risk.
This feature is not covered by midPoint support.
In case that you are interested in supporting development of this feature, please consider purchasing midPoint Platform subscription.
|
To work with the midPilot AI-assisted connector generator demo, you need set up your environment. This article lists the prerequisites and describes the steps to take in order to use midPilot to generate a connector for OpenProject.
Prerequisites
Before deploying the demo environment with midPilot code generator, make sure you have prepared the following:
-
Docker - You need to have Docker installed on your computer. Check the documentation on Docker Engine for guides on setting up Docker.
To check if you have Docker already installed on your computer, run
docker --versionin your terminal. This should return the Docker version, such asDocker version 27.5.1, build 9f9e405. If it does not, Docker is not in PATH and likely not installed at all. -
Bash - A widely used shell on Linux-based systems. If you are on Linux or macOS, you probably have it installed already. On Windows, you can use the WSL2 layer which has the Bash shell.
-
Internet connection - Docker compose pulls the required Docker images during bootstrap of the compose stack. When using online documentation to generate connector code, Internet connectivity is needed.
-
LLM backend - Evolveum currently does not provide an LLM infrastructure you could use to run midPilot, meaning you need to supply your own. See also MidPilot AI services setup.
Demo environment
In the midPilot connector generator demo environment on GitHub, you can find a ready‑to‑use Docker Compose environment that you can use as a sample to try out the midPilot connector generator. Bear in mind that, while prepared for a reasonably easy deployment, you still need to connect the environment to your own LLM infrastructure.
The sample environment includes:
-
The midPilot connector generator microservice.
-
A midPoint instance.
-
Containers holding PostgreSQL databases for both of the above services.
-
An OpenProject container as an example target application.
-
A container with an nginx reverse proxy in front of the OpenProject service (self-signed certificate, some warnings might appear).
The environment does not contain any sample data other than the initial configuration present in midPoint. Sample objects in the example target system have to be set up after initialization by accessing the OpenProject service. For more details on how to access it, see the Access to environment services section.
Environment properties
The repository also contains an example .env file that you can use as a starting point for your local configuration.
The following are the properties related to the midPilot code generator:
LLM__OPENAI_API_KEY-
API key used to authenticate requests to an OpenAI-compatible LLM provider or proxy.
LLM__OPENAI_API_BASE-
OpenAI-compatible endpoint (e.g.,
https://openrouter.ai/api/v1) LLM__MODEL_NAME-
Model identifier to be used (e.g.,
openai/gpt-oss-120b) SEARCH__METHOD_NAME-
-
Search engine API used to locate and fetch the documentation used to generate the connector code.
-
Either
ddgs(DuckDuckGo search) orbrave(Brave search) -
Using the Brave search API is recommended for better results but additional configuration is needed, see below.
-
BRAVE__API_KEY-
API key for the Brave search engine API.
BRAVE__ENDPOINT-
Brave search engine API endpoint.
Environment startup
To initialize the environment, you need to download the content of the sample directory to your host system.
Inside the directory, use the example environment properties file to create an ".env" file containing your local configuration.
-
Update the environment properties based on the Environment properties section of this guide.
-
In the directory containing the "docker-compose.yml" file, execute the following command:
docker compose up -d
Docker will pull the images in the compose stack and execute services specified in the containers.
After the process is complete, you can validate that the services are running. In the same directory, execute:
docker compose ps
There should be a total of 6 services "Up" and running with "midpilot-connector-gen" in their name.
Access to environment services
Use the following to access the services in the environment:
-
The midPoint service:
-
The web interface: localhost:8080.
-
Username:
administrator -
Password:
op3nS*sam#
-
-
-
The midPilot service:
-
A documentation endpoint with swagger UI on localhost:8090/docs,
-
a REST API endpoint on "http://midpilot-connector-gen:8090/api/v1".
-
-
An OpenProject instance:
-
a web API on, localhost:8443,
-
Username:
admin -
Password:
admin
-
-
REST API endpoint on "https://openproject/api/v3/" (Basic Auth),
-
Credentials have to be set up in the web UI of OpenProject, consult the official OpenProject documentation.
-
-
Initial environment configuration
The access to the midPilot connector generator microservice has to be specified in the "System Configuration" object of the midPoint instance. The current environment already contains this configuration out of the box. It is loaded via a special hook during startup,
Refer to MidPilot AI services setup for details.
Next steps
Once you are done with the preliminary configuration, you can proceed to connector generation.