Konfidence is pre-release software. Concepts and APIs are unstable and subject to change.
Skip to content

ADR-0031: API principles ​

Status
accepted
Accepted
2026-07-29T00:00:00.000Z
Category
Architecture Pattern
Impact
High

Context ​

Konfidence establish an Konfidence HTTP API to provide a unified behavior of Konfidence across all potential clients (CLI, UI, external UI's, etc.). The Konfidence API will handle all kind of topics within Konfidence like control of delivery flow, gathering runtime data, troubleshoot deployment issues, etc.. The Konfidence API is also covering a single point of entry to gain permission control.

This ADR, along with ADR-0029, defines the principles, conventions and design of the API service.

Decision ​

Architectural Overview ​

Overview

Protocol ​

Use of HTTP protocol which aligns well with the stack of Konfidence (kden-cli, kden UI, decisions regarding API server). Konfidence should optionally support SSL.

Versioning ​

Established during the framework decision in ADR-0029. Konfidence uses path-based versioning, meaning all domain routes are versioned e.g. /api/v1/. Versioning strategy is out of scope of this ADR and will be, if necessary, defined in a future ADR.

RESTful services ​

Konfidence API will be designed as a RESTful service. If necessary resources will be cached. Konfidence uses the API-spec-first approach, meaning a openapi spec is used as API contract for all clients. Further details ADR-0029

Authentication/Authorization ​

The Authentication principles and flows are described in ADR-0030. The Authorization mapping is described in ADR-0028

Installation routine ​

The Konfidence API will be part of Konfidence core installation routine (konfidence HELM chart). The Konfidence core HELM chart will contain all required components of the API with a minimal set of pre-configurations.

EU and German government funding logos

Funded by the European Union – NextGenerationEU.

The views and opinions expressed are solely those of the author(s) and do not necessarily reflect the views of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them.