at.happyproto.registry.updateProfile

Replace a package profile the caller has already published, held to the rules publishProfile applies. This is how a publisher edits a profile: it writes to the caller's own repo as them, where com.atproto.repo.putRecord sent through a HappyView instance goes wherever that instance's proxy routing points. It never creates a profile; publish a new one with publishProfile.

Repository @happyproto.at did:plc:mo7vq4jbioxwafy5zkcc3eux namespace authority
Details · procedure
Kindprocedure
Authorityregistry.happyproto.at
Indexed

Procedure

procedure · POST

Input

application/json

record

requiredunknown

The replacement at.happyproto.plugin.profile record.

slug

requiredstring

The package slug: the record key of the profile to replace.

  • maxLength: 512

swapCid

string · cid

The CID the profile was read at. The write is refused with InvalidSwap if the profile has changed since.

Output

application/json

cid

requiredstring · cid

uri

requiredstring · at-uri

Errors

AuthRequired

The caller's identity could not be determined, so there is no repo to write to.

InvalidRecord

The record is not a profile the indexer would accept. The message names the reason.

ProfileMissing

No profile is indexed at that slug for the caller.

InvalidSwap

The profile changed after swapCid was read.

Upstream

The record could not be written to the caller's repo.

NotConfigured

The registry has no identity configured.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Check a package profile against the rules the indexer applies, and optionally write it to the caller's repo. The indexer validates a record only after it is published and skips an invalid one quietly, so a publisher writing the record itself gets no feedback; this answers the same refusal before the record exists. Pass validateOnly to check a record without writing it. Like every XRPC procedure this needs an authenticated caller, so validateOnly is a dry run rather than an anonymous one.

  • Create or update a plugin project in the caller's repo. The first call writes the site.standard.publication, the at.happyproto.registry.project and the software.release.project, in that order, so each is indexed after what it depends on. Later calls update the publication and the at.happyproto.registry.project only; the project record itself is never changed.