So You Want to Define a Well-Known URI

(mnot.net)

39 points | by ingve 2 hours ago

4 comments

  • reddalo 53 minutes ago
    I wish people would follow this, instead of coming up with new standards in the root namespace. "llms.txt" [1] comes to mind, for example.

    Let's stop polluting the root of a domain!

    [1] https://llmstxt.org/

    • rickette 24 minutes ago
      LLMs.txt is also nonsense since it isn't adopted by any of the major AI players.
  • sandblast 34 minutes ago
    No, in fact I don't. But this post wouldn't be of any help anyway. It feels like it's about nothing, there is no substance, just stating some obvious facts. Without examples that lead to some real recommendations, this whole expertise claimed by the author is of no use.
  • jvuygbbkuurx 56 minutes ago
    Why are they so specific?

    Why password-reset instead of a more generic link tree?

    Why discord domain verification instead of domain-verifications with a dynamic list on entries?

    Seems like a waste of time. I would just define my own spec outside of well known for my use case.

    • notpushkin 2 minutes ago
      > discord domain verification

      That’s on Discord. They’re not in the registry: https://www.iana.org/assignments/well-known-uris/well-known-...

      > Why password-reset instead of a more generic link tree?

      [edit: I’ll answer in another subthread instead]

    • arcfour 42 minutes ago
      > Why discord domain verification instead of domain-verifications with a dynamic list on entries?

      The TXT record itself is already a dynamic list of entries. It's far simpler and easier to iterate through the list and compare the start of each value with your search string until you find "discord domain verification" directly than it would be to do anything else.

      Example:

          ;; ANSWER SECTION:
          ycombinator.com.        300     IN      TXT     "openai-domain-verification=dv-QbhxxK0G0JK0dnyZ4YTsNAfw"
          ycombinator.com.        300     IN      TXT     "v=spf1 include:_spf.google.com include:mailgun.org a:rsweb1-36.investorflow.com include:_spf.createsend.com include:servers.mcsv.net -all"
          ycombinator.com.        300     IN      TXT     "MS=ms37374900"
          ycombinator.com.        300     IN      TXT     "anthropic-domain-verification-0qe2ww=yK576oHdDgyTcXgkPfj1KXgGt"
          ycombinator.com.        300     IN      TXT     "ZOOM_verify_2ndw8KZxSRa8PT8NmdyXvw"
          ycombinator.com.        300     IN      TXT     "google-site-verification=KsI69Y_jEVkp4eXqSQ9R9gwxjIpZznvuvrus6UolB9Y"
          ycombinator.com.        300     IN      TXT     "ca3-4861b957e83847c188e45d04ec314ee3"
          ycombinator.com.        300     IN      TXT     "apple-domain-verification=WG0sP5Alm7N6h1Te"
          ycombinator.com.        300     IN      TXT     "dropbox-domain-verification=asc63coma4mv"
          ycombinator.com.        300     IN      TXT     "google-site-verification=GJKdQskycEclAGPua3yXB9m_nVhxbrsVps_y-t9SXV0"
          ycombinator.com.        300     IN      TXT     "Wayback verify for support request 741082"
          ycombinator.com.        300     IN      TXT     "google-site-verification=rivq8jKu6AADGtbbEzJhmOpcqq08B7QxIzXxYV8DtyU"
          ycombinator.com.        300     IN      TXT     "rippling-domain-verification=a660f7a4ab77a3de"
      • sandblast 23 minutes ago
        "Domain-verifications" is an invitation for everyone else that might need it to use the same standard and convention. "Discord-domain-verification" is not, it's what feels like polluting the global namespace with the company name that might cease to exist in a few years.

        At the very least, it should be "domain-verification-discord", "-google" and so on. Maybe even "-com.discord", "-com.google"? And the first part clearly standardized and registered, instead of one entity using "domain" and another one "site".

    • reddalo 51 minutes ago
      Your own spec wouldn't be used by anyone else.

      The password-reset well-known endpoint is used by password managers to show a "Change password..." button in their interface, which magically links to the password change page described in that well-known file.

      • jvuygbbkuurx 44 minutes ago
        If the website implements it. What about email preferences? Removing account links? There are many use-cases you might want to redirect a user to, but having to make their own well known for it seems dumb instead of using a more generic one. I guess the more flexible it is, the harder adoption becomes as the usage within a spec might diverge, or it grows outside of the spec and becomes unofficial. So maybe password-reset is correct level of specification.

        Anyway discord domain verification can tell in their onboarding docs to put it anywhere. It being well known does nothing. If there was a root level domain verification, then you might as well put it under that. But otherwise why go through a process?

  • einpoklum 48 minutes ago
    How well-known are those URIs though? :-\
    • ano-ther 0 minutes ago
    • reddalo 39 minutes ago
      There's an interesting list on Wikipedia: https://en.wikipedia.org/wiki/Well-known_URI#List_of_well-kn...
      • eschatology 32 minutes ago
        Not one of them links to the actual well-known resource, only pdf specifications. And several I picked randomly leads to dead ends.

        Here's one I could find: https://accounts.google.com/.well-known/openid-configuration

        But how does one even find this?

        • masklinn 18 minutes ago
          well-known is for programmatic access, it either namespaces something you’re told to look for (e.g. various types of domain markers) or it lets you discover a feature / endpoint.

          In the latter case you just probe, for instance if you’re a password manager and you have a password for site A you hit A/.well-known/change-password and if they returns something you can surface a change password link to your user.

          The one you found is for OIDC provider discovery (https://openid.net/specs/openid-connect-discovery-1_0.html#P...) so someone tells you they want to log in via Google, you hit that endpoint, and it lets you setup Google as an oidc provider rather without needing to hard-code providers. Even if you just want to support Google as a provider, you hit that and you get the entire configuration rather than have to hunt down the same information in the docs.

    • eschatology 35 minutes ago
      I spent 10 minutes searching for one in the article, in the RFC, in the wikipedia page, on google, to search for a .well-known example. Couldn't find one.

      I did read one before while working with github oidc, and I did find it very useful.

      What is it with technical documentations that go deep describing what it is in plenty words but refusing to give a single example? This far from the first case I've ran into either.

    • timwis 46 minutes ago
      I agree. I was hoping for a few positive examples, but didn't see any. The only one I know of is the OIDC discovery endpoint.
      • asdfasdfadsfs 18 minutes ago
        I would say acme-challenge is one of the most used ones. How else would one get SSL certificates today