Policies/Uploading and Downloading from Eclipse Software Policy
This policy is concerned with Eclipse Foundation project code uploading, downloading, or otherwise connecting from software distributed by the Eclipse Foundation to remote servers/services.
This policy applies for software that:
- checks for updates;
- pulls information from servers;
- provides a heartbeat;
- gathers usage statistics;
- gathers data from a user's workstation; or
- otherwise collects information from user installations.
Raw data, which may include non-obvious potentially private information, must be transferred securely.
Raw data must be stored securely and access to the data must be strictly controlled. To access the raw data stored on an Eclipse Foundation Server, an individual must be a committer. An individual must sign a non-disclosure agreement (NDA) with The Eclipse Foundation to get access to raw data that may include personally-identifiable information.
Obvious means of identifying a specific individual or organization (e.g. IP address) must not be persisted. Server logs that are accessible only by Eclipse Foundation Webmasters are exempt.
Reasonable effort must be taken to avoid persisting or disseminating information that can inadvertently be used to identify an individual or organization.
Information that can be used to identify individuals or organizations must not be publicly accessible.
Documentation, including a full description of the nature of all information transfered by an upload operation, must be publicly accessible.
The retention policy for publicly accessible data must be documented.
When it is clear from context that information will be sent and/or received, user- or adopter-initiated operations--for example, a user-initiated build that downloads artifacts from Maven central, or a user-initiated file transfer that sends a file to a remote server via SFTP--are acceptable without formal approval.
Operations that fetch data only (i.e. no data is sent from the user's workstation) from Eclipse Foundation servers--for example, pulling items from a news feed--are acceptable without formal approval. PMC approval is required for a project to implement an operation that fetches data from a third-party source.
Operations that upload data--for example, a list of all currently installed bundles and/or JVM version, or usage patterns--require PMC and EMO(ED) approval. The default configuration must target Eclipse Foundation-managed servers only for uploads. Exceptions to this rule can only be granted by the EMO(ED). Projects can (and should) implement extensible frameworks that permit adopters to upload data to different targets.
Any operation that uploads data must be "opt-in". That is, the user/adopter must agree to participate (agreement may be implicit due to the nature of the service).
If the nature of the data being collected changes, the user/adopter must be informed of the changes and be given the opportunity to explicitly agree to continue participation.
Services that get/pull data only do not require "opt-in". The server components for these services must not attempt to persist any information related to a get/pull data service (server logs, with access restricted to Eclipse Foundation staff only, are exempted from this requirement).
Reasonable effort must be undertaken to leverage existing mechanisms rather than create new ones.
Does this policy apply to headless software?
Do we have to present the user with a dialog box to request "opt-in"?
There are many different means of opting in:
- A dialog box may be appropriate;
- opt-in may take the form of a option in a configuration file; or
- opt-in may be granted by the very nature of the operation (e.g. a menu item that initiates an artifact upload).
The nature of the software itself may imply opt-in. It might, for example, be expected behaviour for machine-to-machine (m2m) component to attempt to discover peers. Simply running this software may be considered opt-in (though this starts to get into gray area and PMC involvement is recommended).