Git Product home page Git Product logo

tunitas-apanolio's Introduction

Tunitas Apanolio

This repository contains a reference implementation of the "North-Facing" API service for the Interactive Advertising Bureau's (IAB) PrivacyChain. It is an an application hosted within the Apache HTTPd server. As such, it is a "macroservice" approach to delivering the north-facing API services.

The main body of documentation for the Tunitas family of components and services can be found with the packaging and with build system. The overview and administrative declarations herein are necessarily summary in nature. The declarations and definitions in the packaging and build system areas are complete and should be interpreted as superceding these when the two are in conflict.

banner

Table of Contents

standard-readme compliant

Background

The Apanolio implements the "Northbound API" of the Interactive Advertising Bureau's (IAB) PrivacyChain. Depending on which database backends are configured into the system, various levels of scalability, redundancy and persistenc will be obtained. There are drivers for in memory operation, "shared nothing" NoSQL databases, traditional multi-tier SQL as well as more exotic data base systems. Not all of the potential storage systems are implemented at this point

Potential storage technologies are:

  • LevelDB
  • SQLite
  • MySQL
  • PosgreSQL (PgSQL)
  • RAMCloud
  • State Space and Hyperledger Fabric (or a compatible PrivacyChain "Southside")

Depending on how the service is configured, your build may need one of the following database system for the "Southside" interface.

Dependencies

The configuration step will check for many but not all required packages and operating system features. There is a list of known package-dependencies which you will need to install beyond your base operating system.

Generally, the dependencies are among:

  • Certain other components of the Tunitas system; e.g. the Basic Components.
  • A modern (C++2a) development environment.
  • A recent Fedora, but any recent Linux distro should suffice.

The Tunitas project was developed on Fedora 27 through Fedora 30 using GCC 7 and GCC 8 with -fconcepts and at least -std=c++1z. More details on the development environment and the build system can be found in temerarious-flagship.

Installation

You may install this repo and its dependents by running the following command:

git clone https://github.com/yahoo/tunitas-apanolio.git

This will create a directory called tunitas-apanolio and download the contents of this repo to it.

Alternatively, if your organization already has made available the packaged version, then the following recipe will install the service:

sudo dnf install tunitas-apanolio

Configuration

The build system is based upon GNU Autotools.

The configuration of the repo consists of two steps which must be done once.

  1. ./buildconf
  2. ./configure

The first step performs some crude assessments of the build environment and creates the site-specific configure'. Of course configure --helpwill explain the build options. The general options toconfigure` are widely documented.

The buildconf component is boilerplate and can be updated from temerarious-flagship as needed. The Tunitas Build System should be available in /opt/tunitas and the template at /opt/tunitas/share/temerarious-flagship/bc/template.autotools-buildconf

Build

The service can be built with the following recipe:

./buildconf &&
./configure &&
make &&
make check &&
make install &&
echo OK DONE

Usage

The configuration of the service is through the systemd unit files of Apache's HTTPd. A typical service initiation would look as follows:

systemctl enable httpd
systemctl start httpd

References

IAB PrivacyChain

Documents pertaining to the the IAB PrivacyChain operation and governance as well as a separate reference implementation of the Technology Specification are available at the main site.

Northbound API

The Apanolio service implements the IAB PrivacyChain "Northbound" REST API. The authoritative specification of this API can be found the IAB as REST-API.

Southside Interfaces

The State Space PrivacyChain API is a conforming interface for the Hyperledger Fabric.

Server Container

Security

The Apaniolo service is intended to facilitate access to a data base technology which conforms to the IAB's PrivacyChain technology specification. It is intended to be operated from within secure facilities in support of consumer-facing applications. It is not intended for direct exposure to the internet. Best practices for intra-datacenter (micro-)service secure options are expected. These practices include at least the use of TLS and controlled access networks.

Contribute

Please refer to the contributing.md file for information about how to get involved. We welcome issues, questions, and pull requests. Pull Requests are welcome.

Maintainers

You may contact us at least at [email protected]

License

This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.

Origin of the Name

Apanolio is a Creek is located in San Mateo County, California. It is a tributary of Pilarcitos Creek.

tunitas-apanolio's People

Contributors

wcbaker avatar

Watchers

James Cloos 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.