town.muni.arbiter.createAppPasswordArbiter
Import an existing account as a stewarded arbiter. The caller provides an app password proving control of the account. The server stores the credentials and writes the service + recovery records from the account's session. No policy is written: the arbiter stays offline (fail-closed) until the recovery admin installs the first policy via `town.muni.arbiter.resetPolicy`.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | arbiter.muni.town |
| Indexed |
Checks
Validunlimited-stringdefs.main.input.schema.properties.appPasswordNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Import an existing account as a stewarded arbiter.\n\nThe caller provides an app password proving control of the account.\nThe server stores the credentials and writes the service + recovery records\nfrom the account's session. No policy is written: the arbiter stays offline\n(fail-closed) until the recovery admin installs the first policy via\n`town.muni.arbiter.resetPolicy`.",
"errors": [
{
"description": "The requesting user is not allowed to import an arbiter.",
"name": "ErrPermissionDenied"
},
{
"description": "An arbiter for this DID already exists on this server.",
"name": "ErrArbiterAlreadyExists"
},
{
"description": "Login or initial record writes failed.",
"name": "ErrProvisioningFailed"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"appPassword": {
"description": "App password for the PDS account.",
"type": "string"
},
"arbiterDid": {
"description": "The DID of the account to import.",
"format": "did",
"type": "string"
}
},
"required": [
"arbiterDid",
"appPassword"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"ok": {
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "town.muni.arbiter.createAppPasswordArbiter",
"lexicon": 1
}