Secure record linkage and data transfer using private set intersection.
This repository contains two applications, a web-based one that allows peer-to-peer exchanges and a command line one that uses SFTP as an intermediary.
- Install Node.js and NPM
- Run
npm install . -w packages/base-lib -w apps/web - Run
npm run -w packages/base-lib build - Run
npm run -w apps/web dev - Visit http://localhost:3000
See apps/web for more details.
This app has a pre-built Docker image that can be used.
To link a file:
- Install Docker Desktop.
- Within the Docker terminal (or in a Windows/Mac/Linux terminal window), run:
docker pull vdorie/psi-link:latest
docker run \
-it --rm \
--mount type=bind,src=PATH_TO_DATA_FILE,dst=/work \
vdorie/psi-link:latest \
sftp://SFTP_USER:SFTP_PASSWORD@SFTP_HOST:SFTP_PORT/SFTP_PATH \
/work/NAME_OF_DATA_FILEReplacing each of the following:
PATH_TO_DATA_FILE- relative or absolute path on your host machine where the file you wish to transfer isSFTP_USER,SFTP_PASSWORD,SFTP_HOST,SFTP_PORT- standard SFTP connection informationSFTP_PATH- path from root on the SFTP server where both parties can read and write; the exchange will happen hereNAME_OF_DATA_FILE
The only content accessible to the container will be that in PATH_TO_DATA_FILE, so you are recommended to make a new directory and place it in the file you wish to transfer.
For more information, see apps/cli.