{"action":"created","issue":{"url":"https://api.github.com/repos/certbot/certbot/issues/4318","repository_url":"https://api.github.com/repos/certbot/certbot","labels_url":"https://api.github.com/repos/certbot/certbot/issues/4318/labels{/name}","comments_url":"https://api.github.com/repos/certbot/certbot/issues/4318/comments","events_url":"https://api.github.com/repos/certbot/certbot/issues/4318/events","html_url":"https://github.com/certbot/certbot/issues/4318","id":213207036,"number":4318,"title":"acme API changes required for implementing the latest ACME spec","user":{"login":"jsha","id":220205,"avatar_url":"https://avatars2.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":[{"id":277074172,"url":"https://api.github.com/repos/certbot/certbot/labels/area:%20acme","name":"area: acme","color":"c5def5","default":false},{"id":277080619,"url":"https://api.github.com/repos/certbot/certbot/labels/area:%20code%20health","name":"area: code health","color":"c5def5","default":false},{"id":146954792,"url":"https://api.github.com/repos/certbot/certbot/labels/question","name":"question","color":"cc3399","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-03-10T00:22:10Z","updated_at":"2017-04-11T02:18:48Z","closed_at":null,"body":"In order to implement the current ACME spec, we're going to need to implement some breaking changes. Ideally I'd like to implement the new Python APIs on top of Boulder's old ACME version and offer the old APIs for a deprecation period while Boulder is still implementing the latest ACME spec. Once Boulder has implemented the latest spec, the deprecated `acme` module APIs would be supported only when using the old Boulder URLs. To use the new Boulder URLs, you would need to switch over to the new `acme` APIs. Then, at some point N months after deployment of the new Boulder URLs, the old Boulder URLs would stop working, and everyone using the `acme` module would need to be on the latest version by then and using the new APIs.\r\n\r\nAlternately, we could make a hard breaking change, and say that anyone using `acme` and needing the old APIs should pin to an older version. Programs that are updated to use the newer `acme` APIs would pin a minimum `acme` version needed.\r\n\r\nHere are the main things I can think of that need to change:\r\n\r\n- Authz's are now created by the server as a result of submitting a CSR. We should add a client method `new_order(csr)`, which returns an Order object. The Order object will contain a number of authorization objects. Clients can fulfill those authorizations as normal. We would also add a new method `poll_for_issuance(order)` to be called once a client submitted answers to all the challenges.\r\n\r\n- Registrations are renamed to Accounts, and JWS bodies are now identified by the Account URL rather than the full key. This means that when instantiating a Client, we need to include not just a key, but also an account URL. Probably the best way to do this is to allow constructing a Client with no key, and provide a `client.set_account(...)` method that would take an AccountResource that includes a URI (because it would inherit from ResourceWithURI).\r\n\r\n- Terms of Service URL is now a property of the directory rather than the account. This means that we need a `terms-of-service-agreed` field in NewRegistration, and `client.agree_to_tos(account)` will become a no-op for new-style ACME. Clients will need to show the ToS from the directory before calling client.register.\r\n\r\nThoughts?"},"comment":{"url":"https://api.github.com/repos/certbot/certbot/issues/comments/293130597","html_url":"https://github.com/certbot/certbot/issues/4318#issuecomment-293130597","issue_url":"https://api.github.com/repos/certbot/certbot/issues/4318","id":293130597,"user":{"login":"SwartzCr","id":649860,"avatar_url":"https://avatars2.githubusercontent.com/u/649860?v=3","gravatar_id":"","url":"https://api.github.com/users/SwartzCr","html_url":"https://github.com/SwartzCr","followers_url":"https://api.github.com/users/SwartzCr/followers","following_url":"https://api.github.com/users/SwartzCr/following{/other_user}","gists_url":"https://api.github.com/users/SwartzCr/gists{/gist_id}","starred_url":"https://api.github.com/users/SwartzCr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SwartzCr/subscriptions","organizations_url":"https://api.github.com/users/SwartzCr/orgs","repos_url":"https://api.github.com/users/SwartzCr/repos","events_url":"https://api.github.com/users/SwartzCr/events{/privacy}","received_events_url":"https://api.github.com/users/SwartzCr/received_events","type":"User","site_admin":false},"created_at":"2017-04-11T02:18:48Z","updated_at":"2017-04-11T02:18:48Z","body":"@jsha or @bmw do you want to do something with this ticket? Either put in notes about what we've decided or close it or something?"}}
{"actor":{"display_login":"SwartzCr"}}