diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/sphinx/_exts/__pycache__/typescriptdomain.cpython-39.pyc | bin | 15399 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-37.pyc | bin | 514 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-38.pyc | bin | 518 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-39.pyc | bin | 520 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-37.pyc | bin | 24431 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-38.pyc | bin | 24436 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-39.pyc | bin | 24344 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/_exts/taler_sphinx_theme/__pycache__/__init__.cpython-39.pyc | bin | 6548 -> 0 bytes | |||
-rw-r--r-- | doc/sphinx/reducer.rst | 378 |
9 files changed, 189 insertions, 189 deletions
diff --git a/doc/sphinx/_exts/__pycache__/typescriptdomain.cpython-39.pyc b/doc/sphinx/_exts/__pycache__/typescriptdomain.cpython-39.pyc Binary files differdeleted file mode 100644 index 077f3c9..0000000 --- a/doc/sphinx/_exts/__pycache__/typescriptdomain.cpython-39.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-37.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-37.pyc Binary files differdeleted file mode 100644 index 6f0c344..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-37.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-38.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-38.pyc Binary files differdeleted file mode 100644 index 2b7f52b..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-38.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-39.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-39.pyc Binary files differdeleted file mode 100644 index 0323e4b..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/__init__.cpython-39.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-37.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-37.pyc Binary files differdeleted file mode 100644 index 031c4ed..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-37.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-38.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-38.pyc Binary files differdeleted file mode 100644 index 062d289..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-38.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-39.pyc b/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-39.pyc Binary files differdeleted file mode 100644 index 32e2273..0000000 --- a/doc/sphinx/_exts/httpdomain/__pycache__/httpdomain.cpython-39.pyc +++ /dev/null diff --git a/doc/sphinx/_exts/taler_sphinx_theme/__pycache__/__init__.cpython-39.pyc b/doc/sphinx/_exts/taler_sphinx_theme/__pycache__/__init__.cpython-39.pyc Binary files differdeleted file mode 100644 index 7f4021b..0000000 --- a/doc/sphinx/_exts/taler_sphinx_theme/__pycache__/__init__.cpython-39.pyc +++ /dev/null diff --git a/doc/sphinx/reducer.rst b/doc/sphinx/reducer.rst index 2c75578..9728d7d 100644 --- a/doc/sphinx/reducer.rst +++ b/doc/sphinx/reducer.rst @@ -1458,236 +1458,236 @@ information about attempted challenges, with the final state being ``solved``: Challenges feedback for a challenge can have many different ``state`` values that applications must all handle. States other than ``solved`` are: - - **payment**: Here, the user must pay for a challenge. An example would be: +- **payment**: Here, the user must pay for a challenge. An example would be: + + .. code-block:: json + + { + "backup_state": "CHALLENGE_PAYING", + "selected_challenge_uuid": "80H646H5ZBR453C02Y5RT55VQSJZGM5REWFXVY0SWXY1TNE8CT30", + "challenge_feedback": { + "80H646H5ZBR453C02Y5RT55VQSJZGM5REWFXVY0SWXY1TNE8CT30" : { + "state" : "payment", + "taler_pay_uri" : "taler://pay/...", + "provider" : "https://localhost:8080/", + "payment_secret" : "3P4561HAMHRRYEYD6CM6J7TS5VTD5SR2K2EXJDZEFSX92XKHR4KG" + } + } + } - .. code-block:: json +- **body**: Here, the server provided an HTTP reply for + how to solve the challenge, but the reducer could not parse + them into a known format. A mime-type may be provided and may + help parse the details. - { - "backup_state": "CHALLENGE_PAYING", - "selected_challenge_uuid": "80H646H5ZBR453C02Y5RT55VQSJZGM5REWFXVY0SWXY1TNE8CT30", - "challenge_feedback": { - "80H646H5ZBR453C02Y5RT55VQSJZGM5REWFXVY0SWXY1TNE8CT30" : { - "state" : "payment", - "taler_pay_uri" : "taler://pay/...", - "provider" : "https://localhost:8080/", - "payment_secret" : "3P4561HAMHRRYEYD6CM6J7TS5VTD5SR2K2EXJDZEFSX92XKHR4KG" - } - } - } + .. code-block:: json - - **body**: Here, the server provided an HTTP reply for - how to solve the challenge, but the reducer could not parse - them into a known format. A mime-type may be provided and may - help parse the details. + { + "recovery_state": "CHALLENGE_SOLVING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "body", + "body": "CROCKFORDBASE32ENCODEDBODY", + "http_status": 403, + "mime_type" : "anything/possible" + } + } + } - .. code-block:: json +- **hint**: Here, the server provided human-readable hint for + how to solve the challenge. Note that the ``hint`` provided this + time is from the Anastasis provider and may differ from the ``instructions`` + for the challenge under ``recovery_information``: - { - "recovery_state": "CHALLENGE_SOLVING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "body", - "body": "CROCKFORDBASE32ENCODEDBODY", - "http_status": 403, - "mime_type" : "anything/possible" - } - } - } + .. code-block:: json - - **hint**: Here, the server provided human-readable hint for - how to solve the challenge. Note that the ``hint`` provided this - time is from the Anastasis provider and may differ from the ``instructions`` - for the challenge under ``recovery_information``: + { + "recovery_state": "CHALLENGE_SOLVING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "hint", + "hint": "Recovery TAN send to email mail@DOMAIN", + "http_status": 403 + } + } + } - .. code-block:: json +- **details**: Here, the server provided a detailed JSON status response + related to solving the challenge: - { - "recovery_state": "CHALLENGE_SOLVING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "hint", - "hint": "Recovery TAN send to email mail@DOMAIN", - "http_status": 403 - } - } + .. code-block:: json + + { + "recovery_state": "CHALLENGE_SOLVING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "details", + "details": { + "code": 8111, + "hint": "The client's response to the challenge was invalid.", + "detail" : null + }, + "http_status": 403 } + } + } - - **details**: Here, the server provided a detailed JSON status response - related to solving the challenge: +- **redirect**: To solve the challenge, the user must visit the indicated + Web site at ``redirect_url``, for example to perform video authentication: - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SOLVING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "details", - "details": { - "code": 8111, - "hint": "The client's response to the challenge was invalid.", - "detail" : null - }, - "http_status": 403 - } + { + "recovery_state": "CHALLENGE_SOLVING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "redirect", + "redirect_url": "https://videoconf.example.com/", + "http_status": 303 } } + } - - **redirect**: To solve the challenge, the user must visit the indicated - Web site at ``redirect_url``, for example to perform video authentication: +- **server-failure**: This indicates that the Anastasis provider encountered + a failure and recovery using this challenge cannot proceed at this time. + Examples for failures might be that the provider is unable to send SMS + messages at this time due to an outage. The body includes details about + the failure. The user may try again later or continue with other challenges. - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SOLVING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "redirect", - "redirect_url": "https://videoconf.example.com/", - "http_status": 303 - } - } + { + "recovery_state": "CHALLENGE_SELECTING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "server-failure", + "http_status": "500", + "error_code": 52 } + } + } - - **server-failure**: This indicates that the Anastasis provider encountered - a failure and recovery using this challenge cannot proceed at this time. - Examples for failures might be that the provider is unable to send SMS - messages at this time due to an outage. The body includes details about - the failure. The user may try again later or continue with other challenges. +- **truth-unknown**: This indicates that the Anastasis provider is unaware of + the specified challenge. This is typically a permanent failure, and user + interfaces should not allow users to re-try this challenge. - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SELECTING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "server-failure", - "http_status": "500", - "error_code": 52 - } + { + "recovery_state": "CHALLENGE_SELECTING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "truth-unknown", + "error_code": 8108 } } + } - - **truth-unknown**: This indicates that the Anastasis provider is unaware of - the specified challenge. This is typically a permanent failure, and user - interfaces should not allow users to re-try this challenge. +- **rate-limit-exceeded**: This indicates that the user has made too many invalid attempts in too short an amount of time. - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SELECTING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "truth-unknown", - "error_code": 8108 - } - } - } + { + "recovery_state": "CHALLENGE_SELECTING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "rate-limit-exceeded", + "error_code": 8121 + } + } + } - - **rate-limit-exceeded**: This indicates that the user has made too many invalid attempts in too short an amount of time. +- **authentication-timeout**: This indicates that the challenge is awaiting for some external authentication process to complete. The application should ``poll`` for it to complete, or proceed with selecting other challenges. - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SELECTING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "rate-limit-exceeded", - "error_code": 8121 - } - } + { + "recovery_state": "CHALLENGE_SELECTING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "authentication-timeout", + "error_code": 8122 } + } + } - - **authentication-timeout**: This indicates that the challenge is awaiting for some external authentication process to complete. The application should ``poll`` for it to complete, or proceed with selecting other challenges. +- **external-instructions**: This indicates that the challenge requires the user to perform some authentication method-specific actions. Details about what the user should do are provided. - .. code-block:: json + .. code-block:: json - { - "recovery_state": "CHALLENGE_SELECTING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "authentication-timeout", - "error_code": 8122 - } + { + "recovery_state": "CHALLENGE_SELECTING", + "recovery_information": { + "...": "..." + } + "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", + "challenge_feedback": { + "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { + "state": "external-instructions", + "method": "iban", + "async": true, // optional + "answer_code": 987654321, // optional + "details": { + "...": "..." } } + } + } - - **external-instructions**: This indicates that the challenge requires the user to perform some authentication method-specific actions. Details about what the user should do are provided. - - .. code-block:: json - - { - "recovery_state": "CHALLENGE_SELECTING", - "recovery_information": { - "...": "..." - } - "selected_challenge_uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0", - "challenge_feedback": { - "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0": { - "state": "external-instructions", - "method": "iban", - "async": true, // optional - "answer_code": 987654321, // optional - "details": { - "...": "..." - } - } - } - } + If "async" is "true", then the client should + poll for the challenge being satisfied using + the "answer_code" that has been provided. - If "async" is "true", then the client should - poll for the challenge being satisfied using - the "answer_code" that has been provided. + The specific instructions on how to satisfy + the challenge depend on the ``method``. + They include: - The specific instructions on how to satisfy - the challenge depend on the ``method``. - They include: + - **iban**: The user must perform a wire transfer from their account to the Anastasis provider. - - **iban**: The user must perform a wire transfer from their account to the Anastasis provider. + .. code-block:: json - .. code-block:: json + { + "challenge_amount": "EUR:1", + "credit_iban": "DE12345789000", + "business_name": "Data Loss Incorporated", + "wire_transfer_subject": "Anastasis 987654321" + } - { - "challenge_amount": "EUR:1", - "credit_iban": "DE12345789000", - "business_name": "Data Loss Incorporated", - "wire_transfer_subject": "Anastasis 987654321" - } - - Note that the actual wire transfer subject must contain both - the numeric ``answer_code`` as well as - the string ``Anastasis``. + Note that the actual wire transfer subject must contain both + the numeric ``answer_code`` as well as + the string ``Anastasis``. **poll:** |