<div dir="ltr"><div><div>We are now 3 days into train 48, and as always, we have lots of interesting work scheduled.<br><br></div>The full list of GitHub issues we have committed to this train is available on our Waffle board [1] in the columns labeled "now", "in progress", "in review", and "blocked".<br><br>We have several ongoing, multi-train efforts:<br><ul><li><b>Multi-device metrics</b> - Do our users use one or more devices?
If so, what sorts of devices? Are multi-device users more likely to use
Firefox on other devices?</li><li><b>Improved email support</b> - Our emails had a few conflicting styles, these are being made more consistent.</li><li><b>Marketing email integration improvements </b>-
We provide users with the ability to sign up to Firefox related
marketing emails. We want to make this experience better and open to as
many users as possible.</li><li><b>Integration with Fennec's firstrun flow</b>
- Fennec is replacing their native Firefox Accounts client with the web
flow. We are trying to make this as awesome as possible.</li><li><b>Service Tokens, a.k.a. <b><span style="font-weight:normal"><b>Use of Profile Data by trusted internal services</b></span></b></b><span style="font-weight:normal"> - We have several internal reliers that would like to use FxA's profile data. We should provide a way to allow them to do so.</span></li><li><span style="font-weight:normal"><b>Device Registration API</b> - Users should have a simple way to manage their FxA connected devices.<br></span></li><li><b>Software Quality</b> - Any project of this size starts to build technical debt. We try to pay off a little each cycle.</li></ul><p>You'll notice this list is slightly different than for the last train. Forward progress!<br></p><p>Here is how each of these break down into issues and PRs:</p><p><b>Multi-device Metrics</b> [2]<br></p><ul><li>Use new metrics script to feed FxA metrics dashboards [3]</li><li>Test impact of metrics gathering on production traffic [4]</li><li>Implement device metrics dashboard [5]</li></ul><p><b>Improved email support</b> [6]<b><br></b></p><ul><li>"New sign-in to Sync" mail has bad advice re ignoring the email if received in error. [7]</li><ul><li>fix(email): add better password change link for certain emails [8]</li></ul><li>Link to a specific sumo article instead of the sumo root. [9]</li><li>Train 45 email strings contain too much HTML [10]</li><ul><li>fix(l10n): Remove HTML attribute from email templates [11]</li></ul></ul><p><b>Marketing email integration improvements</b> [12]<b><br></b></p><ul><li>feat(basket): Use fxa-basket-proxy for all our basket-proxying needs. [13]<b></b></li><li>Move basket event processing into basket-specific repo [14]</li><ul><li>refactor(basket): move basket event processing into separate repo. [15]</li></ul><li>feat(marketing): Enable Marketing Email prefs for more users. [16]<br></li></ul><p><b>Integration with Fennec's firstrun flow</b> [17]<b><br></b></p><ul><li>Spurious 'login' message when navigating to /settings with an unverified account [18]</li><ul><li>fix(client): Suppress spurious 'login' messages to the browser [19]</li></ul><li>Prefer {uid,email} to {email} throughout [20]</li></ul><p><b>Service Tokens, a.k.a. <b><span style="font-weight:normal"><b>Use of Profile Data by trusted internal services </b></span></b></b><span style="font-weight:normal">[21]<br></span></p><ul><li><span style="font-weight:normal">Provide oauth-token-authenticated access to account profile data</span><span style="font-weight:normal"> [22]</span></li><ul><li><span style="font-weight:normal">feat(profile): Add oauth-authenticated /account/profile endpoint. [23]</span></li></ul><li><span style="font-weight:normal">Document Service Clients [24]</span></li><li><span style="font-weight:normal">Service Client Tokens [25]</span></li><li><span style="font-weight:normal">Accept JWT from Service Clients and return authorization token [26]</span></li></ul><p><b>Device Registration API</b> [27]<br></p><ul><li>Finalize design for devices view [28]</li><li>Finalize design of improved "account activity" email [29]</li><li>device api endpoints [30]</li><li>Device support (auth-server) [31]</li><li>Device support (auth-db-server) [32]<br></li></ul><p><b>Software Quality </b>[33]</p><ul><li>Tests: Password reset tests sometimes ask for sign-in [34]</li><li>Attempt to fetch avatar is made after failure to fetch OAuth token [35]</li><li>(auth server) Update mozlog dependency to 2.0.2 or greater [36]</li><li>oauth client_id's that are being logged as expired [37]</li><li>Cannot update to 'hi'/'hi-IN' for fxa-auth-server - missing locale. [38]</li><li>embed git sha in code to detect whether code is built from current resources [39]</li><li>Pool does not reconnect on db failover [40]</li><li>small number of avatar uploads rejected for >1MB size [41]</li><li>(profile server) Update mozlog dependency to 2.0.2 or greater? [42]</li><li>Input sanitization: Limits on size and intensiveness of output of GraphicsMagick [43]</li><li>small number of 500 Errors in production for FxOS [44]</li><li>prod 500 errors for /v1/profile on possible network glitch [45]</li><li>Remove ill-advised "00000000000000000000000000000000" hashedSecret values from config files [46]</li><li>Move to age based COPPA [47]</li><ul><li>fix(coppa): move to age input coppa [48]</li></ul><li>Differentiate between firstrun and regular screen views to facilitate better metrics visualizations [49]</li><li>fix(client): Only allow one profile request per account per tab session. [50]</li><li>[meta] drop the whitelisted column in clients table and associated code and config [51]</li><li>user's logged in state is not always synchronized across tabs [52]</li><ul><li>feat(client): notify other tabs of successful sign in/out [53]<br></li></ul></ul><br></div><div>One could say that's an even more ambitious list than last time! Ryan will let you know what we successfully finish when train 48 goes into production.<br><br></div><div>Shane<br><br>--------------------------------<br></div><div><br>[1] - <a href="https://waffle.io/mozilla/fxa">https://waffle.io/mozilla/fxa</a><br><br>[2] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-21:%20multi-device%20metrics">https://waffle.io/mozilla/fxa?milestone=FxA-21:%20multi-device%20metrics</a><br>[3] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/83">https://github.com/mozilla/fxa-auth-db-mysql/issues/83</a><br>[4] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/81">https://github.com/mozilla/fxa-auth-db-mysql/issues/81</a><br>[5] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/84">https://github.com/mozilla/fxa-auth-db-mysql/issues/84</a><br><br>[6] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-29:%20email%20quality">https://waffle.io/mozilla/fxa?milestone=FxA-29:%20email%20quality</a><br>[7] - <a href="https://github.com/mozilla/fxa-auth-mailer/issues/78">https://github.com/mozilla/fxa-auth-mailer/issues/78</a><br>[8] - <a href="https://github.com/mozilla/fxa-auth-mailer/pull/93">https://github.com/mozilla/fxa-auth-mailer/pull/93</a><br>[9] - <a href="https://github.com/mozilla/fxa-auth-mailer/issues/79">https://github.com/mozilla/fxa-auth-mailer/issues/79</a><br>[10] - <a href="https://github.com/mozilla/fxa-auth-mailer/issues/74">https://github.com/mozilla/fxa-auth-mailer/issues/74</a><br>[11] - <a href="https://github.com/mozilla/fxa-auth-mailer/issues/74">https://github.com/mozilla/fxa-auth-mailer/issues/74</a><br><br>[12] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-44:%20journeybuilder%20events">https://waffle.io/mozilla/fxa?milestone=FxA-44:%20journeybuilder%20events</a><br>[13] - <a href="https://github.com/mozilla/fxa-dev/pull/191">https://github.com/mozilla/fxa-dev/pull/191</a><br>[14] - <a href="https://github.com/mozilla/fxa-auth-server/issues/1037">https://github.com/mozilla/fxa-auth-server/issues/1037</a><br>[15] - <a href="https://github.com/mozilla/fxa-auth-server/pull/1073">https://github.com/mozilla/fxa-auth-server/pull/1073</a><br>[16] - <a href="https://github.com/mozilla/fxa-content-experiments/pull/25">https://github.com/mozilla/fxa-content-experiments/pull/25</a><br><br>[17] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-27:%20fennec%20web%20login">https://waffle.io/mozilla/fxa?milestone=FxA-27:%20fennec%20web%20login</a><br>[18] - <a href="https://github.com/mozilla/fxa-content-server/issues/3078">https://github.com/mozilla/fxa-content-server/issues/3078</a><br>[19] - <a href="https://github.com/mozilla/fxa-content-server/pull/3155">https://github.com/mozilla/fxa-content-server/pull/3155</a><br>[20] - <a href="https://github.com/mozilla/fxa-content-server/issues/3062">https://github.com/mozilla/fxa-content-server/issues/3062</a><br><br>[21] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-31:%20service%20tokens">https://waffle.io/mozilla/fxa?milestone=FxA-31:%20service%20tokens</a><br>[22] - <a href="https://github.com/mozilla/fxa-auth-server/issues/1053">https://github.com/mozilla/fxa-auth-server/issues/1053</a><br>[23] - <a href="https://github.com/mozilla/fxa-auth-server/pull/1070">https://github.com/mozilla/fxa-auth-server/pull/1070</a><br>[24] - <a href="https://github.com/mozilla/fxa-oauth-server/issues/329">https://github.com/mozilla/fxa-oauth-server/issues/329</a><br></div>[25] - <a href="https://github.com/mozilla/fxa-oauth-server/pull/336">https://github.com/mozilla/fxa-oauth-server/pull/336</a><br>[26] - <a href="https://github.com/mozilla/fxa-oauth-server/issues/328">https://github.com/mozilla/fxa-oauth-server/issues/328</a><br><br>[27] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-45:%20device%20registration">https://waffle.io/mozilla/fxa?milestone=FxA-45:%20device%20registration</a><br>[28] - <a href="https://github.com/mozilla/fxa/issues/62">https://github.com/mozilla/fxa/issues/62</a><br>[29] - <a href="https://github.com/mozilla/fxa-auth-mailer/issues/88">https://github.com/mozilla/fxa-auth-mailer/issues/88</a><br>[30] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/pull/110">https://github.com/mozilla/fxa-auth-db-mysql/pull/110</a><br>[31] - <a href="https://github.com/mozilla/fxa-auth-server/issues/1061">https://github.com/mozilla/fxa-auth-server/issues/1061</a><br>[32] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/104">https://github.com/mozilla/fxa-auth-db-mysql/issues/104</a><br><br>[33] - <a href="https://waffle.io/mozilla/fxa?milestone=FxA-0:%20quality">https://waffle.io/mozilla/fxa?milestone=FxA-0:%20quality</a><br>[34] - <a href="https://github.com/mozilla/fxa-content-server/issues/2483">https://github.com/mozilla/fxa-content-server/issues/2483</a><br>[35] - <a href="https://github.com/mozilla/fxa-content-server/issues/2835">https://github.com/mozilla/fxa-content-server/issues/2835</a><br>[36] - <a href="https://github.com/mozilla/fxa-auth-server/issues/1055">https://github.com/mozilla/fxa-auth-server/issues/1055</a><br>[37] - <a href="https://github.com/mozilla/fxa-oauth-server/issues/324">https://github.com/mozilla/fxa-oauth-server/issues/324</a><br>[38] - <a href="https://github.com/mozilla/fxa-content-server-l10n/issues/65">https://github.com/mozilla/fxa-content-server-l10n/issues/65</a><br>[39] - <a href="https://github.com/mozilla/fxa-content-server/issues/2625">https://github.com/mozilla/fxa-content-server/issues/2625</a><br>[40] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/108">https://github.com/mozilla/fxa-auth-db-mysql/issues/108</a><br>[41] - <a href="https://github.com/mozilla/fxa-profile-server/issues/148">https://github.com/mozilla/fxa-profile-server/issues/148</a><br>[42] - <a href="https://github.com/mozilla/fxa-profile-server/issues/145">https://github.com/mozilla/fxa-profile-server/issues/145</a><br>[43] - <a href="https://github.com/mozilla/fxa-profile-server/issues/57">https://github.com/mozilla/fxa-profile-server/issues/57</a><br>[44] - <a href="https://github.com/mozilla/fxa-auth-server/issues/1069">https://github.com/mozilla/fxa-auth-server/issues/1069</a><br>[45] - <a href="https://github.com/mozilla/fxa-profile-server/issues/151">https://github.com/mozilla/fxa-profile-server/issues/151</a><br>[46] - <a href="https://github.com/mozilla/fxa-oauth-server/issues/339">https://github.com/mozilla/fxa-oauth-server/issues/339</a><br>[47] - <a href="https://github.com/mozilla/fxa-content-server/issues/3137">https://github.com/mozilla/fxa-content-server/issues/3137</a><br>[48] - <a href="https://github.com/mozilla/fxa-content-server/pull/3138">https://github.com/mozilla/fxa-content-server/pull/3138</a><br>[49] - <a href="https://github.com/mozilla/fxa-content-server/issues/3002">https://github.com/mozilla/fxa-content-server/issues/3002</a><br>[50] - <a href="https://github.com/mozilla/fxa-content-server/pull/3092">https://github.com/mozilla/fxa-content-server/pull/3092</a><br>[51] - <a href="https://github.com/mozilla/fxa-oauth-server/issues/267">https://github.com/mozilla/fxa-oauth-server/issues/267</a><br>[52] - <a href="https://github.com/mozilla/fxa-content-server/issues/3024">https://github.com/mozilla/fxa-content-server/issues/3024</a><br>[53] - <a href="https://github.com/mozilla/fxa-content-server/pull/3144">https://github.com/mozilla/fxa-content-server/pull/3144</a><br><br></div>