1- ## DNS and HTTP challenges unified
1+ # DNS and HTTP challenges unified
22
33_ There's still a draft when the wind is blowing, but it's getting less._
44
5- ### Dedication
5+ ## Dedication
66
77It is indisputable that this is, in the first instance, Alec Troemel's fault,
88since he added support for http-01 challenges.
@@ -11,15 +11,15 @@ made in the process of unifying the two types of challenges,
1111while influenced by Alec's code and our discussions, are entirely my fault.
1212Alec cannot be blamed for my choices!
1313
14- ### A few words about words
14+ ## A few words about words
1515
1616Because the word "provider" is so overloaded, I'm going to refer to the
1717service-specific implementations as "drivers", except when I forget, or
1818missed changing an old use. "Provider" is still used in the class names. And
1919then there are the "service providers", viz., DNS services or web hosts,
2020etc.
2121
22- ### Overview (tl;dr)
22+ ## Overview (tl;dr)
2323
2424` ProviderBase ` described here defines the interface the ACME engine uses
2525with new-model drivers (all http-01 drivers, as there are no old ones). New
@@ -30,7 +30,7 @@ drivers normally should inherit from the `DNSProviderBase` or
3030individual drivers need to be created (or modified) to support it at this
3131time. _ unbound_ssh is a quirky but working example that supports aliasing.`
3232
33- ### ProviderBase interface for ACME engine
33+ ## ProviderBase interface for ACME engine
3434
3535The interface between the ACME protocol code and any driver implementation
3636consists of three methods, ` setup ` , ` unpropagated ` and ` clear ` . The first
@@ -75,11 +75,11 @@ This is the pattern which all three methods use: accept a list of challenges
7575subset which have problems or are not ready. So in all cases an empty list
7676returned means that all went well.
7777
78- ### ` ProviderBase `
78+ ## ` ProviderBase `
7979
8080Abstract base class for driver implementations ultimately inherit from.
8181
82- #### ProviderBase __ init__
82+ ### ProviderBase __ init__
8383
8484 __init__(self,
8585 *,
@@ -127,7 +127,7 @@ It is allowed to add, change, or even remove items from kwargs if necessary
127127
128128--- (see where for args documentation? DNS-Alias and DNS-Propagation & ???)
129129
130- #### ` setup(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
130+ ### ` setup(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
131131
132132The ` setup ` method is called to publish one or more challenges. Each item
133133in the list describes one challenge.
@@ -171,7 +171,7 @@ defined values:
171171| "skipped" | setup | may skip challenges after one has a hard failure |
172172| "unready" | unpropagated | soft fail: record not deployed to authoritative server(s). If a non-recoverable error is detected, then use _ failed_ . |
173173
174- #### ` unpropagated(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
174+ ### ` unpropagated(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
175175
176176This method is expected to be needed mostly for DNS challenges, but it
177177should be used whenever a service provider has a relatively slow or
@@ -180,7 +180,7 @@ challenge data being visible to the world. When there's no expectation of
180180such lag, or no way to reliably check that the challenge has propagated,
181181this may as well just return an empty list, and we'll all hope for the best.
182182
183- #### ` clear(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
183+ ### ` clear(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Tuple[str, str, Dict[str, str]]] `
184184
185185` clear ` , unlike ` setup ` , SHOULD NOT stop processing challenges after hitting
186186an error. It's possible that any reported errors will be treated as
@@ -189,7 +189,7 @@ challenges).
189189
190190_ ? should have a status word for "this one's hard failed, forget about it"?_
191191
192- ### ` DNSProviderBase `
192+ ## ` DNSProviderBase `
193193
194194The driver * interface* is the same for everything except legacy DNS drivers,
195195but there are some differences which it makes no sense to push into
@@ -209,7 +209,7 @@ handling both the aliasing and non-aliasing case. `cname_domain` forms the
209209DNS name for the CNAME that should exist in the aliasing case and returns it
210210for the use of a hypothetical sanity check, or None when not aliasing.
211211
212- ### ` HTTPProviderBase `
212+ ## ` HTTPProviderBase `
213213
214214This intermediate base class stands ready to handle any HTTP-specific
215215options or helper methods. No additions are expected until sewer has had
0 commit comments