RIPE Database docs
Sidebar Navigation

Introduction to the RIPE Database

RIPE Database Documentation Overview

Intended Audience

Conventions Used in the RIPE Database Documentation

What is the RIPE Database

Purpose and Content of the RIPE Database

History of the RIPE Database

Personal Data Database Management and Reponsabilities

RIPE Database Structure

Database Object

Primary and Secondary Objects

List of Primary Objects

List of Secondary Objects

The Attributes in Database Objects

Attribute Names

Attributes in an Object

Attribute Values

Attribute Properties

How to Organise Your Data

REST API Data model

RPSL Object Types

Descriptions of Primary Objects

Descriptions of Secondary Objects

Available Databases

RIPE Database

TEST Database

Release Candidate Database

Experimental Databases

Update Methods

RESTful API

Webupdates

Syncupdates

Email Updates

Updating Objects in the RIPE Database

Format of the Update Message

Accessing the Object Templates

Object Processing

Update Operations

Historical Data

Special Considerations for Object Creation

Garbage Collection

Dry run

Set Objects

Notifications

Acknowledgment Message

Notification Messages

Authorisation

Authorisation Model

Using the Authorisation Methods

Security of Data Using Authorisation

Protection of PERSON and ROLE Objects

Protection of AUT NUM Object Space

Protection of Address Space

Protection of Route Object Space

Protection of Reverse Delegation Objects

Protection of Objects with Hierarchical Names

Protecting Membership of a Set

Referencing an ORGANIZATION Object

Referencing an IRT Object

IRT Object

Force Delete Functionality

Request ENUM delegation

Request DNSSEC delegation

How to Query the RIPE Database

The Structure of a Query

Web Query Form

RESTful API Queries

Command Line Queries

Query Responses

Registration Data Access Protocol

Access to Personal Data

Types of Queries

Queries Using Primary and Lookup Keys

Queries for IP Networks

Queries for Autonomous Systems

More and Less Specific Lookups For Reverse Domains

Inverse Queries

Abuse Contacts

Grouping the RIPE Database Output

Filtering the Query Reponse

IRR Toolset Support

Persistent Connections and Keeping State

Getting All the Members of Set objects

Access Control for Queries

RIPE NCC Global Resource Service

Other Query Flags

Referenced Objects in Query Response

Historical Queries

Related Software and Tools

Geolocation in the RIPE Database

RIPE Database Mirror

Setup RIPE Database Mirror

Near Real Time Mirroring v3

Near Real Time Mirroring v4

Access to NRTM

Tables of Query Types Supported by the RIPE Database

How to Recover Access to a Maintainer Object

Installation and Development

Getting started on macOS

Getting started on Ubuntu Linux

Building whois

Configure MariaDB

Coding standard

Installation instructions

Database Support

Support Overview

Clean up of Unreferenced Data

Database Security

Configuring Reverse DNS

Database Business Rules

Highlighted Values in the RIPE Database

Create First Role Mntner

Removal of personal data

Release Notes

FAQ

Appendices

Appendix A Syntax of Object Attributes

Appendix B Copyright Statement

Appendix C RIPE Database Query Server Response Codes and Messages

Appendix-D--Route-Object-Creation-Flowchart

Appendix-E--Domain-Object-Creation-Flowchart

Appendix F Special Considerations for Object Types

Appendix G Object Types with Personal Data

Appendix H PGP Authentication Method

Appendix I Client Certificate Authentication

Appendix J Ripe Test Database

Appendix K API Keys

Glossary

Legal Information

RIPE Database Acceptable Use Policy

HTML Terms And Conditions

All Documentation Combined

On this page

Building whois ​

git clone git@github.com:RIPE-NCC/whois.git
cd whois
mvn clean install

Goals ​

There are multiple goals for different types of tests

  • unit tests: mvn clean install
  • integration tests: mvn clean install -Pintegration
  • unit + integration tests: mvn clean install -Pall
  • functional tests: mvn clean install -Pendtoend

Release ​

To make a release: mvn clean install -Prelease

To perform a release: mvn clean release:prepare release:perform -Prelease

Performing a release updates version in pom.xml, commits+pushes to git, tried to push artifacts to repo, etc..., whereas making a release will simply make a shaded jar using the current version in pom.xml, nothing else.

The release jar will be created in whois-db/target/whois-db-<pom-xml-version>.jar

Configuring your IDE ​

  • Install IntelliJ IDEA http://www.jetbrains.com/idea/download/
  • Import project
  • Point to local whois git repository
  • Import using Maven pom

If there are compilation errors, make sure to perform a maven build first, since it will generate required sources:

mvn clean install

Running whois from within IntelliJ ​

  • Ensure MariaDB and the needed databases are created and populated

    • See Getting Started on macOS for installation information.
    • See Configure MariaDB for instructions how to create and grant user permission.
    • See Installation instructions for instructions on how to create and populate needed databases.
  • Ensure whois/tools directory is populated with hazelcast.xml file.

  • Ensure a local property is available in tools directory. Copy whois/whois-commons/src/test/resources/whois.properties and whois/whois-commons/src/test/resources/log4j2.xml into whois/tools directory and ensure the following properties are updated to allow running locally, for example have the following:

    port.query=1043 port.api=1080 port.nrtm=1081

Also ensure database username and password matches what you have locally. (Normally this should be dbint with no password)

  • In Run/Debug configuration Set VM options to:

    -Dwhois.config=./tools/whois-local.properties -Dhazelcast.config=./tools/hazelcast.xml -Dlog4j.configurationFile=file:./tools/log4j2.xml

  • Run mvn clean install -Prelease to ensure property variables set in whois.version.properties is available.

  • Start whois by running the Main class net.ripe.db.whois.db.WhoisServer

Importing multiple maven sub-projects under one project ​

Unlike other IDEs, in IntelliJ you can have only one project. However, you can import multiple projects as modules. If you want to import the whois project with its modules and also another maven project, e.g. whois-related follow the steps:

  • From the terminal use mvn clean install to build both projects.
  • Create a new Java project (e.g. root-project) in IntelliJ using the suggested options from the wizard.
  • Select Import module, and navigate to whois project pom.
  • Check the option to import recursively maven projects.
  • Select root-project from the project explorer and repeat step 3 and 4 to import the whois-related project.

Upgrading IntelliJ ​

If you upgrade to a newer version of IntelliJ, it will ask you to upgrade your old projects as well.

If there are problems in the project just remove the IntelliJ files and re-import the projects:

  • Quit IntelliJ
  • Go to the projects folder
  • Delete .idea folders and *.iml files
  • Re-import the projects as described above.

If you want to delete all your IntelliJ project files you can use the following commands:

find . -iname '*.iml' -print0 | xargs -0 rm
find . -type d -name '.idea' -print0 | xargs -0 rm -rf

Suggested IntelliJ IDE Preferences ​

  • Appearance -> Show tool window bars [on]
  • Preferences -> Build, Execution, Deployment -> Compiler -> Compile independent modules in parallel [off] (to prevent "Internal AspectJ compiler error")
  • Editor -> General -> Strip spaces on save (All)

Last updated:

Pager
Previous pageGetting started on Ubuntu Linux
Next pageConfigure MariaDB