A community based topic aggregation platform built on atproto
1{
2 "lexicon": 1,
3 "id": "social.coves.community.update",
4 "defs": {
5 "main": {
6 "type": "procedure",
7 "description": "Update community profile. Requires authentication and moderator/admin permissions.",
8 "input": {
9 "encoding": "application/json",
10 "schema": {
11 "type": "object",
12 "required": ["community"],
13 "properties": {
14 "community": {
15 "type": "string",
16 "format": "did",
17 "description": "DID of the community to update"
18 },
19 "name": {
20 "type": "string",
21 "maxGraphemes": 64,
22 "maxLength": 640,
23 "description": "Community display name"
24 },
25 "description": {
26 "type": "string",
27 "maxGraphemes": 300,
28 "maxLength": 3000,
29 "description": "Community description"
30 },
31 "avatar": {
32 "type": "blob",
33 "accept": ["image/png", "image/jpeg", "image/webp"],
34 "maxSize": 1000000
35 },
36 "banner": {
37 "type": "blob",
38 "accept": ["image/png", "image/jpeg", "image/webp"],
39 "maxSize": 2000000
40 },
41 "rules": {
42 "type": "array",
43 "maxLength": 10,
44 "items": {
45 "type": "string",
46 "maxGraphemes": 200,
47 "maxLength": 2000
48 },
49 "description": "Community rules"
50 },
51 "categories": {
52 "type": "array",
53 "maxLength": 3,
54 "items": {
55 "type": "string",
56 "maxLength": 50
57 },
58 "description": "Community categories for discovery"
59 },
60 "language": {
61 "type": "string",
62 "format": "language",
63 "description": "Primary language of the community"
64 },
65 "membershipThreshold": {
66 "type": "integer",
67 "minimum": 0,
68 "maximum": 10000,
69 "description": "Reputation threshold required for membership"
70 },
71 "visibility": {
72 "type": "string",
73 "knownValues": ["public", "unlisted", "private"],
74 "maxLength": 64,
75 "description": "Community visibility level"
76 },
77 "allowExternalDiscovery": {
78 "type": "boolean",
79 "description": "Whether other Coves instances can index and discover this community"
80 }
81 }
82 }
83 },
84 "output": {
85 "encoding": "application/json",
86 "schema": {
87 "type": "object",
88 "required": ["uri", "cid"],
89 "properties": {
90 "uri": {
91 "type": "string",
92 "format": "at-uri",
93 "description": "AT-URI of the updated community profile"
94 },
95 "cid": {
96 "type": "string",
97 "format": "cid",
98 "description": "CID of the updated community profile"
99 }
100 }
101 }
102 },
103 "errors": [
104 {
105 "name": "NotFound",
106 "description": "Community not found"
107 },
108 {
109 "name": "NotAuthorized",
110 "description": "User is not authorized to update this community"
111 }
112 ]
113 }
114 }
115}