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,
"published": "2025-12-19T09:51:20.147074",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
}
],
"publicKey": {
"id": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ#legacy-key-1",
"owner": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1YP56sU02nA2J3r5upWV\nPcRlgRljjPw2/ojzARuxccvQzBN2c2bJJ3Fjjy1MyR1akSTzUdli4NNoukibDcHm\nyONdIX2i4dLY4IGWaomtOn1p9R0/nXahW15/SNraO2gpA4OdZdiYs3mr5OCaoTWe\n+FhemD+0RhmiR2RmoHX2NWfLt1vazNuIY69Oi0e6HKuGzN8zL0SJ3pEfzh9v3WZl\nsEBM3Mp9/ioSdxQZWCxOQD7Msi5t8cXpA8Vp0TpVWD4dcc1sqCYJ9iJXZJeexOKp\naGgKp/eNMwE8wfbnYJfsqro+RGowwKw+GDYmNbV3gmPSYUUZD475EweZNL2imdUC\n/QIDAQAB\n-----END PUBLIC KEY-----\n"
},
"id": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ",
"type": "Person",
"inbox": "http://abel/inbox/vl0eDZjP9MYTT_MxFUvBCA",
"outbox": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/outbox",
"followers": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/followers",
"following": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/following",
"preferredUsername": "alice",
"name": "alice",
"identifiers": [
"acct:alice@abel",
"http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
],
"endpoints": {
"sharedInbox": "http://abel/shared_inbox"
},
"manuallyApprovesFollowers": true
}
given: "bob" created an actor on "abel" called "bob"¶
send.bob.request.create_actor
{
"base_url": "http://abel",
"preferred_username": "bob",
"profile": {},
"automatically_accept_followers": null,
"name": null
}
receive.bob.response.create_actor
{
"attachment": null,
"published": "2025-12-19T09:51:21.274641",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
}
],
"publicKey": {
"id": "http://abel/actor/MqR39tvESUdw1wDEce8u9A#legacy-key-1",
"owner": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl7UcsHbzB4O0i20Jvacu\nTWEQYpaUAgExK5SJQBTe0qvOmhgokYaOHglkeib0X81g4mPMNVbSVPvmbWOEn99r\nCYKOd9gZd05HJFddgtKtMMrK54GYHU8FpAPPLtRdekYiNWM9K3LJW+97AzXO1oKg\nzZB2zBh7JodVWI04CWisnXx1IliWzkrvvhhrfJNuxboPT84DcAVm3QSmFW1v2v9F\n3+gVnVYGEOqgmlmjwdEnU/qu1Wl8THgndWA8tggUf3B+GTA4FKQGmkS3pawP2YaG\n9riVWizi3MRfvn1HcYZikTwWQdnfa+Y0kybpsGm9Gkc2PT4h/A7wkrvq0ixWxc40\nzwIDAQAB\n-----END PUBLIC KEY-----\n"
},
"id": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"type": "Person",
"inbox": "http://abel/inbox/LVS9wqpaOboKhnZqdiJxEg",
"outbox": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/outbox",
"followers": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/followers",
"following": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/following",
"preferredUsername": "bob",
"name": "bob",
"identifiers": [
"acct:bob@abel",
"http://abel/actor/MqR39tvESUdw1wDEce8u9A"
],
"endpoints": {
"sharedInbox": "http://abel/shared_inbox"
},
"manuallyApprovesFollowers": true
}
when: "bob" sends "alice" a Follow Activity¶
send.bob.trigger.send_message
{
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"data": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"to": [
"http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
],
"id": "follow:4e23521b-3e43-4dfc-940e-ff47a511b1ca",
"published": "2025-12-19T09:51:21Z",
"object": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
}
}
receive.bob.outgoing.Follow
{
"data": {
"raw": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"to": [
"http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
],
"id": "follow:4e23521b-3e43-4dfc-940e-ff47a511b1ca",
"published": "2025-12-19T09:51:21Z",
"object": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
}
},
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"event_type": "outgoing",
"history_id": null
}
then: The "followers" collection of "alice" does not include "bob"¶
send.alice.request.fetch
{
"actor": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ",
"uri": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/followers"
}
receive.alice.incoming.Follow
{
"data": {
"raw": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"to": [
"http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
],
"id": "follow:4e23521b-3e43-4dfc-940e-ff47a511b1ca",
"published": "2025-12-19T09:51:21Z",
"object": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ"
}
},
"actor": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ",
"event_type": "incoming",
"history_id": null
}
receive.alice.response.fetch
{
"actor": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ",
"uri": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/followers",
"data": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "http://abel/actor/uVO8uxktnC642AHLV0kvuQ/followers",
"orderedItems": [],
"totalItems": 0
}
}
then: The "following" collection of "bob" does not include "alice"¶
send.bob.request.fetch
{
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"uri": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/following"
}
receive.bob.response.fetch
{
"actor": "http://abel/actor/MqR39tvESUdw1wDEce8u9A",
"uri": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/following",
"data": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "OrderedCollection",
"id": "http://abel/actor/MqR39tvESUdw1wDEce8u9A/following",
"orderedItems": [],
"totalItems": 0
}
}