swicg / swicg/groups

Restrict group visibility or participation to trusted instances

Open
#30 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
8
Forks
1
PR merge metrics
No merged PRs in 30d

Description

"As a group admin, I want to restrict visibility or participation in the group to users coming from trusted instances, so I can create a safe space within a trusted network (archipelago)."

Beyond open groups, some communities want to restrict participation to a trusted network of instances:

  • Closed federation: Only actors from allowed instances can join/participate
  • Trusted network: A coalition of instances that mutually trust each other's moderation
  • Invite-only from trusted sources: Members can only be invited by actors from certain instances

Use cases:

  • Academic research groups limited to university instances
  • Regional communities (e.g., instances in a specific country/language)
  • Coalition of like-minded instances with shared moderation standards
  • Private support groups where trust is paramount

This can be expressed via interactionPolicy (see https://github.com/swicg/groups/issues/26):

{
  "type": "Group",
  "id": "https://example.org/groups/1",
  "interactionPolicy": {
    "canJoin": {
      "automaticApproval": [
        "https://trusted-instance.org",
        "https://ally-instance.net"
      ],
      "manualApproval": []
    },
    "canPost": {
      "automaticApproval": ["members"]
    }
  }
}

Remote moderators can update the allow-list using Update on the Group actor:

{
  "type": "Update",
  "actor": "https://remote.example/users/mod",
  "object": {
    "type": "Group",
    "id": "https://example.org/groups/1",
    "interactionPolicy": {
      "canJoin": {
        "automaticApproval": [
          "https://trusted-instance.org/actors",
          "https://new-ally.net/actors"
        ]
      }
    }
  }
}

The group's home instance:

  1. Verifies the mod has permission
  2. Merges or replaces the policy as appropriate
  3. Federates the updated Group actor to followers

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked interactionPolicy proposal in groups issue 26 and the Group actor's Update behavior described here. Define how trusted-instance allow-lists, permission checks, policy merging or replacement, and federation of updates should work; done means the behavior is specified consistently for the listed use cases.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design, distributed-systems, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.