Configuring RedDog’s reference implementation
Index
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
Boolean | false | is_ns_sharing_name_enabled = true |
user_consent_type
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 |
---|---|---|---|
Enum | NONE | user_consent_type = NONE |