[–] [S] 2 points 1 month ago

Fedify maintainer here. Agreed on the key handling. The manual warns about this too: Fedify currently has no workflow for rotating the DID's key or moving an actor to another DID. One distinction for anyone experimenting: the gateway keys that sign HTTP requests on the actor's behalf are separate server keys, listed in the DID-signed actor document, so replacing them doesn't change the identity. The DID key is different. A did:key identifier encodes the public key itself, so a new key means a new DID.

On rotation, there's no concrete design for #413 yet. I expect it to become an umbrella issue, with key rotation as one of its sub-issues. Since a did:key can't rotate, that will probably mean supporting another DID method or adding some kind of migration mechanism.

  • source
  • parent
  • context
  • [–] [S] 1 point 7 months ago (1 child)

    onUnverifiedActivity() only runs when signature verification fails: missing signature, bad signature, or a key lookup failure. It gives you a chance to handle those cases yourself instead of Fedify immediately returning 401 Unauthorized. If the signature verifies, this hook is not involved.

    If you want extra validation for verified activities, do that in your normal .on() handlers. Those run after signature verification, so that's where app-specific checks belong, like rejecting certain actors or applying your own rate limits.

  • source
  • parent
  • context
  • [–] [S] 4 points 9 months ago (2 children)

    Thanks for the feedback! The style choices are intentional and all valid CommonMark:

    • Heading styles: Setext (===/---) for H1/H2 makes major sections visually prominent in plain text, while ATX (###) is used for deeper levels. This hybrid approach optimizes readability in the raw source.

    • Four tildes: Tildes are valid CommonMark delimiters, just less common. They're chosen because code often contains backticks (shell commands, string literals), so tildes avoid visual clutter.

    The core philosophy is that Markdown should be readable as plain text, not just after rendering. These choices prioritize scanning structure in a text editor. That said, it's definitely an opinionated style—not for everyone!

  • source
  • parent
  • context
  • view more: next ›