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.
Input
application/jsonrecord
unknown
Required
An at.happyproto.plugin.profile record.
slug
string
Required
The package slug, which becomes the record key. A profile record carries no slug of its own.
maxLength: 512 bytesvalidateOnly
boolean
Optional
Check the record and write nothing. Still requires authentication, as every procedure does.
Output
application/jsoncid
stringcid
Optional
A content identifier (CID) referencing immutable data.
uri
stringat-uri
Optional
The record written. Absent when validateOnly was set.
valid
boolean
Required
Always true; an invalid record is an error, not a result.
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. Upstream
The record could not be written to the caller's repo. NotConfigured
The registry has no identity configured. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"description": "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.",
"errors": [
{
"description": "The caller's identity could not be determined, so there is no repo to write to.",
"name": "AuthRequired"
},
{
"description": "The record is not a profile the indexer would accept. The message names the reason.",
"name": "InvalidRecord"
},
{
"description": "The record could not be written to the caller's repo.",
"name": "Upstream"
},
{
"description": "The registry has no identity configured.",
"name": "NotConfigured"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"record": {
"description": "An at.happyproto.plugin.profile record.",
"type": "unknown"
},
"slug": {
"description": "The package slug, which becomes the record key. A profile record carries no slug of its own.",
"maxLength": 512,
"type": "string"
},
"validateOnly": {
"default": false,
"description": "Check the record and write nothing. Still requires authentication, as every procedure does.",
"type": "boolean"
}
},
"required": [
"slug",
"record"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cid": {
"format": "cid",
"type": "string"
},
"uri": {
"description": "The record written. Absent when validateOnly was set.",
"format": "at-uri",
"type": "string"
},
"valid": {
"description": "Always true; an invalid record is an error, not a result.",
"type": "boolean"
}
},
"required": [
"valid"
],
"type": "object"
}
},
"type": "procedure"
}