{"action":"created","issue":{"url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/138","labels_url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/138/labels{/name}","comments_url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/138/comments","events_url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/138/events","html_url":"https://github.com/letsencrypt/acme-spec/pull/138","id":85638579,"number":138,"title":"Add directory object","user":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-06-05T21:40:31Z","updated_at":"2015-06-08T19:58:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/letsencrypt/acme-spec/pulls/138","html_url":"https://github.com/letsencrypt/acme-spec/pull/138","diff_url":"https://github.com/letsencrypt/acme-spec/pull/138.diff","patch_url":"https://github.com/letsencrypt/acme-spec/pull/138.patch"},"body":"This allows clients to be configured with a single URL that will give them information about the other URLs available for various resources."},"comment":{"url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/comments/110120776","html_url":"https://github.com/letsencrypt/acme-spec/pull/138#issuecomment-110120776","issue_url":"https://api.github.com/repos/letsencrypt/acme-spec/issues/138","id":110120776,"user":{"login":"jsha","id":220205,"avatar_url":"https://avatars.githubusercontent.com/u/220205?v=3","gravatar_id":"","url":"https://api.github.com/users/jsha","html_url":"https://github.com/jsha","followers_url":"https://api.github.com/users/jsha/followers","following_url":"https://api.github.com/users/jsha/following{/other_user}","gists_url":"https://api.github.com/users/jsha/gists{/gist_id}","starred_url":"https://api.github.com/users/jsha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsha/subscriptions","organizations_url":"https://api.github.com/users/jsha/orgs","repos_url":"https://api.github.com/users/jsha/repos","events_url":"https://api.github.com/users/jsha/events{/privacy}","received_events_url":"https://api.github.com/users/jsha/received_events","type":"User","site_admin":false},"created_at":"2015-06-08T19:58:01Z","updated_at":"2015-06-08T19:58:01Z","body":"I think the idea that newRegistration leads to newAuthorization, etc., only really makes sense in the simplest straight-through case where you register once, authorize one domain, issue a cert for it, and then never use that registration again.\r\n\r\nIf we expect clients to get multiple authorizations, across long spans of time, and issue multiple certificates, it becomes onerous for the client to keep track of all the URLs it needs across time.\r\n\r\nHere's a concrete example: We are planning to do versioning but putting each version on a new hostname. If a user registers with client version 1.0, against a server running 1.0, they receive a \"next\" link pointing at, say, `https://v1.api.letsencrypt.org/acme/new-authz`. If the new-registration link is the only way to obtain that URL, the client has to remember that URL for all future authorizations. Later, we release protocol version 2.0, and host it at `https://v2.api.letsencrypt.org/acme/new-authz`. The user upgrades their client to version 2.0, and expects to continue to use their current registration, which has all their current certs attached to it. But their new-authz URL is stale. The simplest way to refresh it is to have the client fetch a directory each time it runs."}}