full diff

fyi.opensocial.requestJoin

From
bafyreidqnd7jbttk7m4nwh2i5zi57uiqg72e66zrtefji26f6v4irrl3py indexed 2026-09-24 00:10 UTC View this version
To
bafyreiaofa3ho6jck7t7x2hw5idhp23uv75w2szx2js6j5gsssctclolxi indexed 2026-11-05 16:25 UTC View this version

Compatibility

breaking 3 breaking changes, 8 non-breaking changes.

Breaking changes (3)
  • ConstraintTightened ConstraintTightened { vertex_id: "fyi.opensocial.requestJoin:output.status", sort: "knownValues", old_value: "[\"admitted\",\"pending\"]", new_value: "[\"pending\",\"admitted\"]" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.requestJoin:input.message", sort: "maxGraphemes", value: "2000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.requestJoin:input.message", sort: "maxLength", value: "20000" }
Non-breaking changes (8)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#joinRequest" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.requestJoin:output.membership" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.requestJoin:output.request" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.requestJoin:output", tgt: "fyi.opensocial.requestJoin:output.membership", kind: "prop", name: Some("membership") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.requestJoin:output", tgt: "fyi.opensocial.requestJoin:output.request", kind: "prop", name: Some("request") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.requestJoin:output.membership", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.requestJoin:output.request", tgt: "fyi.opensocial.defs#joinRequest", kind: "ref", name: None }

Migration guidance

Added

  • AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#joinRequest" }
  • AddedVertex { vertex_id: "fyi.opensocial.requestJoin:output.membership" }
  • AddedVertex { vertex_id: "fyi.opensocial.requestJoin:output.request" }

Constraint changes

  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.requestJoin:input.message", sort: "maxGraphemes", value: "2000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.requestJoin:input.message", sort: "maxLength", value: "20000" }
  • ConstraintTightened ConstraintTightened { vertex_id: "fyi.opensocial.requestJoin:output.status", sort: "knownValues", old_value: "[\"admitted\",\"pending\"]", new_value: "[\"pending\",\"admitted\"]" }

Notes

  • Non-breaking: AddedEdge { src: "fyi.opensocial.requestJoin:output", tgt: "fyi.opensocial.requestJoin:output.membership", kind: "prop", name: Some("membership") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.requestJoin:output", tgt: "fyi.opensocial.requestJoin:output.request", kind: "prop", name: Some("request") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.requestJoin:output.membership", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.requestJoin:output.request", tgt: "fyi.opensocial.defs#joinRequest", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
5 "description": "Ask to join, or redeem an invite. No role required; authenticated as the requester.",
5 "description": "Ask to join a group, optionally redeeming an invitation. An invite the group has sent the caller, neither taken back nor past its expiresAt, admits them at once, whatever the group's join policy, with the group's default roles; one named that is not such an invite is refused. Unnamed, a waiting invite is redeemed all the same. No role required; authenticated as the requester.",
66 "errors": [
77 {
8 "name": "InviteRequired"
8 "description": "The group isn't hosted here.",
9 "name": "GroupNotFound"
10 },
11 {
12 "description": "The invitation is expired, revoked, or not addressed to the caller.",
13 "name": "InvalidInvite"
14 },
15 {
16 "description": "The group requires an invitation.",
17 "name": "JoinClosed"
918 },
1019 {
20 "description": "The caller is a member already.",
1121 "name": "AlreadyMember"
1222 }
1323 ],
1424 "input": {
1525 "encoding": "application/json",
1626 "schema": {
1727 "properties": {
1828 "group": {
1929 "description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",
2030 "format": "did",
2131 "type": "string"
2232 },
2333 "invite": {
34 "description": "An invitation from this group to the caller.",
2435 "format": "at-uri",
2536 "type": "string"
2637 },
2738 "message": {
39 "maxGraphemes": 2000,
40 "maxLength": 20000,
2841 "type": "string"
2942 }
3043 },
3144 "required": [
3245 "group"
3346 ],
3447 "type": "object"
3548 }
3649 },
3750 "output": {
3851 "encoding": "application/json",
3952 "schema": {
4053 "properties": {
54 "membership": {
55 "description": "Present when admitted.",
56 "ref": "com.atproto.repo.strongRef",
57 "type": "ref"
58 },
59 "request": {
60 "description": "Present when pending.",
61 "ref": "fyi.opensocial.defs#joinRequest",
62 "type": "ref"
63 },
4164 "status": {
4265 "knownValues": [
43 "admitted",
44 "pending"
66 "pending",
67 "admitted"
4568 ],
4669 "type": "string"
4770 }
4871 },
4972 "required": [
5073 "status"
5174 ],
5275 "type": "object"
5376 }
5477 },
5578 "type": "procedure"
5679 }
5780 },
5881 "id": "fyi.opensocial.requestJoin",
5982 "lexicon": 1
6083}

Compare other versions