{"action":"created","issue":{"url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/593","labels_url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/593/labels{/name}","comments_url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/593/comments","events_url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/593/events","html_url":"https://github.com/letsencrypt/letsencrypt/pull/593","id":94025530,"number":593,"title":"Rewrite accounts and registration","user":{"login":"kuba","id":106176,"avatar_url":"https://avatars.githubusercontent.com/u/106176?v=3","gravatar_id":"","url":"https://api.github.com/users/kuba","html_url":"https://github.com/kuba","followers_url":"https://api.github.com/users/kuba/followers","following_url":"https://api.github.com/users/kuba/following{/other_user}","gists_url":"https://api.github.com/users/kuba/gists{/gist_id}","starred_url":"https://api.github.com/users/kuba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kuba/subscriptions","organizations_url":"https://api.github.com/users/kuba/orgs","repos_url":"https://api.github.com/users/kuba/repos","events_url":"https://api.github.com/users/kuba/events{/privacy}","received_events_url":"https://api.github.com/users/kuba/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-09T11:43:08Z","updated_at":"2015-07-10T07:36:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/letsencrypt/letsencrypt/pulls/593","html_url":"https://github.com/letsencrypt/letsencrypt/pull/593","diff_url":"https://github.com/letsencrypt/letsencrypt/pull/593.diff","patch_url":"https://github.com/letsencrypt/letsencrypt/pull/593.patch"},"body":"Save accounts to:\r\n\r\n    /etc/letsencrypt/accounts/www.letsencrypt-dmeo.org/acme/new-reg/ \\\r\n    my.local.hostname@2015-07-04T14:04:10Z/ \\\r\n    {regr.json,meta.json,private_key.json}\r\n\r\nAccount now represents a combination of private key, Registration Resource and client account metadata. `Account.id` based on the account metadata (creation host and datetime). UI interface (`cli._determine_account`) based on the `id`, and not on email as previously.\r\n\r\nAdd `AccountStorage` interface and `AccountFileStorage`, `AccountMemoryStorage` implementations (latter, in-memory, useful for testing).\r\n\r\nCreate Account only after Registration Resource is received (`register()` returns `Account`).\r\n\r\nAllow `client.Client(..., acme=acme, ...)`: API client might reuse `acme.client.Client` as returned by `register()`.\r\n\r\nMove `report_new_account` to `letsencrypt.account`, `client.Client.register` into `client.register`.\r\n\r\nUse `Registration.from_data` acme API.\r\n\r\n`achallenges.AChallenge.key` is now the `acme.jose.JWK`, not `le_util.Key`. Plugins have to export PEM/DER as necessary (c.f. `letsencrypt.plugins.common.Dvsni.get_key_path`)\r\n\r\nAdd `--agree-tos`, save `--agree-eula` to `args.eula`. Prompt for EULA as soon as client is launched, add prompt for TOS.\r\n\r\nRemove unnecessary `letsencrypt.network`. Remove, now irrelevant, `IConfig.account_keys_dir`.\r\n\r\nBased on the draft from https://github.com/letsencrypt/letsencrypt/pull/362#issuecomment-97946817.\r\n\r\nAlso, expose `le_util.safe_open`.\r\n\r\nSorry about the size, @jdkasten!"},"comment":{"url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/comments/120269046","html_url":"https://github.com/letsencrypt/letsencrypt/pull/593#issuecomment-120269046","issue_url":"https://api.github.com/repos/letsencrypt/letsencrypt/issues/593","id":120269046,"user":{"login":"kuba","id":106176,"avatar_url":"https://avatars.githubusercontent.com/u/106176?v=3","gravatar_id":"","url":"https://api.github.com/users/kuba","html_url":"https://github.com/kuba","followers_url":"https://api.github.com/users/kuba/followers","following_url":"https://api.github.com/users/kuba/following{/other_user}","gists_url":"https://api.github.com/users/kuba/gists{/gist_id}","starred_url":"https://api.github.com/users/kuba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kuba/subscriptions","organizations_url":"https://api.github.com/users/kuba/orgs","repos_url":"https://api.github.com/users/kuba/repos","events_url":"https://api.github.com/users/kuba/events{/privacy}","received_events_url":"https://api.github.com/users/kuba/received_events","type":"User","site_admin":false},"created_at":"2015-07-10T07:36:53Z","updated_at":"2015-07-10T07:36:53Z","body":"Travis again hit by https://github.com/letsencrypt/boulder/issues/420"}}