taler-docs

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

commit b48d70f2e786d3e9632ade9fa0f1fa1e40c90c88
parent 1c4e6e98f73e3b898dc087096cc4699ffbf15282
Author: Vlada Svirsh <svirv1@bfh.ch>
Date:   Sat, 22 Nov 2025 19:30:46 +0100

update DD69

Diffstat:
Mdesign-documents/069-exchange-base-url-completion.rst | 26+++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/design-documents/069-exchange-base-url-completion.rst b/design-documents/069-exchange-base-url-completion.rst @@ -5,8 +5,8 @@ Summary ======= Define the request, which turns user-provided input (like ``exchange.example.com`` or just ``example.com``) into a canonical, -validated **HTTPS** exchange base URL. Validation requires that ``GET <base>/keys`` returns a valid -`ExchangeKeysResponse <https://docs.taler.net/core/api-exchange.html#get--keys>`__ object. +validated **HTTPS** exchange base URL. Validation requires that ``GET <base>/config`` returns a valid +`ExchangeVersionResponse <https://docs.taler.net/core/api-exchange.html#get--config>`__ object. Motivation ========== @@ -24,8 +24,8 @@ Requirements or ``https://exchange.example.com/``. * Always enforces HTTPS. * Base URL must end with a single ``/`` and omit ports. -* Must validate by requesting ``GET <base>/keys`` and checking for a valid - `ExchangeKeysResponse <https://docs.taler.net/core/api-exchange.html#get--keys>`__ object. +* Must validate by requesting ``GET <base>/config`` and checking for a valid + `ExchangeVersionResponse <https://docs.taler.net/core/api-exchange.html#get--config>`__ object. * Must support a local list of trusted exchanges for resolution of ambiguous inputs or typos (70% Levenshtein similarity). @@ -50,10 +50,10 @@ Process: 3. **Network check (keys)** - * For each candidate, perform ``GET <base>/keys``. + * For each candidate, perform ``GET <base>/config``. * Follow HTTPS redirects within limits. * Accept if the final response is a valid - `ExchangeKeysResponse <https://docs.taler.net/core/api-exchange.html#get--keys>`__. + `ExchangeVersionResponse <https://docs.taler.net/core/api-exchange.html#get--config>`__. * Otherwise, treat as protocol failure. 4. **List of trusted exchanges** @@ -80,14 +80,14 @@ Examples -------- * ``exchange.example.com`` -> **ok**, returns ``https://exchange.example.com/``. -* ``example.com`` -> try ``https://example.com/keys`` first. - If not valid, then try ``https://exchange.example.com/keys``. +* ``example.com`` -> try ``https://example.com/config`` first. + If not valid, then try ``https://exchange.example.com/config``. If that works → **ok**, returns ``https://exchange.example.com/``. -* ``https://exchange.example.com/`` with ``/keys`` returning something other - than a valid `ExchangeKeysResponse <https://docs.taler.net/core/api-exchange.html#get--keys>`__ object -> **bad-protocol**. +* ``https://exchange.example.com/`` with ``/config`` returning something other + than a valid `ExchangeVersionResponse <https://docs.taler.net/core/api-exchange.html#get--config>`__ object -> **bad-protocol**. * ``http://exchange.example.com`` -> **bad-syntax** (HTTPS required). -* ``example.com`` where ``/keys`` redirects to - ``https://api.example.com/keys`` and returns valid data -> **ok**, returns +* ``example.com`` where ``/config`` redirects to + ``https://api.example.com/config`` and returns valid data -> **ok**, returns ``https://api.example.com/``. * DNS failure -> **bad-network**. @@ -110,7 +110,7 @@ Drawbacks ========= * Requires maintaining a local list of trusted exchanges and fuzzy matching. -* Adds network overhead (``GET /keys`` probes). +* Adds network overhead (``GET /config`` probes). * Possible user confusion if multiple trusted exchanges are suggested as fuzzy matches.