A REST API for the DN42 registry, written in Go, to provide a bridge between interactive applications and the registry. https://explorer.burble.com
Go to file
Simon Marsh 88fb036f1c
All checks were successful
continuous-integration/drone/push Build is passing
build directly to docker image
2023-09-24 13:51:03 +01:00
contrib Added docker image 2020-05-16 23:19:17 +02:00
StaticRoot automatically split larger blocks if there aren't enough spare blocks within a specific prefix length 2022-08-01 11:18:18 +01:00
.drone.yml build directly to docker image 2023-09-24 13:51:03 +01:00
.gitignore fix crash on parsing of empty lines, update drone and gitignore 2022-08-15 18:45:43 +01:00
API.md Add OpenBGPd format ROA output 2021-05-19 13:02:27 +01:00
dn42regsrv.go Add API endpoint to force a registry refresh. 2020-12-12 15:00:23 +00:00
dnsapi.go Tweak cache parameters 2020-10-31 12:01:23 +00:00
Dockerfile build directly to docker image 2023-09-24 13:51:03 +01:00
go.mod Localise all external resources so that application can be used without requiring clearnet connectivity 2020-10-24 14:47:18 +01:00
go.sum Localise all external resources so that application can be used without requiring clearnet connectivity 2020-10-24 14:47:18 +01:00
LICENSE Add MIT License 2020-05-09 10:56:31 +01:00
README.md Add container build scripts 2019-08-31 23:36:17 +01:00
regapi.go Add API endpoint to force a registry refresh. 2020-12-12 15:00:23 +00:00
registry.go fix crash on parsing of empty lines, update drone and gitignore 2022-08-15 18:45:43 +01:00
roaapi.go Fix ROA bug where max-length attribute equals MinLen in filter[,6].txt 2023-02-03 08:36:05 +00:00
static.go Tweak cache parameters 2020-10-31 12:01:23 +00:00

dn42regsrv

A REST API for the DN42 registry, written in Go, to provide a bridge between interactive applications and registry data.

A public instance of the API and explorer web app can be accessed via:

Features

  • REST API for querying DN42 registry objects
  • Able to decorate objects with relationship information based on SCHEMA type definitions
  • Includes a simple webserver for delivering static files which can be used to deliver basic web applications utilising the API (such as the included DN42 Registry Explorer)
  • Automatic pull from the DN42 git repository to keep the registry up to date
  • Includes a responsive web app for exploring the registry
  • API endpoints for ROA data in JSON, and bird formats
  • API endpoint to support the creation of DNS root zone records

Building

Using locally installed go

Requires git and go

go get -insecure git.dn42.us/burble/dn42regsrv

Without installing go

Using container runtime to build with the golang container:

docker run -v ${PWD}:/go/bin golang go get -insecure git.dn42.us/burble/dn42regsrv

Or use the contrib/build.sh script after cloning the repo.

Running

As a service

Use --help to view configurable options

${GOPATH}/bin/dn42regsrv --help

The server requires access to a clone of the DN42 registry and for the git executable to be accessible.
If you want to use the auto pull feature then the registry must also be writable by the server.

cd ${GOPTH}/src/git.dn42.us/burble/dn42regsrv
git clone http://git.dn42.us/dn42/registry.git
${GOPATH}/dn42regsrv

A sample service file is included for running the server under systemd

Within a container

A container build script (contrib/buildah.sh) is included in the contrib directory. The script uses buildah.

See the contrib/entrypoint.sh script for environment variables that can be set when running the container.

Using

By default the server will be listening on port 8042.
See the API.md file for a detailed description of the API.

Support

Please feel free to raise issues or create pull requests for the project git repository.

#ToDo

Server

  • Add WHOIS interface

DN42 Registry Explorer Web App

  • Allow for attribute searches