# deSEC provider The [deSEC](https://desec.io) provider implements all [Protocol53](https://github.com/outskirtslabs/protocol53) operations with deSEC’s v1 API. ## Installation ```clojure {:deps {com.outskirtslabs/protocol53-desec {:mvn/version "0.0.1"}}} ``` ## Authentication Create a basic token through https://desec.io/tokens[deSEC’s token management interface]. ```clojure (require '[ol.protocol53.desec :as desec]) (def dns (desec/provider {:token "token"})) ``` Pass a caller-built `java.net.http.HttpClient` as `:http-client` when advanced HTTP policy requires Java interop. ## TTL Policy A deSEC RRset cannot have a TTL below 3600 seconds. The provider always clamps lower requested values to 3600 and returns the value deSEC stored. TTL belongs to the complete RRset, so all records with the same owner and type share one TTL. When setting an RRset whose input records disagree, the first record’s TTL is used. ## RRset and Rate-Limit Behavior Append and delete operations read the zone before applying one atomic bulk write. As with other Protocol53 providers, callers must coordinate concurrent mutations of the same RRset. HTTP 429 responses are retried according to deSEC’s `Retry-After` header while the operation deadline permits. ## Integration Tests