space.highport.manage.setCertificateMode
Choose how names under a proven base get certificates. wildcard lets this service get one wildcard certificate for the base over DNS-01, through the base's own challenge target, and returns the record that delegates it. per-name ends that grant. The caller must own the base, which must be verified or active. Delegation does not need to be enabled.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | manage.highport.space |
| Indexed |
Showing version bafyreidt7voqlfd7jlybbim7y7doqppsfcbfn6a5xcqy2pit4edrgn5sli. Show the latest
Checks
Validunlimited-stringdefs.main.input.schema.properties.modeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.domainNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.modeNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Choose how names under a proven base get certificates. wildcard lets this service get one wildcard certificate for the base over DNS-01, through the base's own challenge target, and returns the record that delegates it. per-name ends that grant. The caller must own the base, which must be verified or active. Delegation does not need to be enabled.",
"errors": [
{
"description": "Not a syntactically valid domain.",
"name": "InvalidDomain"
},
{
"description": "No verified or active registration of that domain belongs to the caller.",
"name": "NotBaseOwner"
},
{
"description": "mode is wildcard and acknowledgeCertificateGrant is not true.",
"name": "CertificateGrantNotAcknowledged"
},
{
"description": "No wildcard certificate is offered for this domain: it is a name delegated under another base, it is under a base offered to anyone without DNS proof, or the deployment has no challenge zone. The error message says which.",
"name": "WildcardNotOffered"
},
{
"description": "The base's CAA records block this mode. For wildcard, issuewild (or issue, if there is no issuewild) must allow this deployment's issuer, account and DNS-01. For either mode, issue records must not limit this issuer to DNS-01, because the probe and per-name certificates cannot use it. The error message names the blocking record.",
"name": "CaaForbidsIssuance"
},
{
"description": "A new wildcard grant was requested during the deployment's cooldown after the base's last grant or ending, or while its previous wildcard is still being retired. Ending a grant is never limited.",
"name": "RateLimitExceeded"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"acknowledgeCertificateGrant": {
"description": "Must be true for wildcard. While the base's _acme-challenge record points at the challenge target, this service can get a publicly trusted certificate for the base and every name in its zone. Removing that record ends the grant.",
"type": "boolean"
},
"domain": {
"description": "The base: a domain registered to the caller.",
"maxLength": 253,
"type": "string"
},
"mode": {
"description": "per-name: one certificate per name, ending any wildcard grant. wildcard: grant this service a wildcard certificate for the base. A new grant after an earlier one ended gets a new challenge target.",
"knownValues": [
"per-name",
"wildcard"
],
"type": "string"
}
},
"required": [
"domain",
"mode"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"domain": {
"type": "string"
},
"mode": {
"knownValues": [
"per-name",
"wildcard"
],
"type": "string"
},
"records": {
"description": "For wildcard, one record: the base's _acme-challenge CNAME pointing at its challenge target, with purpose certificate. Empty for per-name.",
"items": {
"ref": "space.highport.defs#dnsInstruction",
"type": "ref"
},
"type": "array"
},
"verified": {
"description": "Whether the record this mode needs is in place. For wildcard, false until the base's _acme-challenge record is found pointing at its challenge target. Always true for per-name, which needs no record.",
"type": "boolean"
}
},
"required": [
"domain",
"mode",
"records",
"verified"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "space.highport.manage.setCertificateMode",
"lexicon": 1
}