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 httpserver surface of microhttpd. As such, it is a "microservice" 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.
Current work with modern-generation tooling, e.g. circa Fedora 36+ and GCC 12+, is occurring around the v2-themed feature branches.
- Background
- Dependencies
- Installation
- Configuration
- Build
- Usage
- References
- Security
- Contribute
- License
- Origin of the Name
The Montara service is a member of the Tunitas family of components and services. It depends upon certain other core components of the Tunitas family. These are:
-
Tunitas Basics package for core components.
-
Tunitas Butano package of components for the IAB's Transparency & Consent Framework.
-
Temerarious Flagship, the build system
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.
You may install this repo and its dependents by running the following command:
git clone https://github.com/yahoo/tunitas-montara.gitThis will create a directory called tunitas-montara 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-montaraThe build system is based upon GNU Autotools.
The configuration of the repo consists of two steps which must be done once.
./buildconf./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
The service can be built with the following recipe:
./buildconf &&
./configure &&
make &&
make check &&
make install &&
echo OK DONEAlternatively, if your organization already has made available the packaged version, then the following recipe will install the service:
sudo dnf install tunitas-montaraThe configuration of the service is through the systemd unit files which are supplied.
systemctl enable montara
systemctl start montaraThe authoritative specification can be found the IAB as REST-API. 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.
The Montara service implements the IAB PrivacyChain "Northbound" REST API. The specifics of the API in this implementation are documented nearby in the REST-API.
- etr/libhttpserver
- microhttpd
- libmicrohttpd, forked as libmicrohttpd
The Montara 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 (macro-)service secure options are expected. These practices include at least the use of TLS and controled access networks.
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.
- Wendell Baker wbaker@yahooinc.com
- The Tunitas Team at Yahoo.
You may contact us at least at tunitas@yahooinc.com
This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.
Montara is a place in San Mateo County, California. There is a mountain and a state beach which carry the name. Wikipedia.