- town.muni.arbiter.createAppPasswordArbiter procedure 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`.
- town.muni.arbiter.createArbiter procedure Provision a brand-new stewarded PDS account. The caller authenticates via serviceAuth (aud = arbiter-server DID, lxm = town.muni.arbiter.createArbiter). The server creates a new account on the configured default PDS using an invite code + random password, stores the credentials, and writes the service + recovery records from the new 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.resetPoli
- town.muni.arbiter.createDid procedure Create a new DID that will be managed by this service. A new arbiter will be created in order to manage access to the DID. The arbiter will be configured with a default policy that sets the creator as the owner of the arbiter and allows them to change the DID document. The policy can also be changed later. The created DID will be returned
- town.muni.arbiter.createSpace procedure Create a new space on an arbiter.
- town.muni.arbiter.defs defs Configurable fields for a DID PLC document.
- town.muni.arbiter.deleteArbiter procedure Delete an arbiter from the server.
- town.muni.arbiter.deleteSpace procedure Delete a space from the arbiter.
- town.muni.arbiter.getArbiterConfig query Get the current config object for an arbiter.
- town.muni.arbiter.getSpaceConfig query Get the configuration of a space on the arbiter.
- town.muni.arbiter.getSpaceMembers query Get the members that have been assigned to the space. This is not a flat membership list, but a list of the direct members of the space, including DIDs, local spaces, and remote spaces that have been added as members, without doing any resolution of remote spaces.
- town.muni.arbiter.listSpaces query Get the members that have been assigned to the space. This is not a flat membership list, but a list of the direct members of the space, including DIDs, local spaces, and remote spaces that have been added as members, without doing any resolution of remote spaces.
- town.muni.arbiter.proxy procedure Proxied XRPC request through an arbiter's policy. The caller authenticates via serviceAuth (aud = arbiter-server DID, lxm = town.muni.arbiter.proxy). The body specifies the arbiter DID to act on behalf of, the target DID#service to reach, and the inner XRPC request (method, nsid, parameters, body) to evaluate. The server drives the arbiter's Rego policy and proxies the inner request to the target authenticated as the stewarded account. The `nsid` here is the *inner* request NSID, distinct from
- town.muni.arbiter.recovery record Recovery-admin designation record. Documents who is intended to recover the arbiter. The arbiter does not yet act on this record; recovery is via direct PDS access for now.
- town.muni.arbiter.removeSpaceMember procedure Remove a member's access from a space.
- town.muni.arbiter.resetPolicy procedure Reset a stewarded arbiter's root policy. The caller authenticates via serviceAuth (aud = arbiter-server DID, lxm = town.muni.arbiter.resetPolicy). Only the account designated in the arbiter's `town.muni.arbiter.recovery/self` record (the recovery admin) may reset the policy. The replacement Rego source is written to `town.muni.arbiter.policy.root/self` and the arbiter is re-onboarded. If no recovery admin is set, this endpoint is unavailable (forbidden).
- town.muni.arbiter.resolveSpaceMembers query Get the flattened, resolved list of members for a space. This member list will be the same as what the server is expected to return as the space host, but it will additionally contain a member config object for each member. The details of the member config object are dependent on the server implementation and possibly the arbiter config type.
- town.muni.arbiter.service record Service record on a stewarded account's repo. Points at the arbiter server's DID (the did:web:... that hosts the #arbiter service). Presence/absence and the `did` field drive the arbiter lifecycle: - Absent → offboard (keep credentials, re-onboard if it returns). - `did` != this server → offboard + purge credentials.
- town.muni.arbiter.setArbiterConfig procedure Set the config object for an arbiter.
- town.muni.arbiter.setSpaceConfig procedure Configure a space on the arbiter.
- town.muni.arbiter.setSpaceMemberAccess procedure Set the access of a member in a space. This is also how you add a new member to the space.
- town.muni.arbiter.updateDidDoc procedure Update the DID doc for a DID that is hosted by this service.