Home Documentation
Download Report a Bug/Github About Contact

Configuring RedDog’s reference implementation

Index

  1. Introduction
  2. Configuring data-access.properties
    1. schema
    2. data-access-implementation
    3. zones
    4. is_reverse_ipv4_enabled
    5. is_reverse_ipv6_enabled
    6. is_ns_sharing_name_enabled
    7. user_consent_type

Introduction

RedDog offers a reference data access implementation: SQL Provider (git project rdap-sql-provider). If used, this implementation can be configured as needed altering the file WEB-INF/data-access.properties in the installation directory. Here’s a preview of the file’s beginning:

#Optional. Set the schema that the rdap-sql-provider will use. Default: rdap
#schema =

#Optional. Set the data access implementation class that the rdap-server will use 
#when in the classpath there are two implementations.
#data-access-implementation = 

#Optional. Managed zones (separated by commas), useful only for domains. Example: mx, lat, com. Default: *
# A wildcard "*" can be used to allow the search of domains in all zones (eg. 'zones = *'),
# the wildcard can't be mixed with other zones. Example: isn't valid to use 'zones = com, *'
#zones = 

The next section will explain each of the properties that can be configured to customize RedDog’s reference implementation behavior.

Configuring data-access.properties

The data-access.properties file has several properties, each one with a specific task. In this section those properties and its expected behavior will be explained.

schema

Database schema that will be used by the SQL Provider when executing the queries. This value will be used to replace the {schema} custom parameter at queries.

Example. The file META-INF/sql/Zone.sql has the query SELECT * FROM {schema}.zone, assuming that the property schema has a value rdap, then the query that will be executed at the database is SELECT * FROM rdap.zone.

This table shows the specs of the property:

Required? Type Default Example
No String rdap schema = mydbschema

data-access-implementation

Data access implementation class that the server will use as principal whenever the classpath has two implementations. This is explained at Implementing your Data Access Layer.

Required? Type Default Example
No String null data-access-implementation = com.example.MyDataAccessImplementation

zones

List of managed zones by the server, the character ‘*’ can be used to state that all the zones will be served. This parameter helps the server to serve only the domains under the zones that are needed by the implementer. If the server receives a request of a domain under an unmanaged zone, then the response will be a 404 HTTP response code.

Zones are loaded at server startup, if you add more zones to your database, you need to restart the server.

The encoding of a .properties file is ISO-8859-1, also known as Latin-1. All non-Latin-1 characters must be entered by using Unicode escape characters, e.g. \uHHHH where HHHH is a hexadecimal index of the character in the Unicode character set. If you are going to write an IDN zone, you must be aware of this.

Example. If the DNR manages the zones abc, def, and ghi but wishes that the server only returns the domains under the zones abc and ghi, the property can be configured as follows: zones = abc, ghi. If the DNR wishes that all of its zones will be served, then the configuration would be: zones = * or zones = abc, def, ghi.

This table shows the specs of the property:

Required? Type Default Example
No String (can be a list separated by commas) * zones = abc, ghi

is_reverse_ipv4_enabled

Flag to indicate if the server will respond to reverse IPv6 domain searches. See more about IPv4 reverse resolution.

This table shows the specs of the property:

Required? Type Default Example
No Boolean false is_reverse_ipv4_enabled = true

is_reverse_ipv6_enabled

Flag to indicate if the server will respond to reverse IPv6 domain searches. See more about IPv6 reverse resolution.

This table shows the specs of the property:

Required? Type Default Example
No Boolean false is_reverse_ipv6_enabled = true

is_ns_sharing_name_enabled

Boolean flag to indicate if the user wants to enable draft-lozano-rdap-nameservers-sharing-name-02 conformance.

This table shows the specs of the property:

Required? Type Default Example
No Boolean false is_ns_sharing_name_enabled = true

Enum value (NONE, ATTRIBUTES, or GLOBAL) indicates the type of user consent this server supports.

This table shows the specs of the property:

Required? Type Default Example
No Enum NONE user_consent_type = NONE

Where to go next