A community based topic aggregation platform built on atproto
at main 3.5 kB view raw
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}