# fyi.opensocial.participate

> For personal sessions.

- Kind: permission-set
- Authority: opensocial.fyi
- Lexicon: 1
- Published by [lexicons.opensocial.fyi](https://lexicon.garden/identity/did:plc:2gqnilpksz2e7faj3bwvo6qc), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.participate)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.participate/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.participate/analytics)

## Permission set (`fyi.opensocial.participate`)

Type: permission-set

### Shown at sign-in

- `title` (string): Groups
- `detail` (string): See groups and your invites, join or leave groups, and report content.

### Permissions

- `space` (permission): Read records in the space self among anyone's fyi.opensocial.meta spaces. From the Atproto Spaces proposal (0016); servers without it ignore space permissions.
  - Constraints: authority: *, skey: self, action: read
  - Space type: `fyi.opensocial.meta`
- `space` (permission): Read, create, update and delete fyi.opensocial.acceptance records in the space self among anyone's fyi.opensocial.members spaces. From the Atproto Spaces proposal (0016); servers without it ignore space permissions.
  - Constraints: authority: *, skey: self, collection: fyi.opensocial.acceptance, action: read, create, update, delete
  - Space type: `fyi.opensocial.members`
- `space` (permission): Read records in the space self among your own fyi.opensocial.invites spaces, and create the spaces themselves. From the Atproto Spaces proposal (0016); servers without it ignore space permissions.
  - Constraints: authority: self, skey: self, action: read, manage: create
  - Space type: `fyi.opensocial.invites`
- `rpc` (permission): Call fyi.opensocial.requestJoin, fyi.opensocial.cancelJoinRequest, fyi.opensocial.getJoinRequest, fyi.opensocial.leaveGroup, fyi.opensocial.getActorInvites, fyi.opensocial.declineInvite and fyi.opensocial.createReport on any service, by the reference implementation's rules. Servers that require a concrete audience grant it only with inheritAud and an aud on the scope.
  - Constraints: aud: *
  - Methods: `fyi.opensocial.requestJoin`, `fyi.opensocial.cancelJoinRequest`, `fyi.opensocial.getJoinRequest`, `fyi.opensocial.leaveGroup`, `fyi.opensocial.getActorInvites`, `fyi.opensocial.declineInvite`, `fyi.opensocial.createReport`

### Asking for it (OAuth scope)

- `include:fyi.opensocial.participate` (scope): A client asks for this permission set with this scope. The scope builder lists what the set grants.
  - Scope builder: `Open in the scope builder`

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "For personal sessions.",
      "detail": "See groups and your invites, join or leave groups, and report content.",
      "permissions": [
        {
          "action": [
            "read"
          ],
          "authority": "*",
          "resource": "space",
          "skey": "self",
          "spaceType": "fyi.opensocial.meta",
          "type": "permission"
        },
        {
          "action": [
            "read",
            "create",
            "update",
            "delete"
          ],
          "authority": "*",
          "collection": [
            "fyi.opensocial.acceptance"
          ],
          "resource": "space",
          "skey": "self",
          "spaceType": "fyi.opensocial.members",
          "type": "permission"
        },
        {
          "action": [
            "read"
          ],
          "authority": "self",
          "manage": [
            "create"
          ],
          "resource": "space",
          "skey": "self",
          "spaceType": "fyi.opensocial.invites",
          "type": "permission"
        },
        {
          "aud": "*",
          "lxm": [
            "fyi.opensocial.requestJoin",
            "fyi.opensocial.cancelJoinRequest",
            "fyi.opensocial.getJoinRequest",
            "fyi.opensocial.leaveGroup",
            "fyi.opensocial.getActorInvites",
            "fyi.opensocial.declineInvite",
            "fyi.opensocial.createReport"
          ],
          "resource": "rpc",
          "type": "permission"
        }
      ],
      "title": "Groups",
      "type": "permission-set"
    }
  },
  "id": "fyi.opensocial.participate",
  "lexicon": 1
}
```
