Public Activity

Fetched from http://localhost:33243/activitypub/public/page

{…}
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "OrderedCollectionPage",
  "orderedItems": [
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "Great note! It inspired me to post this one.",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://puckipedia.com/status/85d238d7/note"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://puckipedia.com/status/85d238d7/note"
      ],
      "id": "urn:uuid:203ffdcd-47aa-4ee5-8300-f269b0c54853",
      "published": "2017-11-18T09:28:41.533Z",
      "distbin:activityPubDeliveryFailures": [
        {
          "name": "TypeError",
          "message": "Cannot read property 'http://www.w3.org/ns/ldp#inbox' of undefined"
        }
      ],
      "inbox": "/activitypub/inbox",
      "url": "/activities/203ffdcd-47aa-4ee5-8300-f269b0c54853",
      "uuid": "203ffdcd-47aa-4ee5-8300-f269b0c54853",
      "replies": "/activities/203ffdcd-47aa-4ee5-8300-f269b0c54853/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "This is a very anonymous post made by Sylvhem.",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://dev.glitch.social/@Sylvhem/99022946707504603"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://dev.glitch.social/@Sylvhem/99022946707504603"
      ],
      "id": "urn:uuid:6b927bb5-8edc-4f4d-8c53-8e553a4d8719",
      "published": "2017-11-18T01:58:49.446Z",
      "distbin:activityPubDeliveryFailures": [
        {
          "name": "TypeError",
          "message": "Cannot read property 'http://www.w3.org/ns/ldp#inbox' of undefined"
        }
      ],
      "inbox": "/activitypub/inbox",
      "url": "/activities/6b927bb5-8edc-4f4d-8c53-8e553a4d8719",
      "uuid": "6b927bb5-8edc-4f4d-8c53-8e553a4d8719",
      "replies": "/activities/6b927bb5-8edc-4f4d-8c53-8e553a4d8719/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "Hi User!",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://distbin.com/activities/fd026086-2492-4b40-a692-8b323dfddcef"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://distbin.com/activities/fd026086-2492-4b40-a692-8b323dfddcef"
      ],
      "id": "urn:uuid:0715edc5-4e58-4e9e-a5be-5abdb36230d2",
      "published": "2017-11-17T18:57:10.792Z",
      "inbox": "/activitypub/inbox",
      "url": "/activities/0715edc5-4e58-4e9e-a5be-5abdb36230d2",
      "uuid": "0715edc5-4e58-4e9e-a5be-5abdb36230d2",
      "replies": "/activities/0715edc5-4e58-4e9e-a5be-5abdb36230d2/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "Hi Hobbes!",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        }
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "id": "urn:uuid:fd026086-2492-4b40-a692-8b323dfddcef",
      "published": "2017-11-17T18:55:57.276Z",
      "inbox": "/activitypub/inbox",
      "url": "/activities/fd026086-2492-4b40-a692-8b323dfddcef",
      "uuid": "fd026086-2492-4b40-a692-8b323dfddcef",
      "replies": "/activities/fd026086-2492-4b40-a692-8b323dfddcef/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "I will do these security ones next\r\n\r\n* server:security-considerations:do-not-post-to-localhost\r\n* server:security-considerations:filter-incoming-content",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://distbin.com/activities/4b2c1a11-1fc2-4bcb-b1db-e081a0cd0e2f"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://distbin.com/activities/4b2c1a11-1fc2-4bcb-b1db-e081a0cd0e2f"
      ],
      "attributedTo": {
        "url": "https://bengo.is"
      },
      "id": "urn:uuid:4edc1418-fc92-476c-9b17-562b5c8ec5e6",
      "published": "2017-11-17T01:52:08.121Z",
      "inbox": "/activitypub/inbox",
      "url": "/activities/4edc1418-fc92-476c-9b17-562b5c8ec5e6",
      "uuid": "4edc1418-fc92-476c-9b17-562b5c8ec5e6",
      "replies": "/activities/4edc1418-fc92-476c-9b17-562b5c8ec5e6/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "done!",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "/activities/5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "/activities/5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3"
      ],
      "id": "urn:uuid:3ad87154-7ec2-47e4-a516-a7574d8c2416",
      "published": "2017-11-17T01:45:24.726Z",
      "distbin:activityPubDeliveryFailures": [
        {
          "name": "TargetRequestFailed",
          "message": "connect ECONNREFUSED 127.0.0.1:80"
        }
      ],
      "inbox": "/activitypub/inbox",
      "url": "/activities/3ad87154-7ec2-47e4-a516-a7574d8c2416",
      "uuid": "3ad87154-7ec2-47e4-a516-a7574d8c2416",
      "replies": "/activities/3ad87154-7ec2-47e4-a516-a7574d8c2416/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "the example object here is based on the one in [section 6.1](https://w3c.github.io/activitypub/#client-addressing)\r\n\r\nbut just checking that I understand what recursion levels past 0, 1 should give access to.",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://distbin.com/activities/758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://distbin.com/activities/758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd"
      ],
      "id": "urn:uuid:547f578f-4524-48ee-b217-1746af93a897",
      "published": "2017-11-16T21:47:17.363Z",
      "inbox": "/activitypub/inbox",
      "url": "/activities/547f578f-4524-48ee-b217-1746af93a897",
      "uuid": "547f578f-4524-48ee-b217-1746af93a897",
      "replies": "/activities/547f578f-4524-48ee-b217-1746af93a897/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "```typescript\r\ntests['activityTargetsRecursive'] = async () => {\r\n  const activity: Activity = {\r\n    \"@context\": [\"https://www.w3.org/ns/activitystreams\",\r\n                 {\"@language\": \"en-GB\"}],\r\n    \"type\": \"Like\",\r\n    \"object\": {\r\n      \"id\": \"https://rhiaro.co.uk/2016/05/minimal-activitypub\",\r\n      \"type\": \"Article\",\r\n      \"name\": \"Minimal ActivityPub update client\",\r\n      \"content\": \"Today I finished morph, a client for posting ActivityStreams2...\",\r\n      \"attributedTo\": {\r\n        \"id\": \"https://rhiaro.co.uk/#amy\",\r\n        \"attributedTo\": {\r\n          \"id\": \"https://rhario.co.uk/attributedTo\",\r\n          \"attributedTo\": {\r\n            \"id\": \"https://rhiaro.co.uk/attributedTo/attributedTo\",\r\n            \"cc\": [{\r\n              \"id\": \"https://rhiaro.co.uk/attributedTo/attributedTo/cc/0\"\r\n            }]\r\n          }\r\n        }\r\n      },\r\n      \"to\": \"https://rhiaro.co.uk/followers/\",\r\n      \"cc\": \"https://e14n.com/evan\"\r\n    }\r\n  }\r\n  const levels: Set<string>[] = [\r\n    ['https://rhiaro.co.uk/#amy', 'https://rhiaro.co.uk/followers/', \"https://e14n.com/evan\"],\r\n    [\"https://rhario.co.uk/attributedTo\"],\r\n    [\"https://rhiaro.co.uk/attributedTo/attributedTo\"],\r\n    [\"https://rhiaro.co.uk/attributedTo/attributedTo/cc/0\"],\r\n  ].map((a: string[]) => new Set(a))\r\n  const targetsShouldBeForLevel = (level: number) => {\r\n    const theseLevels = levels.slice(0, level+1)\r\n    const targetsShouldBe = theseLevels.reduce((targets, levelTargetSet) => new Set([...levelTargetSet, ...targets]), new Set)\r\n    return new Set(targetsShouldBe)\r\n  }\r\n  levels.forEach((level, index) => {\r\n    const targets = activityTargetsRecursive(activity, index)\r\n    const targetsShouldBe = targetsShouldBeForLevel(index)\r\n    // console.log({ level: index, targets, targetsShouldBe })\r\n    assert(setsAreEqual(targetsShouldBe, new Set(targets)))\r\n  })\r\n}\r\n```",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        }
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "id": "urn:uuid:758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd",
      "published": "2017-11-16T21:44:01.903Z",
      "inbox": "/activitypub/inbox",
      "url": "/activities/758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd",
      "uuid": "758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd",
      "replies": "/activities/758a7eec-9b82-49a5-9dbd-d72e1bdcd8fd/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "I am doing these ones next:\r\n\r\n* client:submission:recursively-add-targets\r\n* client:submission:recursively-add-targets:limits-depth\r\n",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://activitypub.rocks/implementation-report/"
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://activitypub.rocks/implementation-report/"
      ],
      "attributedTo": {
        "url": "https://bengo.is"
      },
      "id": "urn:uuid:5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3",
      "published": "2017-11-16T01:37:51.538Z",
      "distbin:activityPubDeliveryFailures": [
        {
          "name": "TypeError",
          "message": "Cannot read property 'http://www.w3.org/ns/ldp#inbox' of undefined"
        }
      ],
      "inbox": "/activitypub/inbox",
      "url": "/activities/5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3",
      "uuid": "5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3",
      "replies": "/activities/5e4f5f9b-90e5-43fc-94cd-7e2c832a81a3/replies"
    },
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Create",
      "object": {
        "type": "Note",
        "content": "I bought activitypub.com. So glad no one maliciously snagged it up before me.\r\n\r\nRight now it redirects to https://activitypub.rocks.",
        "generator": {
          "type": "Application",
          "name": "distbin-html",
          "url": "https://distbin.com"
        },
        "inReplyTo": "https://activitypub.com"
      },
      "location": {
        "type": "Place",
        "units": "m",
        "latitude": 37.7633803,
        "longitude": -122.4277231,
        "accuracy": 95,
        "radius": 48
      },
      "cc": [
        "https://www.w3.org/ns/activitystreams#Public",
        "https://activitypub.com"
      ],
      "attributedTo": {
        "url": "https://bengo.is"
      },
      "id": "urn:uuid:e535145e-3ba3-4c57-aa07-72bbb1c70919",
      "published": "2017-11-16T01:04:07.086Z",
      "distbin:activityPubDeliveryFailures": [
        {
          "name": "TargetRequestFailed",
          "message": "Got unexpected status code 301 when requesting https://activitypub.com to determine inbox URL"
        }
      ],
      "inbox": "/activitypub/inbox",
      "url": "/activities/e535145e-3ba3-4c57-aa07-72bbb1c70919",
      "uuid": "e535145e-3ba3-4c57-aa07-72bbb1c70919",
      "replies": "/activities/e535145e-3ba3-4c57-aa07-72bbb1c70919/replies"
    }
  ],
  "startIndex": 0,
  "next": "?cursor=%7B%22or%22%3A%5B%7B%22published%22%3A%7B%22lt%22%3A%222017-11-16T01%3A04%3A07.086Z%22%7D%7D%2C%7B%22and%22%3A%5B%7B%22published%22%3A%7B%22equals%22%3A%222017-11-16T01%3A04%3A07.086Z%22%7D%7D%2C%7B%22id%22%3A%7B%22lt%22%3A%22urn%3Auuid%3Ae535145e-3ba3-4c57-aa07-72bbb1c70919%22%7D%7D%5D%7D%5D%7D",
  "partOf": "/activitypub/public"
}

