/anonlink-entity-service

Privacy Preserving Record Linkage Service

Primary LanguagePythonApache License 2.0Apache-2.0

Anonlink Entity Service

Documentation Status Build Status

A REST service for performing privacy preserving record linkage. Allows organizations to carry out record linkage without disclosing personally identifiable information.

The Anonlink Entity Service is based on the concept of comparing Anonymous Linking Codes (ALC) - bit-arrays representing an entity.

Features

  • Highly scalable architecture, able to distribute work to many machines at once.
  • Optimized low level comparison code (provided by anonlink)
  • Support for client side blocking (provided by blocklib)

Data providers wanting to link their records may want to consider using anonlink-client or the encoding-service.

Documentation

Project documentation including tutorials are hosted at anonlink-entity-service.readthedocs.io.

Demo

A demo deployment is available at anonlink.easd.data61.xyz

Build

Dependencies

Docker and docker-compose

Building the docker containers

Run ./tools/build.sh (from this directory, not from tools). This will create the latest tagged images used by docker-compose.

Note docker images are pushed to Docker Hub, which can be used instead of building containers manually.

Component Docker Hub
Backend/Worker data61/anonlink-app
E2E Tests data61/anonlink-test
Nginx Proxy data61/anonlink-nginx
Benchmark data61/anonlink-benchmark
Docs data61/anonlink-docs-builder

Running Locally

See the docs for more complete deployment documentation:

To test locally with docker-compose:

docker-compose -f tools/docker-compose.yml up

Testing

Testing with docker-compose

An additional docker-compose config file can be found in ./tools/ci.yml, this can be added to run tests along with the rest of the service:

docker-compose -f tools/docker-compose.yml -f tools/ci.yml up -d

Citing

The Anonlink Entity Service, and the wider Anonlink project is designed, developed and supported by CSIRO's Data61. If you use any part of this library in your research, please cite it using the following BibTex entry::

@misc{Anonlink,
  author = {CSIRO's Data61},
  title = {Anonlink Private Record Linkage System},
  year = {2017},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/data61/anonlink-entity-service}},
}