$ account phax
This repository implements a production-grade Service Metadata Publisher (SMP) server for the Peppol and OASIS BDXR eDelivery networks. It manages participant service groups, service metadata (endpoints, processes, document types), business cards, redirects, and participant migrations. The system exposes both a REST API (supporting Peppol SMP 1.x, BDXR 1.0, and BDXR 2.0 formats) and a Bootstrap-based web administration UI for managing all entities. It integrates with an external Service Metadata Locator (SML) for DNS-based participant registration and provides background jobs for SML synchronization, bulk endpoint changes, and import/export of service groups. The architecture is modular and backend-agnostic: core domain logic and interfaces reside in `phoss-smp-backend`, with three pluggable storage backends implemented via SPI — XML file-based (WAL DAO), SQL (JDBC with Flyway migrations supporting PostgreSQL, MySQL, Oracle, SQL Server, DB2), and MongoDB. The web application layer (`phoss-smp-webapp`) provides servlets, REST executors, and UI pages, with backend-specific webapp modules for each storage variant. Security features include HTTP Basic/Bearer token authentication, TOTP two-factor authentication, role-based authorization, audit logging, and CSP headers. The system is designed for high-volume eDelivery networks and includes caching, long-running job management, and extensive functional/integration tests. Key entry points include the REST API handlers (e.g., `APIExecutorServiceGroupPut`, `APIExecutorServiceMetadataGet`), the secure admin UI pages (e.g., `PageSecureServiceGroup`, `PageSecureSMLRegCreate`), and the application lifecycle listeners (`SMPWebAppListener`). External dependencies include the ph-commons/ph-oton framework stack, database drivers, and Peppol identifier libraries. The codebase is actively maintained with version 8.7.0 and demonstrates strong engineering practices including SPI-based extensibility, immutable domain objects, and consistent audit patterns.