Skip to content

Bob sends Alice a Follow request, which is not answered yet

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/p7TcGOHwBey69lAyp_VkzQ#legacy-key-1",
    "owner": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7mBwC+bfo/SJ4ER5lZQ8\n3i2MjozhKBdUKyS68RQs/4YqAWOW+1Hc3FStAvVfMQkjrfJNyLSHOy+nosF2mjov\n8zwgrU0PUGRvDXvldsJT0a0ged6JFZAPAa19z0YMymf9XLLkOQrDyko4b0s8I98Y\n+/jjOPVdJZHhBDziTwZXucFW7jqXi9ZI848npQFNVimjKQMHNt3u/TrDewEmlam5\nTtZH4OvKRHr/YDWgDGPzkLtFHPxXrr+AscpFD0ojCaiDAYwPRpwCmpbIlOUH+jps\nHmx7Rd54QFJP9A0/p5ezAMT04nrtNURB8e6BeIgYdiTysTLZlJaYofdwUaKGHzB0\nMwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ",
  "type": "Person",
  "inbox": "http://abel/inbox/2bkjTvtavRa8VyQo7Qu2Og",
  "outbox": "http://abel/outbox/J_Tcm9aOuz34bi8ZA2ZHiA",
  "followers": "http://abel/followers/lUMUTMTcTTgpaaEbrPLaPw",
  "following": "http://abel/following/EK7Inh4XPTp_0kHvi-t-pQ",
  "preferredUsername": "alice",
  "name": "alice",
  "identifiers": [
    "acct:alice@abel",
    "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
  ],
  "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/m6ertWIqQBzjcqkisVqHSA#legacy-key-1",
    "owner": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuKp0rnJYq+7oo37JM/7\nhAXFSgDs20q2VzXVIzLuv9ybyMKnJK4dXI5cjearWraa5y96A1UyBwBfLJfro0Fs\nGKM2T6WeGOyqFECGpIvgZaM44lSoL0CRRI9PHD25OUEdULGEC/1W4ymiCHYRjnOp\nZyKsgfYZfVWOcrEqe+hjDAQnmJtyt6ujD4qrVlkFJt9l3JdqRBMrjCglOPE95D0e\nwm+FCgMHM2gf/sYLqu+C9JM7lOXi4HNaYsfYa6RIlNeHwZF0ci+zEEWE25v1zsof\nOKpQfyz74X9u0qeBqFk8JFsd5Y3G72nPIZ1lPy6PENIjOtkPN0f8KCP9N/7VeKGI\nFQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "id": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
  "type": "Person",
  "inbox": "http://banach/inbox/PuD7GYNBOOWs-nq_L6JMyw",
  "outbox": "http://banach/outbox/wzeWN1sRpuYXcVav4Md_3g",
  "followers": "http://banach/followers/l8oY6DZvC8VSfB6q_sYMJQ",
  "following": "http://banach/following/iDxKkg6SBFonZKawv2GsaQ",
  "preferredUsername": "bob",
  "name": "bob",
  "identifiers": [
    "acct:bob@banach",
    "http://banach/actor/m6ertWIqQBzjcqkisVqHSA"
  ],
  "endpoints": {
    "sharedInbox": "http://banach/shared_inbox"
  }
}

when: "bob" sends "alice" a Follow Activity

send.bob.trigger.send_message
{
  "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Follow",
    "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
    "to": [
      "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
    ],
    "id": "follow:7e7800db-33e6-4edb-8bcb-9e6247d2c21b",
    "published": "2025-02-23T08:46:03Z",
    "object": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
  }
}
receive.bob.outgoing
{
  "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
  "event_type": "outgoing",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
      "to": [
        "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
      ],
      "id": "follow:7e7800db-33e6-4edb-8bcb-9e6247d2c21b",
      "published": "2025-02-23T08:46:03Z",
      "object": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
    },
    "recipients": {
      "recipients": [
        "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
      ],
      "public": false
    }
  }
}
receive.alice.incoming
{
  "actor": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ",
  "event_type": "incoming",
  "data": {
    "raw": {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Follow",
      "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
      "to": [
        "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
      ],
      "id": "follow:7e7800db-33e6-4edb-8bcb-9e6247d2c21b",
      "published": "2025-02-23T08:46:03Z",
      "object": "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
    },
    "recipients": {
      "recipients": [
        "http://abel/actor/p7TcGOHwBey69lAyp_VkzQ"
      ],
      "public": false
    }
  }
}

then: The "followers" collection of "alice" does not include "bob"

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

then: The "following" collection of "bob" does not include "alice"

send.bob.request.fetch
{
  "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
  "uri": "http://banach/following/iDxKkg6SBFonZKawv2GsaQ"
}
receive.bob.response.fetch
{
  "actor": "http://banach/actor/m6ertWIqQBzjcqkisVqHSA",
  "uri": "http://banach/following/iDxKkg6SBFonZKawv2GsaQ",
  "data": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "http://banach/following/iDxKkg6SBFonZKawv2GsaQ",
    "type": "OrderedCollection"
  }
}