commit b48d70f2e786d3e9632ade9fa0f1fa1e40c90c88
parent 1c4e6e98f73e3b898dc087096cc4699ffbf15282
Author: Vlada Svirsh <svirv1@bfh.ch>
Date: Sat, 22 Nov 2025 19:30:46 +0100
update DD69
Diffstat:
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.