Skip to content

Alice blocking Bob removes Bob from her followers collection

given: "Alice" created an actor on "abel" called "Alice"

send.Alice.request.create_actor
{
  "base_url": "http://abel",
  "preferred_username": "Alice",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Alice.response.create_actor
{
  "attachment": null,
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1"
  ],
  "publicKey": {
    "id": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ#legacy-key-1",
    "owner": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0QKLa/xcnf/Na5Poly4D\nClec3uyGdwf6HWDJqShy0sNR/m8/GrWOTvSxldVi4JOjoRXYFD+x9h1biqhjJvMs\nEvflW8qDZ/WwQUcyMWsDVCWEpE8dusHJQ4aWRhrUGfwg2ipSyyDGaTwaAJ+2NL20\nOlOzK26XulB7qp3EsG8AmxCVLTLIpeHQEjRhbQalAclJrz1/umuYBntkOKab2R1F\n4XY1MO4PFmgIZMQzCaKEVGdw+6lm1NIuDzTegOftECBnjOsGLADlhqxaOIwmxSa+\nu83pDIQAve5USuRO97ZGiGV6Govsvjp4Eg62Ed+aZp09nV/F5nyuewXVhOwlvea6\npwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "type": "Person",
  "inbox": "http://abel/inbox/EVYNbh6UsKndhpD_VhSZoA",
  "outbox": "http://abel/outbox/PJyW2iC7dVsMwO_G8LKKjQ",
  "followers": "http://abel/followers/SUdVt9X6_JaxoRHXjPiUvQ",
  "following": "http://abel/following/sLXjCTs4pgPdVNDtfYaBzw",
  "preferredUsername": "Alice",
  "name": "Alice",
  "identifiers": [
    "acct:Alice@abel",
    "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
  ],
  "endpoints": {
    "sharedInbox": "http://abel/shared_inbox"
  }
}

given: "Bob" created an actor on "banach" called "Bob"

send.Bob.request.create_actor
{
  "base_url": "http://banach",
  "preferred_username": "Bob",
  "profile": {},
  "automatically_accept_followers": null,
  "name": null
}
receive.Bob.response.create_actor
{
  "attachment": null,
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1"
  ],
  "publicKey": {
    "id": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ#legacy-key-1",
    "owner": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlpWa9+TsjIG+xiQHak9H\nW6uqMYh3ah8KOI+2gaEoZ6l/SHhl3Ks06FT8RAHy8++M2Od5UnUTsDFp7WfG8nLs\n8Q2zYidnlJKDDD4TMXy86Fat2jikvx9LH5TnAotT1PWqeWrQsnxwKFxgDYPoc58u\nSg8q8gwPwxyuQAPmKHml4Wa4M/ejZiWgEi2Si9SlvibAC/0miYhCPEeo7B6NPusH\nr5cRQlzeTkE7SLKTruPPulRPDjwZDCRd29NIoB10XI72wjzRAbkap/HNS3wLSoMj\n1lkeN78jAXgQZq0C4P5CG+h2Xgq1/Cwwe5g8lHaSHV0EiDXTP87pJp6iSrnq34W+\nDwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "type": "Person",
  "inbox": "http://banach/inbox/6t0lWUhmEVS36vSWpQbl6g",
  "outbox": "http://banach/outbox/09bJHxvBZTWrKw1Ldh4FgA",
  "followers": "http://banach/followers/FyENHBFxamWKHDlmdmNk2g",
  "following": "http://banach/following/kxCr_8k5gXJUr8JIS86tkQ",
  "preferredUsername": "Bob",
  "name": "Bob",
  "identifiers": [
    "acct:Bob@banach",
    "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  }
}

when: "Bob" sends "Alice" a Follow Activity

send.Bob.trigger.send_message
{
  "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
    "to": [
      "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
    ],
    "id": "follow:03b770af-8c28-469d-8580-83e4736916c4",
    "published": "2025-02-23T08:46:38Z",
    "object": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
  }
}
receive.Bob.outgoing
{
  "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "event_type": "outgoing",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
      "to": [
        "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
      ],
      "id": "follow:03b770af-8c28-469d-8580-83e4736916c4",
      "published": "2025-02-23T08:46:38Z",
      "object": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
    },
    "recipients": {
      "recipients": [
        "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
      ],
      "public": false
    }
  }
}
receive.Alice.incoming
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "event_type": "incoming",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
      "to": [
        "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
      ],
      "id": "follow:03b770af-8c28-469d-8580-83e4736916c4",
      "published": "2025-02-23T08:46:38Z",
      "object": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
    },
    "recipients": {
      "recipients": [
        "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ"
      ],
      "public": false
    }
  }
}

when: "Alice" sends an Accept to this Follow Activity

send.Alice.trigger.send_message
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Accept",
    "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
    "to": [
      "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
    ],
    "published": "2025-02-23T08:46:38Z",
    "object": "follow:03b770af-8c28-469d-8580-83e4736916c4",
    "id": "accept:fec4f2ee-52d1-4f02-9e4a-c8e7b7f67aa0"
  }
}
receive.Alice.outgoing
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "event_type": "outgoing",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
      "to": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "published": "2025-02-23T08:46:38Z",
      "object": "follow:03b770af-8c28-469d-8580-83e4736916c4",
      "id": "accept:fec4f2ee-52d1-4f02-9e4a-c8e7b7f67aa0"
    },
    "recipients": {
      "recipients": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "public": false
    }
  }
}
receive.Bob.incoming
{
  "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "event_type": "incoming",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Accept",
      "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
      "to": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "published": "2025-02-23T08:46:38Z",
      "object": "follow:03b770af-8c28-469d-8580-83e4736916c4",
      "id": "accept:fec4f2ee-52d1-4f02-9e4a-c8e7b7f67aa0"
    },
    "recipients": {
      "recipients": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "public": false
    }
  }
}

when: "Alice" blocks "Bob"

send.Alice.trigger.send_message
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Block",
    "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
    "to": [
      "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
    ],
    "id": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ/5623f0a7e3b2fb81",
    "published": "2025-02-23T08:46:38Z",
    "object": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
  }
}
receive.Alice.outgoing
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "event_type": "outgoing",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Block",
      "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
      "to": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "id": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ/5623f0a7e3b2fb81",
      "published": "2025-02-23T08:46:38Z",
      "object": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
    },
    "recipients": {
      "recipients": [
        "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ"
      ],
      "public": false
    }
  }
}

then: The "followers" collection of "Alice" does not include "Bob"

send.Alice.request.fetch
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "uri": "http://abel/followers/SUdVt9X6_JaxoRHXjPiUvQ"
}
receive.Alice.response.fetch
{
  "actor": "http://abel/actor/sY6LhZ07HQBRnEXyUfTZCQ",
  "uri": "http://abel/followers/SUdVt9X6_JaxoRHXjPiUvQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "http://abel/followers/SUdVt9X6_JaxoRHXjPiUvQ",
    "type": "OrderedCollection"
  }
}

then: The "following" collection of "Bob" does not include "Alice"

send.Bob.request.fetch
{
  "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "uri": "http://banach/following/kxCr_8k5gXJUr8JIS86tkQ"
}
receive.Bob.response.fetch
{
  "actor": "http://banach/actor/rnPhMB-TglKlwKfQV1dtSQ",
  "uri": "http://banach/following/kxCr_8k5gXJUr8JIS86tkQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "http://banach/following/kxCr_8k5gXJUr8JIS86tkQ",
    "type": "OrderedCollection"
  }
}