00012_--_arch_design.txt 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. Q: how to test webfinger/RFC7033?
  2. A: Take the current username or 'seppo' on the current domain: @seppo@demo.mro.name
  3. and ensure a valid id and inbox lookup. Both must respond proper json.
  4. Caveat: leaks the username. But they are public anyway.
  5. https://github.com/w3c/activitypub/issues/194
  6. $ curl -L --head 'https://demo.mro.name/.well-known/webfinger?resource=acct:seppo@demo.mro.name'
  7. HTTP/2 301
  8. location: /seppo/.well-known/webfinger/?resource=acct:seppo@demo.mro.name
  9. date: Tue, 19 Apr 2022 18:18:10 GMT
  10. server: lighttpd/1.4.59
  11. HTTP/2 200
  12. content-type: application/json
  13. accept-ranges: bytes
  14. etag: "2523288411"
  15. last-modified: Wed, 23 Mar 2022 11:26:02 GMT
  16. content-length: 542
  17. date: Tue, 19 Apr 2022 18:58:07 GMT
  18. server: lighttpd/1.4.59
  19. {
  20. "subject": "acct:seppo@demo.mro.name",
  21. "aliases": [
  22. "https://demo.mro.name/seppo/as/me/"
  23. ],
  24. "links": [
  25. {
  26. "rel": "http://webfinger.net/rel/profile-page",
  27. "type": "text/html",
  28. "href": "https://demo.mro.name/seppo/"
  29. },
  30. {
  31. "rel": "self",
  32. "type": "application/activity+json",
  33. "href": "https://demo.mro.name/seppo/as/me/"
  34. },
  35. {
  36. "rel": "http://ostatus.org/schema/1.0/subscribe",
  37. "template": "https://demo.mro.name/seppo/seppo.cgi/ostatus/authorize?uri={uri}"
  38. }
  39. ]
  40. }
  41. $ curl -L 'https://demo.mro.name/seppo/as/me/'
  42. $ curl -L -H 'Accept: application/activity+json' 'https://digitalcourage.social/users/mro'
  43. HTTP/2 200
  44. content-type: application/activity+json; charset=utf-8
  45. {
  46. "@context": [
  47. "https://www.w3.org/ns/activitystreams",
  48. "https://w3id.org/security/v1",
  49. {
  50. "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
  51. "toot": "http://joinmastodon.org/ns#",
  52. "featured": {
  53. "@id": "toot:featured",
  54. "@type": "@id"
  55. },
  56. "featuredTags": {
  57. "@id": "toot:featuredTags",
  58. "@type": "@id"
  59. },
  60. "alsoKnownAs": {
  61. "@id": "as:alsoKnownAs",
  62. "@type": "@id"
  63. },
  64. "movedTo": {
  65. "@id": "as:movedTo",
  66. "@type": "@id"
  67. },
  68. "schema": "http://schema.org#",
  69. "PropertyValue": "schema:PropertyValue",
  70. "value": "schema:value",
  71. "discoverable": "toot:discoverable",
  72. "Device": "toot:Device",
  73. "Ed25519Signature": "toot:Ed25519Signature",
  74. "Ed25519Key": "toot:Ed25519Key",
  75. "Curve25519Key": "toot:Curve25519Key",
  76. "EncryptedMessage": "toot:EncryptedMessage",
  77. "publicKeyBase64": "toot:publicKeyBase64",
  78. "deviceId": "toot:deviceId",
  79. "claim": {
  80. "@type": "@id",
  81. "@id": "toot:claim"
  82. },
  83. "fingerprintKey": {
  84. "@type": "@id",
  85. "@id": "toot:fingerprintKey"
  86. },
  87. "identityKey": {
  88. "@type": "@id",
  89. "@id": "toot:identityKey"
  90. },
  91. "devices": {
  92. "@type": "@id",
  93. "@id": "toot:devices"
  94. },
  95. "messageFranking": "toot:messageFranking",
  96. "messageType": "toot:messageType",
  97. "cipherText": "toot:cipherText",
  98. "suspended": "toot:suspended",
  99. "focalPoint": {
  100. "@container": "@list",
  101. "@id": "toot:focalPoint"
  102. }
  103. }
  104. ],
  105. "id": "https://digitalcourage.social/users/mro",
  106. "type": "Person",
  107. "following": "https://digitalcourage.social/users/mro/following",
  108. "followers": "https://digitalcourage.social/users/mro/followers",
  109. "inbox": "https://digitalcourage.social/users/mro/inbox",
  110. "outbox": "https://digitalcourage.social/users/mro/outbox",
  111. "featured": "https://digitalcourage.social/users/mro/collections/featured",
  112. "featuredTags": "https://digitalcourage.social/users/mro/collections/tags",
  113. "preferredUsername": "mro",
  114. "name": "Marcus Rohrmoser 🌍",
  115. "summary": "\\u003cp\\u003eProgrammer 📱 🍏 🐫 λ.\\u003cbr /\\u003eFostering the indieweb.org/POSSE\\u003c/p\\u003e",
  116. "url": "https://digitalcourage.social/@mro",
  117. "manuallyApprovesFollowers": false,
  118. "discoverable": true,
  119. "published": "2022-03-31T00:00:00Z",
  120. "devices": "https://digitalcourage.social/users/mro/collections/devices",
  121. "alsoKnownAs": [
  122. "https://pleroma.tilde.zone/users/mro"
  123. ],
  124. "publicKey": {
  125. "id": "https://digitalcourage.social/users/mro#main-key",
  126. "owner": "https://digitalcourage.social/users/mro",
  127. "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsp6FAA+3suRcIBIoo6O6\nChjPz3eBvKgIEv8HMP0lH7rTJOO6JCMpx8LhFVg3zQ8WeSECJinRe2dFDpdqjved\nrxKIu77p+RLkH5lRJZvXimOJNa+ea2A9YDQn6Km9VQ5EaiDsGCxopvHWFmsBy9da\ng+7ftwl+FwUhyNntwxdNJ3PTtV3qRnynq2UezyD3/jSELZ6uufgXIpt/6qFWM13K\nGfqKe0JgJE5APT5UiufUjtybnhNWqO9kYH5VaA9LaIWreDfk5sU2qa9xvUpcvRl0\nxpDDI3ROlzuApTmqh7ERybAlepNOtxg1oJyDkbxNWTRJWcDFZvScDXV226CxF15S\niQIDAQAB\n-----END PUBLIC KEY-----\n"
  128. },
  129. "tag": [],
  130. "attachment": [
  131. {
  132. "type": "PropertyValue",
  133. "name": "Zettelkasten",
  134. "value": "\\u003ca href=\"http://mro.name/microblog\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"\\u003e\\u003cspan class=\"invisible\"\\u003ehttp://\\u003c/span\\u003e\\u003cspan class=\"\"\\u003emro.name/microblog\\u003c/span\\u003e\\u003cspan class=\"invisible\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e"
  135. },
  136. {
  137. "type": "PropertyValue",
  138. "name": "📍",
  139. "value": "\\u003ca href=\"http://mro.name/traunstein\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"\\u003e\\u003cspan class=\"invisible\"\\u003ehttp://\\u003c/span\\u003e\\u003cspan class=\"\"\\u003emro.name/traunstein\\u003c/span\\u003e\\u003cspan class=\"invisible\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e"
  140. }
  141. ],
  142. "endpoints": {
  143. "sharedInbox": "https://digitalcourage.social/inbox"
  144. },
  145. "icon": {
  146. "type": "Image",
  147. "mediaType": "image/jpeg",
  148. "url": "https://digitalcourage.social/system/accounts/avatars/108/050/262/287/113/206/original/c152bff1a001819f.jpg"
  149. }
  150. }