Alice automatically accepts followers and Bob follows Alice¶
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:29.939571",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
}
],
"publicKey": {
"id": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w#legacy-key-1",
"owner": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtnKWxIpCrk3ELSOuNcRn\nElHRKcWJOp53RIMXyoTrbE/9KpGd2qwtwimMqPHH7XAaIHO5Atmkgw4YjwvkjwEH\nFMYyur7P9cPQkvLsXdUnXZfUMl3SM2egBGvDQn7vyY+hyLw5JWXvrBrQVwvBO7lO\nBsy2eVWcuMVcCJLMmmZmvipp08vNpsZ4eMZeXDL8mbgGlTwGNXjIN4WMh4tf689B\n9UT1a3ua+kUrpHJ9oIuWIIXH7ItEEjgjca+jOI5MJEeROQwJiA0WoLz9hG5e+r0n\nfwUUoKBfrGLCM7Ovc9PVauai6Nfb7rruefCpije6aF6BlKhbyC/xSPgkRAFC64XA\nCwIDAQAB\n-----END PUBLIC KEY-----\n"
},
"id": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"type": "Person",
"inbox": "http://abel/inbox/m9AABsDsHnEX8NCgKMI5yA",
"outbox": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w/outbox",
"followers": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w/followers",
"following": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w/following",
"preferredUsername": "alice",
"name": "alice",
"identifiers": [
"acct:alice@abel",
"http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
],
"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:30.837796",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers"
}
],
"publicKey": {
"id": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA#legacy-key-1",
"owner": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ShMKwVNjPdD7rw1c6P6\nHAQNgqPscxHyZuRrOZAhVtAFQf7HVvnzEciAdwTN4esqUv8ooph/ovNjPxwjsOdy\n1SnyB5xxe/gBxMy4q9jIZN1jEPYBW1ZHii9QE4WvtyI8mdcPwK4MPz/En24pvFuX\n28PVI6s5LnRWRK9Yw0nM9oi9ZWzuDwqC568oeKihxNT3L0uezUog0TtlNk10LHZU\nVZRm0QbTiy8ousUOgS8joAojNUy25BvU/AcKgV+afMHa9wXNTI9X0/IrJHPIr4e2\nTAed5v1okPa0yIwmI571HowYYpXefLmT7zFLBFA3sGaa4keXAOAWz+AhC2OtZPzD\nRwIDAQAB\n-----END PUBLIC KEY-----\n"
},
"id": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"type": "Person",
"inbox": "http://abel/inbox/sa5ayf0TxSZO3VgWVWtFxA",
"outbox": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA/outbox",
"followers": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA/followers",
"following": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA/following",
"preferredUsername": "bob",
"name": "bob",
"identifiers": [
"acct:bob@abel",
"http://abel/actor/FmDwr-TF-WxAInX5LR4PlA"
],
"endpoints": {
"sharedInbox": "http://abel/shared_inbox"
},
"manuallyApprovesFollowers": true
}
given: "alice" automatically accepts followers¶
send.alice.trigger.update_actor
{
"actor": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"autoFollow": true
}
when: "bob" sends "alice" a Follow Activity¶
send.bob.trigger.send_message
{
"actor": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"data": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"to": [
"http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
],
"id": "follow:0f7c33a8-1a0f-4e90-a207-c4d896f1d94f",
"published": "2025-12-19T09:51:31Z",
"object": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
}
}
receive.bob.outgoing.Follow
{
"data": {
"raw": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"to": [
"http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
],
"id": "follow:0f7c33a8-1a0f-4e90-a207-c4d896f1d94f",
"published": "2025-12-19T09:51:31Z",
"object": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
}
},
"actor": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"event_type": "outgoing",
"history_id": null
}
then: The "followers" collection of "alice" contains "bob"¶
send.alice.request.fetch
{
"actor": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"uri": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w/followers"
}
receive.alice.incoming.Follow
{
"data": {
"raw": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"actor": "http://abel/actor/FmDwr-TF-WxAInX5LR4PlA",
"to": [
"http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
],
"id": "follow:0f7c33a8-1a0f-4e90-a207-c4d896f1d94f",
"published": "2025-12-19T09:51:31Z",
"object": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w"
}
},
"actor": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"event_type": "incoming",
"history_id": null
}
receive.alice.outgoing.Accept
{
"data": {
"raw": {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Accept",
"actor": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"to": [
"http://abel/actor/FmDwr-TF-WxAInX5LR4PlA"
],
"published": "2025-12-19T09:51:31Z",
"object": "follow:0f7c33a8-1a0f-4e90-a207-c4d896f1d94f",
"id": "http://abel/object/019b3605-8ca3-7a66-8a4c-a7decfe130d4"
}
},
"actor": "http://abel/actor/wvnLfwsJRLlOgEMmtU3L-w",
"event_type": "outgoing",
"history_id": null
}