Great note! It inspired me to post this one.

This is a very anonymous post made by Sylvhem.

Hi User!

Hi Hobbes!

I will do these security ones next

  • server:security-considerations:do-not-post-to-localhost
  • server:security-considerations:filter-incoming-content

done!

the example object here is based on the one in section 6.1

but just checking that I understand what recursion levels past 0, 1 should give access to.

tests['activityTargetsRecursive'] = async () => {
  const activity: Activity = {
    "@context": ["https://www.w3.org/ns/activitystreams",
                 {"@language": "en-GB"}],
    "type": "Like",
    "object": {
      "id": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
      "type": "Article",
      "name": "Minimal ActivityPub update client",
      "content": "Today I finished morph, a client for posting ActivityStreams2...",
      "attributedTo": {
        "id": "https://rhiaro.co.uk/#amy",
        "attributedTo": {
          "id": "https://rhario.co.uk/attributedTo",
          "attributedTo": {
            "id": "https://rhiaro.co.uk/attributedTo/attributedTo",
            "cc": [{
              "id": "https://rhiaro.co.uk/attributedTo/attributedTo/cc/0"
            }]
          }
        }
      },
      "to": "https://rhiaro.co.uk/followers/",
      "cc": "https://e14n.com/evan"
    }
  }
  const levels: Set<string>[] = [
    ['https://rhiaro.co.uk/#amy', 'https://rhiaro.co.uk/followers/', "https://e14n.com/evan"],
    ["https://rhario.co.uk/attributedTo"],
    ["https://rhiaro.co.uk/attributedTo/attributedTo"],
    ["https://rhiaro.co.uk/attributedTo/attributedTo/cc/0"],
  ].map((a: string[]) => new Set(a))
  const targetsShouldBeForLevel = (level: number) => {
    const theseLevels = levels.slice(0, level+1)
    const targetsShouldBe = theseLevels.reduce((targets, levelTargetSet) => new Set([...levelTargetSet, ...targets]), new Set)
    return new Set(targetsShouldBe)
  }
  levels.forEach((level, index) => {
    const targets = activityTargetsRecursive(activity, index)
    const targetsShouldBe = targetsShouldBeForLevel(index)
    // console.log({ level: index, targets, targetsShouldBe })
    assert(setsAreEqual(targetsShouldBe, new Set(targets)))
  })
}

I am doing these ones next:

  • client:submission:recursively-add-targets
  • client:submission:recursively-add-targets:limits-depth

I bought activitypub.com. So glad no one maliciously snagged it up before me.

Right now it redirects to https://activitypub.rocks.

Next Page