Skip to content

Support Table: Verify Actor

This support table shows the results of running verify actor against the various applications provided by the Fediverse Pasture.

Verify Actor

Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X X
frank X X
Name GET Actor POST Inbox
alice
bob X X
claire X X
dean
emily X X
frank X X
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X X
frank X X
Name GET Actor POST Inbox
alice
bob X X
claire X X
dean
emily
frank
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X X
frank X X
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X
frank X
Name GET Actor POST Inbox
alice
bob X X
claire X X
dean
emily
frank
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X
frank X
Name GET Actor POST Inbox
alice
bob X X
claire X X
dean
emily
frank
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X
frank X
Name GET Actor POST Inbox
alice X
bob X X
claire X X
dean X
emily X X
frank X X

Messages

{
  "steps": [
    "Got Actor Uri http://akkoma/users/admin",
    "Can fetch actor from http://akkoma/users/admin",
    "Running verification for alice",
    "Got inbox http://akkoma/users/admin/inbox",
    "Got 400 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://akkoma/users/admin/inbox",
    "Successfully posted to inbox with result",
    200,
    "\"ok\"",
    "Running verification for claire",
    "Got inbox http://akkoma/users/admin/inbox",
    "Successfully posted to inbox but remote server indicated a bad request",
    "Running verification for dean",
    "Got inbox http://akkoma/users/admin/inbox",
    "Got 400 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://akkoma/users/admin/inbox",
    "Successfully posted to inbox with result",
    200,
    "\"ok\"",
    "Running verification for frank",
    "Got inbox http://akkoma/users/admin/inbox",
    "Successfully posted to inbox but remote server indicated a bad request",
    "Got preferredUsername admin",
    "computed acct uri acct:admin@akkoma",
    "Retrieved id http://akkoma/users/admin using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://bovine/endpoints/7aNmCjLCeCgwjrLA8FlbFe8QF0UfJimI5yYkO4RDriw",
    "Can fetch actor from http://bovine/endpoints/7aNmCjLCeCgwjrLA8FlbFe8QF0UfJimI5yYkO4RDriw",
    "Running verification for alice",
    "Got inbox None",
    "Running verification for bob",
    "Got inbox http://bovine/endpoints/nIN9aYLqxHI7mx03ykJZle-d_hjQcemAq3U_otywE8c",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"processing\"}\n",
    "Running verification for claire",
    "Got inbox http://bovine/endpoints/nIN9aYLqxHI7mx03ykJZle-d_hjQcemAq3U_otywE8c",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"processing\"}\n",
    "Running verification for dean",
    "Got inbox None",
    "Running verification for emily",
    "Got inbox http://bovine/endpoints/nIN9aYLqxHI7mx03ykJZle-d_hjQcemAq3U_otywE8c",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"processing\"}\n",
    "Running verification for frank",
    "Got inbox http://bovine/endpoints/nIN9aYLqxHI7mx03ykJZle-d_hjQcemAq3U_otywE8c",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"processing\"}\n",
    "Got preferredUsername vanilla",
    "computed acct uri acct:vanilla@bovine",
    "Retrieved id http://bovine/endpoints/7aNmCjLCeCgwjrLA8FlbFe8QF0UfJimI5yYkO4RDriw using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://firefish_web/users/9maldoqlvcsiuvc0",
    "Can fetch actor from http://firefish_web/users/9maldoqlvcsiuvc0",
    "Running verification for alice",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Got 401 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Successfully posted to inbox with result",
    202,
    "Accepted",
    "Running verification for claire",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Successfully posted to inbox with result",
    202,
    "Accepted",
    "Running verification for dean",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Got 401 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Successfully posted to inbox with result",
    202,
    "Accepted",
    "Running verification for frank",
    "Got inbox http://firefish_web/users/9maldoqlvcsiuvc0/inbox",
    "Successfully posted to inbox with result",
    202,
    "Accepted",
    "Got preferredUsername admin",
    "computed acct uri acct:admin@firefish_web",
    "Retrieved id http://firefish_web/users/9maldoqlvcsiuvc0 using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://gotosocial/users/gts",
    "Can fetch actor from http://gotosocial/users/gts",
    "Running verification for alice",
    "Got inbox None",
    "Running verification for bob",
    "Got inbox http://gotosocial/users/gts/inbox",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"Accepted\"}",
    "Running verification for claire",
    "Got inbox http://gotosocial/users/gts/inbox",
    "Successfully posted to inbox with result",
    202,
    "{\"status\":\"Accepted\"}",
    "Running verification for dean",
    "Got inbox None",
    "Running verification for emily",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://gotosocial/users/gts'), method='GET', headers=<CIMultiDictProxy('host': 'gotosocial', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:34:05 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"tYaJ3UHWLkmm8LfuVbg9RrTnbf5HuiiAlo/JJf8YRBzfex4gpj6zda0cJmGoBQ+q5xil4z/RuRq15w9Z7d0kYPSVAQaXObosvbmfc3aIEorJCKDlgnHrBFaWY5ywxQOQinIbmrXUkuPfRJPvtSgsfWp9A85WivUZp2bs49xg/ihDR0EmdowEgWt2F9SuGz19cbx95w7MJv+XufkpsZ59z74N0U22egpGVgtQ7rmXCgmI4Es1kpE7JGhVOKzxpD3QlOImRRCtxrlosjSI+TDHAJtI4wihXoX82R/q5FvaUNwWG3Ej20pGSYKygaqaMcyFAq71vyCwOGQqiQESkcj/Pw==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://gotosocial/users/gts')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('Cache-Control': 'no-store', 'Content-Encoding': 'gzip', 'Content-Security-Policy': \"default-src 'self'; object-src 'none'; img-src 'self' blob:; media-src 'self'\", 'Content-Type': 'application/json; charset=utf-8', 'Permissions-Policy': 'browsing-topics=()', 'Server': 'gotosocial', 'Vary': 'Accept-Encoding', 'X-Ratelimit-Limit': '300', 'X-Ratelimit-Remaining': '293', 'X-Ratelimit-Reset': '1701362345', 'X-Request-Id': 'ey8h88cc04000j9yn0xg', 'Date': 'Thu, 30 Nov 2023 16:34:05 GMT', 'Content-Length': '48')>)",
    "Running verification for frank",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://gotosocial/users/gts'), method='GET', headers=<CIMultiDictProxy('host': 'gotosocial', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:34:05 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"Z9no9yKQQK56N8hT2tlBMgOtMHupppb/QVykMFXqlGohblj0g9gLQ8Qx+oS0SR/iFmLyA/3z0jdA0XBw4+oZ/lBuOpWrXhoXDSW5uP8IkZy7rzoAodcrLJ2YUbkCZcWONC5CuRbEoqeM/LEJJEusDpFrY89WWlv1E7sJz5LwIZ6awd61BmbprSDfV3Q9yvHFVARK6KjyJNSmMmgNj6zUYh1XnO7He1CZGIqS8uPY3DFIT85IFkM/TdNlE4YNW+4r5gof5U3Z7vM9Mpr+j/JU4bF5rxnUk8eEQgIBpdIbrvQ8ZsuErNlgGHH8Mzxl+AC37ZWW8M3+S9F1LzZl1epxWA==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://gotosocial/users/gts')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('Cache-Control': 'no-store', 'Content-Encoding': 'gzip', 'Content-Security-Policy': \"default-src 'self'; object-src 'none'; img-src 'self' blob:; media-src 'self'\", 'Content-Type': 'application/json; charset=utf-8', 'Permissions-Policy': 'browsing-topics=()', 'Server': 'gotosocial', 'Vary': 'Accept-Encoding', 'X-Ratelimit-Limit': '300', 'X-Ratelimit-Remaining': '292', 'X-Ratelimit-Reset': '1701362345', 'X-Request-Id': 'yp8h88cc040009424730', 'Date': 'Thu, 30 Nov 2023 16:34:05 GMT', 'Content-Length': '48')>)",
    "Got preferredUsername gts",
    "computed acct uri acct:gts@gotosocial",
    "Retrieved id http://gotosocial/users/gts using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://hubzilla/channel/admin",
    "Can fetch actor from http://hubzilla/channel/admin",
    "Running verification for alice",
    "Got inbox http://hubzilla/inbox/admin",
    "Got 403 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://hubzilla/inbox/admin",
    "Successfully posted to inbox with result",
    200,
    "",
    "Running verification for claire",
    "Got inbox http://hubzilla/inbox/admin",
    "Successfully posted to inbox with result",
    200,
    "",
    "Running verification for dean",
    "Got inbox http://hubzilla/inbox/admin",
    "Got 403 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://hubzilla/inbox/admin",
    "Successfully posted to inbox with result",
    200,
    "",
    "Running verification for frank",
    "Got inbox http://hubzilla/inbox/admin",
    "Successfully posted to inbox with result",
    200,
    "",
    "Got preferredUsername admin",
    "computed acct uri acct:admin@hubzilla",
    "Retrieved id http://hubzilla/channel/admin using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://mastodon41web/users/jumbo",
    "Can fetch actor from http://mastodon41web/users/jumbo",
    "Running verification for alice",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Got 401 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Got 401 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon41web/users/jumbo/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mastodon41web', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:55 GMT', 'digest': 'sha-256=4c+CMb196mneF7MYwR9GOR0SyIi0rzjvnhZ4oyp+Pr8=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"LFrEIoYvkcJUDmjyWQgAlqZBMkKASBl9jcGPcaP/Y0bb/ZaVeuIGJbrucxGv/95vU3y3pVmRdPlOGpBXk5MAShRrHVE3LecIua5U6mRsBVJfRroIsmMejU7z7DzTSZ5u2rerrRGD9ce65b+kgFF3SRJuthvfW7vUvTUUkQJ1GeOoy7XBjZO8a+1wbO4gLq3oJIZTcg63M7hb9UJMF+Cupl3CrDV7KNYeDZig10ppDdk+PVcynzvMoX3anwptKlrqJ6qTkhOE2XYTVnTJakMeVOBND3tOlOhroVBUNePFSCSLWJqV1a1kw1HbJY5nXffb+rj1WzPwWSLXNmPrIuZgjA==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mastodon41web/users/jumbo/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Vary': 'Accept', 'Cache-Control': 'no-cache', 'Content-Security-Policy': \"default-src 'none'; frame-ancestors 'none'; form-action 'none'\", 'X-Request-Id': '090e6135-f3d6-4718-b8f4-d2608c11b3d1', 'X-Runtime': '0.066768', 'Transfer-Encoding': 'chunked')>)",
    "Running verification for frank",
    "Got inbox http://mastodon41web/users/jumbo/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon41web/users/jumbo/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mastodon41web', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:55 GMT', 'digest': 'sha-256=j8xmi8R7JKK76apiDKvrJRviw2sRU2EauKA610C2M4s=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"yD3WbQvsqlDkMWAM7JBPhY3GlaXxbwV+5rMVjKVDAP4sksIsuEZ6xn9MVKuIOxHQeBcaFh4BZGZ7MSLL6+pdltUITW6P9MmDE1VrZIQXETsgXgj1u/FZ6+e3kNYDGcZLEpjnhc+sCKq/mU4p7jWvHQANWigcMRMF6upTxJtT02USlThR7mv/dLSubdIiv7F4dexJ2iR0rucLqsm7AHJnHnLP9SZPNcT5jZEde3a+t6XQTSkzBTA4nVyNm++MRnRqE0ZUWGrUTfXmS8uz4SLjGXtR14xmR2noYC5/4WGr+kFDyqHRHtUQomKeX1zaDdA5q5GLpQLI1jJFVJSKcX5f3w==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mastodon41web/users/jumbo/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Vary': 'Accept', 'Cache-Control': 'no-cache', 'Content-Security-Policy': \"default-src 'none'; frame-ancestors 'none'; form-action 'none'\", 'X-Request-Id': 'd86e8651-8cc9-4688-a51a-7459fbab7236', 'X-Runtime': '0.697726', 'Transfer-Encoding': 'chunked')>)",
    "Got preferredUsername jumbo",
    "computed acct uri acct:jumbo@mastodon41web",
    "Retrieved id http://mastodon41web/users/jumbo using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://mastodon41web_af/users/jumbo",
    "Can fetch actor from http://mastodon41web_af/users/jumbo",
    "Running verification for alice",
    "Got inbox None",
    "Running verification for bob",
    "Got inbox http://mastodon41web_af/users/jumbo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://mastodon41web_af/users/jumbo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox None",
    "Running verification for emily",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon41web_af/users/jumbo'), method='GET', headers=<CIMultiDictProxy('host': 'mastodon41web_af', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:59 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"TqMCOowmuAEv9VzUTASAJKmQLdEKQEmkUKqKtiV7fd1Bq2wRilfwXAnyFjeHaa8L4J7Rgo6A1OWkWHF/xqgky9aaBxwn/08g0I+XMV5jLNQGuF8CPMb0ndd+Xtpy66kjxpDXA/eaBGlLmtqu8SmS5w3agCD/7sG0yXD6qsIOI/jyWu4eAXvFvCnVnKCU06zsW9T0sBLT9Mg7iLywJz/vpe+k8c6MHMJQnFCDHgnKzTG39K+kRXll7iOjseU/PUOGe12wf5Wzdyo+rltcjHDvH7/1mRCnOYmqGA89DExj0jm9kwuS4zpm7wacfWKbpDy2v1tvzKR9O6u1/tfjxoLRmw==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://mastodon41web_af/users/jumbo')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Vary': 'Accept, Origin', 'Cache-Control': 'no-cache', 'Content-Security-Policy': \"base-uri 'none'; default-src 'none'; frame-ancestors 'none'; font-src 'self' http://mastodon41web_af; img-src 'self' https: data: blob: http://mastodon41web_af; style-src 'self' http://mastodon41web_af 'nonce-L1lnnbEhMiYMeJOI65swpQ=='; media-src 'self' https: data: http://mastodon41web_af; frame-src 'self' https:; manifest-src 'self' http://mastodon41web_af; form-action 'self'; connect-src 'self' data: blob: http://mastodon41web_af http://mastodon41web_af http://mastodon41web ws://localhost:3035 http://localhost:3035; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://mastodon41web_af; child-src 'self' blob: http://mastodon41web_af; worker-src 'self' blob: http://mastodon41web_af\", 'X-Request-Id': '99b67616-5c7b-4d11-bf2c-2c31ca74387f', 'X-Runtime': '0.064640', 'Transfer-Encoding': 'chunked')>)",
    "Running verification for frank",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon41web_af/users/jumbo'), method='GET', headers=<CIMultiDictProxy('host': 'mastodon41web_af', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:59 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"bB+xR0ttWmEn7VDm8z5ImpXzw6ssXISX5DlZLjUtf48ezeFYQ4FnrOKvDg1LtY4km5Ddf/khkvK6gMpawCO0J+iKWkkVOzz3zdgqpHyuq0cFWKRLP3ram73VK6mape8awUyoN82lH9ps9O8nrwTg8+pRn/OwNEWXCyuCML7IMv80SlZXYeyun+lfdiM2MRWGWJG+XjgT5L3geZjLoXiW3Cqp2tQIvU0xBigxJ69AMBc34Ua0a7RgQ06EDuMipB9dIQBWR08fGJORGQoh4ofcJH8vk+hRXx2mVTcqINfIicIFu34OCBTfbpCly7oH5H5GqdMkPi8mU8W5pxJBUFvGgA==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://mastodon41web_af/users/jumbo')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Vary': 'Accept, Origin', 'Cache-Control': 'no-cache', 'Content-Security-Policy': \"base-uri 'none'; default-src 'none'; frame-ancestors 'none'; font-src 'self' http://mastodon41web_af; img-src 'self' https: data: blob: http://mastodon41web_af; style-src 'self' http://mastodon41web_af 'nonce-RcGBPxSlbmihMpVE/kZqWQ=='; media-src 'self' https: data: http://mastodon41web_af; frame-src 'self' https:; manifest-src 'self' http://mastodon41web_af; form-action 'self'; connect-src 'self' data: blob: http://mastodon41web_af http://mastodon41web_af http://mastodon41web ws://localhost:3035 http://localhost:3035; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://mastodon41web_af; child-src 'self' blob: http://mastodon41web_af; worker-src 'self' blob: http://mastodon41web_af\", 'X-Request-Id': '534ee5b0-059e-48cc-99e4-18e5b58a2321', 'X-Runtime': '0.271177', 'Transfer-Encoding': 'chunked')>)",
    "Got preferredUsername jumbo",
    "computed acct uri acct:jumbo@mastodon41web_af",
    "Retrieved id http://mastodon41web_af/users/jumbo using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://mastodon42web/users/hippo",
    "Can fetch actor from http://mastodon42web/users/hippo",
    "Running verification for alice",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Got 401 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Got 401 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon42web/users/hippo/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mastodon42web', 'user-agent': 'bovine/0.5.8', 'date': 'Wed, 31 Jan 2024 07:51:08 GMT', 'digest': 'sha-256=RHIpgkWRf/FvUIzjx3yiF3D1xWSMuDWv255lyjTvhkg=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"gagFu7l5x7oJbcp0QEMsQPIcfF6Rog8T04Kx1VKB3ZLT0pyMHLZgZfWdoC04/sN/ktENgeTORYj0ke0RtVEWNPqxS1d9uZtfUAXHELXWCUdmecIQ7LhN3/vrzfQob0yQh26J0IdZXdqInHhvZCKrI/F6fB3LgxbdbEX3VR2ka4VixCj0jaDEd/ENrab66Hr4ioGFsR8vdIhtGblmWGrsspyTFjriOT6uAb274JvhYMV20MxtDwOAwrtuVanpOJpgmck0bhfgs5mfSB7mxbqgfmS/FPW6XXD8ZorJYy0lJQ54hxjM+vSGpEqTsZwWAt2vctMIlAXIVWiVtqK/2w9VvQ==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mastodon42web/users/hippo/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '0', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Vary': 'Authorization', 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'private, no-store', 'Content-Security-Policy': \"default-src 'none'; frame-ancestors 'none'; form-action 'none'\", 'X-Request-Id': '91618873-9749-4542-a208-525dff0674ff', 'X-Runtime': '0.073226', 'Server-Timing': 'cache_read.active_support;dur=0.02, sql.active_record;dur=7.16, cache_generate.active_support;dur=1.46, cache_write.active_support;dur=0.06, start_processing.action_controller;dur=0.08, instantiation.active_record;dur=0.40, render.active_model_serializers;dur=0.07, halted_callback.action_controller;dur=0.04, process_action.action_controller;dur=48.06', 'Transfer-Encoding': 'chunked')>)",
    "Running verification for frank",
    "Got inbox http://mastodon42web/users/hippo/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon42web/users/hippo/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mastodon42web', 'user-agent': 'bovine/0.5.8', 'date': 'Wed, 31 Jan 2024 07:51:08 GMT', 'digest': 'sha-256=tGwe0qyUHgxNmTQ3ftjV5tLBf8OZA9YIaZB/3C5NLJA=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"GuTFcfMYhI2ufi0I8ZGobM8Q7zR4JulTxiJUEi76mBJBCe36lDJvOmZ87BLmcp/Jkbm4v3pvJ7g/p3doz/dXvG++EUfu/1o2vDVzM0NicRAjPWPqDgKNGnTrGbT2mCbPMhZ+o9mgm6x843oBCuqwkcg2qUmWTYBdw9agL+lpkLliDDU56wUeAo55RxTWVcLkT0HH6a9HAY2TCDFF+egIRoEtnu0wstcvzXPopSGBo+aROqLV6R6tJaIDMiX3cqkauVy3sLHAs8k2nDKipW7klR0y3o0T8qcgDi+mHDTonun/xoPJRbEnN35G2CXmlWbHM0Qdsysyo+d+7XDFLRoswA==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mastodon42web/users/hippo/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '0', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Vary': 'Authorization', 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'private, no-store', 'Content-Security-Policy': \"default-src 'none'; frame-ancestors 'none'; form-action 'none'\", 'X-Request-Id': '18b3ecea-23ec-41fa-b971-e1c54e455c44', 'X-Runtime': '0.223023', 'Server-Timing': 'cache_read.active_support;dur=0.06, sql.active_record;dur=6.78, cache_generate.active_support;dur=1.38, cache_write.active_support;dur=0.09, start_processing.action_controller;dur=0.07, instantiation.active_record;dur=0.45, render.active_model_serializers;dur=0.06, halted_callback.action_controller;dur=0.05, process_action.action_controller;dur=199.15', 'Transfer-Encoding': 'chunked')>)",
    "Got preferredUsername hippo",
    "computed acct uri acct:hippo@mastodon42web",
    "Retrieved id http://mastodon42web/users/hippo using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://mastodon42web_af/users/hippo",
    "Can fetch actor from http://mastodon42web_af/users/hippo",
    "Running verification for alice",
    "Got inbox None",
    "Running verification for bob",
    "Got inbox http://mastodon42web_af/users/hippo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://mastodon42web_af/users/hippo/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox None",
    "Running verification for emily",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon42web_af/users/hippo'), method='GET', headers=<CIMultiDictProxy('host': 'mastodon42web_af', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:34:02 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"OQ5u7sNdxMoo26cqDTM8C2BCWgx+CHudQ72Ea9LQ0IgGLK3JXJjCPzhRhf6vxJhfcX2ZS99LaSSgAin1k6UOxxrNe+e2+d+fwy1AvE/+KwZ8/m7ibwjwWN0/0/w9d43AOMSJsjPYTNarhgepZ5PPdJQSQcC8iiXNxHdJaPUX4lPaOIuXZdByBwbIOjwrKMUpMEXPGDbDsNFC7AOUyjWaSLE9SSwBHPiskxWYhFUvK+Hhj/31PapbppR0fpNwouuSP35PlgFIaAcSvZAtfTo1rXWh2MgHxvH19MxXk8mbayYPO1ETKWEiYffYlk7KeEJfXCsxzXDgmJZ57QgeU+QCXA==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://mastodon42web_af/users/hippo')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '0', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'private, no-store', 'Content-Security-Policy': \"base-uri 'none'; default-src 'none'; frame-ancestors 'none'; font-src 'self' http://mastodon42web_af; img-src 'self' https: data: blob: http://mastodon42web_af; style-src 'self' http://mastodon42web_af 'nonce-H0fGl2Z8QuGUnWOUG/GH5A=='; media-src 'self' https: data: http://mastodon42web_af; frame-src 'self' https:; manifest-src 'self' http://mastodon42web_af; form-action 'self'; child-src 'self' blob: http://mastodon42web_af; worker-src 'self' blob: http://mastodon42web_af; connect-src 'self' data: blob: http://mastodon42web_af http://mastodon42web_af ws://localhost:4000 ws://localhost:3035 http://localhost:3035; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://mastodon42web_af\", 'X-Request-Id': 'e468e799-7773-4b9d-b3d7-9682e90b3228', 'X-Runtime': '0.148740', 'Server-Timing': 'cache_read.active_support;dur=0.05, sql.active_record;dur=7.85, cache_generate.active_support;dur=1.59, cache_write.active_support;dur=0.07, start_processing.action_controller;dur=0.08, instantiation.active_record;dur=0.37, render.active_model_serializers;dur=0.04, halted_callback.action_controller;dur=0.03, process_action.action_controller;dur=124.08', 'Vary': 'Accept, Accept-Language, Cookie, Signature, Origin', 'Transfer-Encoding': 'chunked')>)",
    "Running verification for frank",
    "Something went wrong",
    "ClientResponseError(RequestInfo(url=URL('http://mastodon42web_af/users/hippo'), method='GET', headers=<CIMultiDictProxy('host': 'mastodon42web_af', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:34:03 GMT', 'accept': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date accept\",signature=\"ekZtk3TQ5fCCudr6o34Zy6LmePgCcC6rCFjsiytxfMLbSJysi+MsuwnXffBH1IVEWgLjHUlHIDkwxAosxnWlmfXvu0s2BgqLqMu9JABNRt1ry9ABW5kIqbo20pPf2EAfA1syirwPu7lKsNmDqkqhJH6xMesMQyUGFhKtbpFjsexLWlMFsafUC9uK+yrYQKAViNuus7Zof9vH+8P4tJHHnpG0AmSwp6y7B+XVWCMBE8DemQVWRFd8c/nCotJsMGTuKbyej6xJLyMOJdvhCPh3kj9Z9FLPh6DXvIwapDKh9WU6D4FqvMt4D/MwjLkP8UnhZoMeAtdpJjhK/rRCJ1lcCQ==\"', 'Accept-Encoding': 'gzip, deflate')>, real_url=URL('http://mastodon42web_af/users/hippo')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '0', 'X-Content-Type-Options': 'nosniff', 'X-Download-Options': 'noopen', 'X-Permitted-Cross-Domain-Policies': 'none', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'private, no-store', 'Content-Security-Policy': \"base-uri 'none'; default-src 'none'; frame-ancestors 'none'; font-src 'self' http://mastodon42web_af; img-src 'self' https: data: blob: http://mastodon42web_af; style-src 'self' http://mastodon42web_af 'nonce-HGW69woV3lnADZFfNsCPYg=='; media-src 'self' https: data: http://mastodon42web_af; frame-src 'self' https:; manifest-src 'self' http://mastodon42web_af; form-action 'self'; child-src 'self' blob: http://mastodon42web_af; worker-src 'self' blob: http://mastodon42web_af; connect-src 'self' data: blob: http://mastodon42web_af http://mastodon42web_af ws://localhost:4000 ws://localhost:3035 http://localhost:3035; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://mastodon42web_af\", 'X-Request-Id': '4357928c-f22e-47ca-8e6c-fafed58b4429', 'X-Runtime': '0.520464', 'Server-Timing': 'cache_read.active_support;dur=0.03, sql.active_record;dur=8.61, cache_generate.active_support;dur=1.31, cache_write.active_support;dur=0.07, start_processing.action_controller;dur=0.09, instantiation.active_record;dur=0.41, render.active_model_serializers;dur=0.05, halted_callback.action_controller;dur=0.03, process_action.action_controller;dur=492.73', 'Vary': 'Accept, Accept-Language, Cookie, Signature, Origin', 'Transfer-Encoding': 'chunked')>)",
    "Got preferredUsername hippo",
    "computed acct uri acct:hippo@mastodon42web_af",
    "Retrieved id http://mastodon42web_af/users/hippo using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://mitra/users/admin",
    "Can fetch actor from http://mitra/users/admin",
    "Running verification for alice",
    "Got inbox http://mitra/users/admin/inbox",
    "Got 400 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://mitra/users/admin/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://mitra/users/admin/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox http://mitra/users/admin/inbox",
    "Got 400 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://mitra/users/admin/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mitra/users/admin/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mitra', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:54 GMT', 'digest': 'sha-256=Xu2lhkFlWwm4YpoAsU+htV/RTqLKgTpFMAt/39XecJk=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/emily#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"nJlGwUOG1YnPgMvie7+YngMP9+xtpDIM2c+uwSmjGHE86zVAjLsf43+bXXut0VdGJ5NbAiRY2Ze6zmfRLiCdweV9ojI8hyB0ZfiNDO7VWuE93Mmo3dYBsGUOVTmgD85tl4E4UxwZr3jQFRjduLAM3N98PBkhCls+jU+xzaO03Gu+lIiLPDdgbo5HSJUySfnyVvZP19kq2Hv/yPmlkp8Tb1U+o4glNRuYeHIyIG4ZIjMoPi7r2pGUiR9cQHnfpkqnnCdNnZOa/A4rZ5hdy0zXKHk8gvvEp3mQuBLg7pJBymS4oaBg0UeJQSEjUYHQY+xnSTbu4D6vQVVKEk723Z8xzQ==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mitra/users/admin/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('Content-Length': '31', 'Access-Control-Expose-Headers': 'content-type', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'content-security-policy': \"default-src 'none'; connect-src 'self'; img-src 'self' data:; media-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'nonce-oauth-authorization'; manifest-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'\", 'Content-Type': 'application/json', 'Date': 'Thu, 30 Nov 2023 16:33:54 GMT')>)",
    "Running verification for frank",
    "Got inbox http://mitra/users/admin/inbox",
    "Failed to post to inbox",
    "ClientResponseError(RequestInfo(url=URL('http://mitra/users/admin/inbox'), method='POST', headers=<CIMultiDictProxy('host': 'mitra', 'user-agent': 'bovine/0.5.2', 'date': 'Thu, 30 Nov 2023 16:33:54 GMT', 'digest': 'sha-256=Af8XJ9tbh0bzgeHasz1IlZRV+MNCioH/MeDrVUGngrY=', 'content-type': 'application/activity+json', 'signature': 'keyId=\"http://pasture_verify_actor/frank#main\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date digest content-type\",signature=\"cRLRR0oLIzLVVfMzJMp3S/DBFSqX2KMfG8ONFj3LP3/AP8UxsxeWnpSHOOLBjDf8XG7JHZJ+fj97kpBizbzpdG6mdtvVHlhZp6a4NfFQUhyToTj1GLz1fNZqQsgogZ1Pf0kPM0EFJEB2aWP+uz9t18R9e+QZ2v8FjLL4fiQ3IswBcvlY+IUKQMVAxK27FwnjaLLGQtZLNoXJnHigHuouAQsmJVJs5PRqZ+aPWRwJCeNZRuzw/5qb/aVmbt9yNxngcu0syPbMyngde3Z9VNpMM3x45k0PX0o5MCBxpQwiLCYGLHjc4aSPCNDcCEtF6vfi0Wx3gjFIGgfN1F6eipoTPg==\"', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '216')>, real_url=URL('http://mitra/users/admin/inbox')), (), status=401, message='Unauthorized', headers=<CIMultiDictProxy('Content-Length': '31', 'Access-Control-Expose-Headers': 'content-type', 'Vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'content-security-policy': \"default-src 'none'; connect-src 'self'; img-src 'self' data:; media-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'nonce-oauth-authorization'; manifest-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'\", 'Content-Type': 'application/json', 'Date': 'Thu, 30 Nov 2023 16:33:54 GMT')>)",
    "Got preferredUsername admin",
    "computed acct uri acct:admin@mitra",
    "Retrieved id http://mitra/users/admin using webfinger",
    "webfinger result matches expectations"
  ]
}
{
  "steps": [
    "Got Actor Uri http://sharkey_web/users/9mqc0pulh9vn0001",
    "Can fetch actor from http://sharkey_web/users/9mqc0pulh9vn0001",
    "Running verification for alice",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Got 401 for unsigned POST",
    "Running verification for bob",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for claire",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for dean",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Got 401 for unsigned POST",
    "Running verification for emily",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Running verification for frank",
    "Got inbox http://sharkey_web/users/9mqc0pulh9vn0001/inbox",
    "Successfully posted to inbox with result",
    202,
    "",
    "Got preferredUsername admin",
    "computed acct uri acct:admin@sharkey_web",
    "Retrieved id http://sharkey_web/users/9mqc0pulh9vn0001 using webfinger",
    "webfinger result matches expectations"
  ]
}

Building this page

First, we need to start all the Fediverse applications

docker compose --profile authorized_fetch\
    --file bovine.yml \
    --file gotosocial.yml \
    --file firefish.yml \
    --file hubzilla.yml \
    --file mitra.yml \
    --file mastodon41.yml \
    --file mastodon42.yml up

Start with the pasture_runner, i.e.

docker compose --file pasture.yml run pasture_runner

This will drop you into an interactive shell.

By running

python support_table.py --verify_actor\
    hubzilla mitra firefish bovine gotosocial\
    mastodon41 mastodon41af mastodon42 mastodon42af 

you can then generate the data used to generate the support table.