Skip to content

Commit d6ea49d

Browse files
committed
Add Javadoc for the DecryptAetIdentifiers class
1 parent 8f8440f commit d6ea49d

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

ingestion-beam/src/main/java/com/mozilla/telemetry/aet/DecryptAetIdentifiers.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,24 @@
4141
import org.jose4j.jwx.JsonWebStructure;
4242
import org.jose4j.lang.JoseException;
4343

44+
/**
45+
* Provides pipeline support for Account Ecosystem Telemetry, decrypting ecosystem_anon_id
46+
* values to ecosystem_user_id values.
47+
*
48+
* <p>Durable AET data stored in BigQuery and available for analysis should contain only
49+
* ecosystem_user_id values. Conversely, FxA servers should only ever store and see the encrypted
50+
* ecosystem_anon_id values. This way, someone with access to both BigQuery and FxA servers would
51+
* still not be able to correlate AET activity with a particular FxA user.
52+
*
53+
* <p>This differs from many encryption scenarios in that the encrypted values (ecosystem_anon_id)
54+
* are themselves sensitive and we must take care not to allow them to flow to BigQuery. The
55+
* only places where an ecosystem_user_id value and the associated ecosystem_anon_id value can be
56+
* known together is on the original client device and in this transform in the pipeline.
57+
* Once we decrypt the value here, we must immediately throw away the ecosystem_anon_id value
58+
* that was sent to the pipeline.
59+
*
60+
* See https://docs.google.com/document/d/1zH3eVVI_28Afg1JXe_McDrW4MTYuWhiJMQR6AQbli8I/edit#heading=h.eo0wl228m5t2
61+
*/
4462
public class DecryptAetIdentifiers extends
4563
PTransform<PCollection<PubsubMessage>, Result<PCollection<PubsubMessage>, PubsubMessage>> {
4664

0 commit comments

Comments
 (0)