Project Overview

Technology Stack

The versions below are the ones the repository pins at the time of writing. The sources of truth are gradle/libs.versions.toml and backend/build.gradle.kts for the backend, and frontend/package.json for the Studio.

Backend

Technology Version Role

Kotlin on Java 21

2.4.0

Language and runtime. The Gradle toolchain resolves a Java 21 JDK; the container image runs on Temurin 21.

Spring Boot, Spring Framework

4.0.3, 7.0.x

Application framework. The backend is a WebFlux (reactive) application; Spring Boot 4 brings Jackson 3 (tools.jackson) as the default JSON library.

Spring Security

7.0.x

OAuth2 resource server for Keycloak tokens, reactive method security (@PreAuthorize), a separate filter chain for the MCP endpoint.

Spring Data MongoDB (reactive), Spring Data Elasticsearch

Boot-managed

Persistence. MongoDB is the system of record; Elasticsearch is read for knowledge vectors and conversation data.

Spring AI

2.0.0

The AI Assistant’s chat model (an OpenAiChatModel pointed at Azure OpenAI), the Elasticsearch vector store for knowledge, tool calling, and the MCP server transport (org.springframework.ai:mcp-spring-webflux).

MCP Java SDK

2.0.0

The hosted MCP server (stateless WebFlux transport) and the MCP client used to load tools from customers' MCP servers. JSON is handled by mcp-json-jackson3; the Jackson 2 variant is excluded from the classpath.

openai-java

4.39.1

HTTP client underneath the Spring AI chat model; also used directly for embeddings, transcription and the Responses API web search.

netty-socketio

2.0.13

The Socket.IO server of the AI Assistant (port 9311). It still serializes with Jackson 2, which is why Jackson 2 is kept on the classpath.

springdoc-openapi

3.0.1

OpenAPI description and Swagger UI of the REST API.

Stripe Java

31.0.0

Customers, subscriptions, checkout and portal sessions, invoices and usage meter events.

Apache POI, kotlin-csv

5.3.0, 1.9.1

Excel and CSV exports of the analytics and of test-suite results.

Apache Tika, Jsoup, flexmark, skrapeit

3.1.0, 1.21.2, 0.64.8, 1.2.2

Document parsing fallback, HTML handling and web scraping for knowledge ingestion.

Azure Identity, Azure Key Vault Secrets

1.16.2, 4.10.0

The Azure implementation of the vault service.

promethist-common, promethist-lib

2026.42.0

The engine’s shared libraries: domain model, repositories, ACL and user services, MCP connector catalog, storage, mail. Published to https://repository.promethist.ai/public/maven, which the convention plugin in buildSrc adds as a repository.

JUnit 5, Spring Boot Test, Mockito, Reactor Test

Boot-managed

Unit and slice tests.

KtLint

1.7.1

Formatting checks (see Kotlin Formatting).

Studio Frontend

Technology Version Role

Next.js (App Router)

16.x

Server and client rendering, route handlers and the OAuth endpoints. The scripts run Next.js with webpack (next dev --webpack, next build --webpack).

React

19

UI.

TypeScript

5

Strict mode, noUncheckedIndexedAccess; npm run typecheck runs tsc --noEmit.

NextAuth (Auth.js)

5 (beta)

Keycloak sign-in, the encrypted session cookie and access-token refresh.

TanStack Query, TanStack Table, TanStack Virtual

5, 8, 3

Server state with server-side prefetch and hydration, data tables, virtualized lists.

React Hook Form, TanStack Form, Zod

7, 1, 3

Forms and the validation schemas of request and response payloads.

Base UI, Tailwind CSS

1, 4

Unstyled accessible primitives and the styling of the component library in frontend/ui.

socket.io-client

4.8

The AI Assistant connection.

jose

6

Signing and verifying the MCP OAuth tokens.

Slate

0.124

The rich-text and @mention editor of agent fields.

Recharts, d3

2, 7

Analytics charts.

three.js, GSAP

0.181, 3

The animated orb and UI animations.

The container image runs on Node.js 20; frontend/mise.toml pins Node.js 24 for local work.

Infrastructure

Technology Role

MongoDB 7

Database shared with the engine; GridFS for export files.

Elasticsearch 8

Knowledge vector index; the engine’s turn and LLM-log indexes.

Keycloak

Identity provider of Studio users (realm platform), federating Google, Microsoft and company identity providers.

Kubernetes, Helm, NGINX Ingress, cert-manager

Runtime. One cluster per region; Let’s Encrypt certificates per host.

Azure Key Vault with the Secrets Store CSI driver

Delivers the backend’s secret configuration file and the registry pull secret.

GitLab CI with Kaniko

Builds, container images, deployments and releases (see Platform Deployment).

OpenTelemetry Java agent 1.31

Bundled into the backend image (backend/lib/opentelemetry-javaagent.jar); exports logs, traces and metrics over OTLP (Observability).

External Services

Service Used for

Azure OpenAI

The AI Assistant’s model and the nested calls its tools make (agent generation, quality reviews, knowledge descriptions), and the assistant’s web search through the Responses API.

OpenAI

Knowledge embeddings (text-embedding-ada-002) and, by default, transcription of the assistant’s voice input.

Azure AI Document Intelligence

Layout analysis of uploaded knowledge documents (prebuilt-layout).

Stripe

Billing: customers, subscriptions, checkout, customer portal, invoices and metered usage.

Mailgun

Invitation emails, sent from stored Mailgun templates.

Promethist asset repository

https://repository.promethist.ai/public: public URLs of uploaded logos and media, and the avatar and environment catalog (arc/bundles/default/index.json).

LiveAvatar

Preview images of live avatars, fetched with the account’s or project’s LiveAvatar API key.

Zendesk

Tickets created by the Studio’s contact form.