4. Source code¶
The source code of FRED is divided into several subprojects.
The subprojects belong to one of the following groups depending on which tools are used to build them:
::A:: stands for Autotools (used only in
fred/db
),::C:: stands for CMake (used with C++ code),
::S:: stands for Python Setuptools.
Each subproject has its own GitHub repository.
4.1. Subprojects and repositories¶
Core
::C:: fred/akm – a CLI CORBA client for automated keyset management
::C:: fred/backend/gloss – gRPC logger simple service
::C:: fred/backend/logger – Request logger implementation
::C:: fred/backend/registry – FRED registry core services (gRPC)
::C:: fred/cdnskey-scanner – a CLI tool to scan a set of domains for CDNSKEY records
::S:: fred/client – a Python EPP client – a CLI application and an API library
::A:: fred/db – a collection of SQL scripts to set up the database in PostgreSQL
::S:: fred/doc2pdf – a Python wrapper over
rml2pdf
used for generation of PDF documents::C:: fred/ferda – FRED’s new webadmin tool (replacement of fred/webadmin)
::C:: fred/idl – IDL interface definitions for CORBA inter-process communication
::C:: fred/libfred – a C++ library implementing operations on core registry objects (dependency for
fred/server
)::C:: fred/mod-corba – an Apache module serving other two modules (EPP, WHOIS) the common functionality of CORBA communication
::C:: fred/mod-eppd – an Apache module for parsing EPP commands and transforming them into CORBA calls to a back-end server (and vice versa)
::C:: fred/mod-whoisd – an Apache module for processing WHOIS commands and transforming them into CORBA calls to a back-end server (and vice versa)
::S:: fred/pyfred – a Python CORBA server and clients for zone-file generation, email communication, and technical checks, including file-manager components
::S:: fred/rdap – an RDAP server (front end) prototype implemented with Django
::C:: fred/server – C++ CORBA servers (back end) for the core registry functionality and a CLI administration tool
::S:: fred/webadmin – the Daphne web administration server (front end) for registry customer support (mainly registrar creation and activity inspection)
::S:: fred/webwhois – the web WHOIS server (front end) implemented with Django
Utilities
::S:: fred/utils/grill – a gRPC interface logging library
::S:: fred/utils/frgal – a FRED gRPC auxiliary library
::S:: fred/utils/pyfco – a Python wrapper over CORBA (used by fred/rdap, fred/webwhois, fred/webadmin)
::S:: fred/utils/pylogger – a Python wrapper over logging infrastructure for all Python clients (used by fred/rdap, fred/webwhois, fred/webadmin)
::S:: fred/logger-maintenance – Python scripts for logger (audit log) database maintenance
PAIN (sample implementation of new billing)
::S:: fred/transproc – a Python script for querying various sources of bank transactions (payments) and processing them with Django PAIN
::S:: fred/django-pain – Django PAIN application
::S:: fred/pain – FRED connector plugin for PAIN also based on Django