GithubHelp home page GithubHelp logo

alphagov / aquae-specification Goto Github PK

View Code? Open in Web Editor NEW
3.0 12.0 3.0 59 KB

Aquae is a protocol for personal data exchange (PDE) in Government. This is the technical specification of that protocol. It sets out how services can query existing personal data held by Government.

License: MIT License

Makefile 16.30% Perl 83.70%
personal-data-exchange verify

aquae-specification's Introduction

Aquae - gov.uk Personal Data Exchange Specification

Copyright (C) 2017, The Personal Data Exchange Team, Crown Copyright (Government Digital Service).

1. Introduction

gov.uk Personal Data Exchange is a way to query existing personal data held by government. This distribution is the technical specification for how the system operates and a set of tools for working with the messages and protocols defined.

The whole package is distributed under an MIT license and as such is free to use and modify as long as you agree to its terms.

Note: Should you have any trouble in setting up and using these tools, please feel free to contact:

2. Specification

The specification is described in the following files:

  • transport.md

    This file documents the low-level transport protocols used by participants in the system.

  • metadata.md

    This file documents the format and structure of the configuration file produced.

  • messaging.md

    This file documents the format and sequences of messages sent by participants in the system.

3. Installation

The tools in this package can be run straight away; they do not need to be built or installed. However, they do have a number of dependencies which need to be satisfied.

For UNIX systems, the tools require GNU Make and Perl. These tools are usually available by default or from system packages.

For Windows systems, the tools require PowerShell, which is availble by default in Windows 10 or from http://msdn.microsoft.com/en-us/powershell.

4. Usage

In order to render the specification and build the protocol and message definition, invoke make thus:

make all

Windows users can install builds of GNU Make, sh and perl, and will also need a tool capable of writing .tar.gz files, such as 7-Zip. Then set the following environment varialbles to get full functionality:

$Env:RM='powershell ''function rm_all { rm -ErrorAction:SilentlyContinue -force $$args }; rm_all'''
$Env:TAR='"C:/Program Files/7-Zip/7z.exe" a -ttar'
$Env:GZ='"C:/Program Files/7-Zip/7z.exe" a'

This will produce three files:

  • transport.proto

    This contains the Protocol Buffer definitions for the low-level transport protocols.

  • metadata.proto

    This contains the Protocol Buffer definitions for the metadata file that is used to set policy in a federation of Aquae nodes.

  • messaging.proto

    This contains the Protocol Buffer definitions for the inter-node messaging protocol.

5. Examples

The scripts in the examples/ directory create Aquae Metadata files in Protobuf Text Format that describes an example Aquae Federation.

These are synthetic examples for testing and may not represent real world entities or usage.

Please consult examples/README.md for more information.

6. Compatibility notes

This specification is not yet stable and, as such, we make no guarantees of backwards or forwards compatibility. We do not recommend that this system is deployed in anger.

7. What's next?

First and foremost, enjoy the tools and use and extend them to build your own Personal Data Exchange Federations.

Please feel free to send tools that you build with this so that they can be integrated and distributed with this package.

Suggestions, extensions and patches are welcome.

If you have any questions or problems (even the slightest problem, or the stupidest of questions), then please feel free to get in touch with us directly using the addresses above. We will try to help you, get you going or point you in the right direction.

aquae-specification's People

Contributors

andyjpb avatar simonwo avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.