Operational reference for Vidocq Runtime — Maven coordinates, MicroProfile Config keys, vidocq-runtime-maven-plugin goals, exported Java modules, public SPI.
Maven coordinates
| Artefact | Role |
|---|---|
|
Parent POM (Model 4.0.0). It manages every Vidocq artifact and the |
|
Public SPI ( |
|
Dev console panel SPI ( |
|
Runtime engine (boot orchestrator, lifecycle) |
|
Aggregator of the shipped extensions, grouped by domain (essentials, jakartaee-core, jakartaee-web, microprofile, module-repackaged). The dev console NEW is |
|
langchain4j-cdi MCP server extension. Built in the reactor, not published while langchain4j-cdi is a SNAPSHOT: see langchain4j-cdi MCP server |
|
Maven plugin — |
|
Examples ( |
|
Multi-extension integration tests |
Exported Java modules
| Module | Contents |
|---|---|
|
Public SPI interfaces ( |
|
The dev console panel SPI, |
|
Orchestration engine — |
The io.vidocq.runtime.extensions.* modules each correspond to a built-in extension. The Maven plugin has no module-info.java on purpose: Maven plugins run on Maven’s class path, not on the application module path.
MicroProfile Config keys
| Key | Default | Description |
|---|---|---|
|
|
Bind address of the |
|
|
Port of the |
|
|
CSV list of listeners to start. It cannot list a listener an extension declares itself NEW, such as the dev console’s |
|
|
Bind of a named listener. Takes precedence over the |
|
— |
Declarative mounts (static resources, …). |
|
— |
JDBC coordinates of the default Mansart datasource. A named datasource uses |
|
|
Mansart pool maximum size. See the Mansart pool extension for |
|
|
Schema migration at boot, and the backend when both Flyway and Liquibase are present. See Schema migration. |
|
the backend’s |
Script locations of the |
|
|
|
|
|
Prefix under which Cassini mounts the JAX-RS application. |
|
(empty) |
Active profile ( |
|
(empty) |
External override directory ( |
|
|
|
|
|
Console colours: |
|
|
Launch mode shown by the startup banner and the startup report, and returned by |
|
|
Level of the startup report: |
|
|
Startup banner: |
|
(empty) |
Custom banner: |
|
|
Dev console: |
|
|
Port of the dev console, |
|
|
Address of the dev console. Not a loopback address: |
|
|
Name and version the langchain4j-cdi MCP server advertises. Read by |
TLS is not implemented yet: vidocq.https.port, vidocq.tls.cert and vidocq.tls.key are
planned, and setting them today has no effect.
|
A |
ConfigSource hierarchy (descending ordinal):
| Ordinal | Source | Description |
|---|---|---|
400 |
|
|
300 |
|
Environment variables |
250 |
|
|
100 |
|
Classpath |
Maven plugin goals
| Goal | Role |
|---|---|
|
Generates the CDI bean index and pre-generates proxies/interceptors (compile-time codegen). |
|
Standalone distribution: |
|
Dev/watch mode — forks a child JVM with |
|
One run of the application in a forked JVM, after a lifecycle forked up to |
|
Verifies every |
|
Patches the non-modular jars of the runtime closure with a synthesized |
|
Standalone Java image ( |
|
Native bundle ( |
|
Generates |
|
Verifies the application |
|
Opt-in companion of |
|
Experimental — IntelliJ IDEA shared run configurations ( |
See the dedicated page for the exhaustive parameter list.
CLI commands
The vidocq command-line tool (see Getting started for installation). Run vidocq help <command> for the options of each.
| Command | Role |
|---|---|
|
Scaffold a new application ( |
|
Build & package the project by wrapping the Vidocq Maven plugin. With no type it runs the |
|
Run the application in watch mode from the CLI’s module path. For extension-based apps prefer |
|
Run the application once from the CLI’s module path (same pom caveat as |
|
Manage extensions: |
|
Remove build outputs. |
|
Inspect and edit CLI configuration. |
|
Diagnose the local setup (JDK, Maven, PATH). |
|
Show project and runtime information. |
|
Generate shell completion scripts. |
|
Print the CLI version / command help. |
Public SPI (vidocq-runtime-spi)
Source: vidocq-runtime-spi/src/main/java/io/vidocq/runtime/spi/.
| Type | Role |
|---|---|
|
Lifecycle interface — |
|
Passed to |
|
String-property configuration passed to |
|
Typed configuration API aligned with MicroProfile Config concepts — |
|
Interface for the application entry class re-loaded inside the Vauban application layer by |
|
Annotation for the zero-config IDE trampoline |
|
The module layer Vidocq boots the application in, when it has one of its own — |
|
Adds a section to the startup report. Implemented by an extension, or declared as a service with |
|
What a contributor reads (level, launch mode, beans, routes) and where it writes (summary line, rows, lists, secrets, listeners, routes, anomalies). |
|
|
|
The startup report of the running boot, read-only, from |
|
Its text-only records: an anomaly (code, message, hint, source), a section (id, headline, summary, lines), a line (key, values). |
Dev console SPI (vidocq-runtime-devconsole-spi) NEW
Source: vidocq-runtime-devconsole-spi/src/main/java/io/vidocq/runtime/spi/devconsole/. How to use it: Writing a dev console panel.
| Type | Role |
|---|---|
|
A |
|
Where |
|
|
|
A chart the page draws from successive samples; a value it plots, in the style |
Startup anomaly codes NEW
Each is one WARNING record on io.vidocq.startup.anomaly, its code first, logged at every level of the startup report, except VIDOCQ-DEVC-005, which the dev console logs on io.vidocq.devconsole when a panel fails to sample. See Anomalies.
| Code | Raised when |
|---|---|
|
|
The audit of the configured keys failed; unread keys are not reported on this boot. |
|
A configured key under an audited namespace is read by nothing. |
|
Load-time weaving was needed and could not be prepared. |
|
A startup report contributor could not be loaded, created or identified, or failed; its section is skipped. |
|
Two contributors of different classes use the same id, or one uses the id of a section of the core, or |
|
|
The dev console is on in a |
|
The dev console listens on an address that is not a loopback one. |
|
A |
|
The dev console’s port was taken; it listens on a free one. |
|
A dev console panel failed to sample; that poll misses its live values. |
|
A datasource’s migration found no migration, and its schema history records none: the schema was not migrated. |
|
A Mansart pool opened none of the connections its |
|
A named Mansart pool is open, but no |
|
Mansart could not build the model of a repository’s entity; the catalogue shows the entity without its columns. |
|
The langchain4j-cdi MCP server module does not provide |
|
The langchain4j-cdi MCP extension is present but no |
|
langchain4j-cdi’s MCP server is loaded twice, in the boot layer and in the application layer. |
|
|
|
An MCP tool, prompt or resource template argument has no name. |
Bugs and benchmarks
-
Vidocq Runtime bugs:
vidocq/BUG.md -
Cross-cutting bugs:
vidocq/CHAPPE-BUGS.md,vidocq/VAUBAN-BUGS.md -
Benchmarks:
vidocq/BENCH.md
Compatibility
-
Java 25 minimum (LTS)
-
Maven 3.9.16 minimum
-
Strict Java Modules — one
module-info.javaper submodule -
No hidden classpath — every dependency exposes a named module
Next steps
-
Usage — packaging and profiles
-
Internals — boot and threading
-
SPI details — how to write an extension