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 where Requesters can fill in a data request.
A
request.yamlfile created by the Requester based on their selections in the web application or terminal interface. The file includes the selected resources and fields, as well as any additional information about the request and the Requester.A data subset, generated by the Owner, consisting of files that include only resources, fields, and rows contained within the
request.yaml.
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+clickfor selecting a range of fields andCtrl+click/Cmd+clickfor selecting multiple non-adjacent fields). - Row filters based on specific values with
AND,OR, andNOTlogic (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
contributorsfield in thedatapackage.json), allowing Requesters to choose an Owner to send the request to. Clicking a button opens an email for the selected Owner withrequest.yamlattached.
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.