Outputs

Propagate produces three main outputs based on the inputs described in the Inputs page. See the Design overview page for a description of the user types, Requester and Owner, referred to below.

The outputs are:

HTML and WebAssembly (WASM) files for a web application

The Owner uses Propagate to create HTML and WASM files that form a web application from the data package metadata file (for example, but not exclusively, a datapackage.json file). This application allows Requesters to browse and select the fields they want to include in their request. The application can be added to a static website.

The web application includes:

  • Search and filter functionality to allow Requesters to easily find the resources and fields they are interested in, including a filter for showing only the selected fields.
  • Checkboxes to select which resources and fields to include in the request.
  • The selection of multiple fields (using Shift+click for selecting a range of fields and Ctrl+click/Cmd+click for selecting multiple non-adjacent fields).
  • Row filters based on specific values with AND, OR, and NOT logic (e.g., only include rows with a field value above a certain threshold or with a specific value).
  • Saving of in-progress selections, allowing Requesters to resume their work later.
  • A request review showing the selected resource fields and filters.
  • Owner names and email addresses (extracted from the metadata file, e.g. the contributors field in the datapackage.json), allowing Requesters to choose an Owner to send the request to. Clicking a button opens an email for the selected Owner with request.yaml attached.

The web application does not send the request or determine its outcome; the Requester sends the email manually, and the Owner decides whether to fulfil the request outside of Propagate.

Data request

The data request file, request.yaml, is the output of the Requester’s inputs and selections in the web application or terminal interface.

The request includes:

  • Name of the project the data is requested for.
  • Rationale for the request.
  • The date and time of request creation.
  • The Requester’s name and email address.
  • Details about which resources, columns, and rows the requester wants for the data subset.

Data subset

The data subset is a subset of the data in the data package that is filtered based on the request to include only the selected resources, fields, and rows (if applicable). The subset contains one file per original resource file (i.e., Propagate does not join data files into fewer files or a single file). The data subset format is Parquet. See our Why Parquet decision post for the rationale.