taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 3b48b728701ac1d8dca962b34ffc6d6d9c0158b3
parent 464c6f3179ef953f911926fe8d160245746cc9c4
Author: Antoine A <>
Date:   Tue, 14 Oct 2025 19:18:32 +0100

new observability API

Diffstat:
Mcore/api-corebank.rst | 16++++++++++++----
Acore/api-observability.rst | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mmanpages/libeufin-bank.conf.5.rst | 6+-----
Mmanpages/libeufin-nexus.conf.5.rst | 35+++++++++++------------------------
Mmanpages/taler-magnet-bank.conf.5.rst | 4++--
5 files changed, 100 insertions(+), 35 deletions(-)

diff --git a/core/api-corebank.rst b/core/api-corebank.rst @@ -34,13 +34,14 @@ it provides features for local/regional currencies. Version History --------------- -The current protocol version is ``v10``. +The current protocol version is ``v11``. Android cashier app is currently targeting ``v9``. **Version history:** -* ``v10`` (in development): Update two factor authentication API to match Merchant Backend API +* ``v11``: Add observability API +* ``v10``: Update two factor authentication API to match Merchant Backend API Config ------ @@ -48,7 +49,7 @@ Config .. http:get:: /config Return the protocol version and configuration information about the bank. - This specification corresponds to ``current`` protocol being version **v10**. + This specification corresponds to ``current`` protocol being version **v11**. **Response:** @@ -152,7 +153,7 @@ The user ``admin`` is a special, hard-coded username. Some requests require the interface TokenRequest { // Scope for the token. - scope: "readonly" | "readwrite" | "revenue" | "wiregateway"; + scope: "readonly" | "readwrite" | "revenue" | "wiregateway" | "observability"; // Custom token validity duration duration?: RelativeTime; @@ -1898,3 +1899,10 @@ Endpoints for Integrated Sub-APIs All endpoints under this prefix are specified by the :doc:`GNU Taler Conversion Info API </core/api-bank-conversion-info>`. + +.. http:any:: /taler-observability/* + + Since **v11** + + All endpoints under this prefix are specified + by the :doc:`GNU Taler Observability API </core/api-observability>`. diff --git a/core/api-observability.rst b/core/api-observability.rst @@ -0,0 +1,73 @@ +.. + This file is part of GNU TALER. + + Copyright (C) 2025 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + +.. target audience: developer, core developer + +.. _observability-api: + +======================= +Taler Observability API +======================= + +.. contents:: Table of Contents + :local: + +Introduction +------------ + +This section describes the API offered by many Taler components. The API is +used to track the internal state of a Taler component. + +Config +------ + +.. http:get:: /config + + Return the protocol version and configuration information about the bank. + This specification corresponds to ``current`` protocol being version **v0**. + + **Response:** + + :http:statuscode:`200 OK`: + Response is a `Config`. + + **Details:** + + .. ts:def:: Config + + interface Config { + // Name of the API. + name: "taler-observability"; + + // libtool-style representation of the Bank protocol version, see + // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + // The format is "current:revision:age". + version: string; + } + +Metrics +------- + +.. http:get:: /metrics + + Exposes application metrics in the Prometheus exposition format. These metrics can be scraped by Prometheus or other monitoring systems for observability, alerting, and analysis. + + **Response:** + + :http:statuscode:`200 Ok`: + Response woth metrics in the Prometheus text format. + :http:statuscode:`401 Unauthorized`: + Authentication failed, likely the credentials are wrong. +\ No newline at end of file diff --git a/manpages/libeufin-bank.conf.5.rst b/manpages/libeufin-bank.conf.5.rst @@ -145,11 +145,7 @@ DATABASE OPTIONS Setting the database belongs to the “[libeufin-bankdb-postgres]” section and the following value. -CONFIG - PostgreSQL connection string. - -SQL_DIR - Where are the SQL files to setup our tables? +.. include:: frags/common-db-options.rs SEE ALSO ======== diff --git a/manpages/libeufin-nexus.conf.5.rst b/manpages/libeufin-nexus.conf.5.rst @@ -147,17 +147,7 @@ The following configuration value(s) belong to the “[nexus-httpd-wire-gateway- ENABLED Whether to serve the Wire Gateway API. -AUTH_METHOD - Authentication scheme, this can either be ``basic``, ``bearer`` or ``none``. - -USERNAME - User name for ``basic`` authentication scheme. - -PASSWORD - Password for ``basic`` authentication scheme. - -TOKEN - Token for ``bearer`` authentication scheme. +.. include:: frags/common-api-options.rst HTTP REVENUE API OPTIONS ------------------------ @@ -167,28 +157,25 @@ The following configuration value(s) belong to the “[nexus-httpd-revenue-api] ENABLED Whether to serve the Revenue API. -AUTH_METHOD - Authentication scheme, this can either be ``basic``, ``bearer`` or ``none``. +.. include:: frags/common-api-options.rst -USERNAME - User name for ``basic`` authentication scheme. +HTTP OBSERVABILITY API OPTIONS +------------------------------ -PASSWORD - Password for ``basic`` authentication scheme. +The following configuration value(s) belong to the “[nexus-httpd-observability-api]” section. + +ENABLED + Whether to serve the Observability API. + +.. include:: frags/common-api-options.rst -TOKEN - Token for ``bearer`` authentication scheme. DATABASE OPTIONS ---------------- Setting the database belongs to the “[libeufin-nexusdb-postgres]” section and the following value. -CONFIG - PostgreSQL connection string. - -SQL_DIR - Where are the SQL files to setup our tables? +.. include:: frags/common-db-options.rs SEE ALSO ======== diff --git a/manpages/taler-magnet-bank.conf.5.rst b/manpages/taler-magnet-bank.conf.5.rst @@ -70,7 +70,7 @@ The following configuration value(s) belong to the “[magnet-bank-httpd-wire-ga ENABLED Whether to serve the Wire Gateway API. -.. include:: frags/common-api-optio +.. include:: frags/common-api-options.rst HTTP REVENUE API OPTIONS ------------------------ @@ -80,7 +80,7 @@ The following configuration value(s) belong to the “[magnet-bank-httpd-revenue ENABLED Whether to serve the Revenue API. -.. include:: frags/common-api-optio +.. include:: frags/common-api-options.rst DATABASE OPTIONS ----------------