Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

360 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

phoss-ap

Sonatype Central javadoc

If this project saved you some time or made your day a little easier, a star would mean a lot — it helps others find it too.

phoss Peppol Access Point - when looking for the SMP, see phoss SMP

A complete open-source Peppol Access Point based on phase4.

It is a Spring Boot application that handles all the relevant Peppol specifications:

Features include:

  • Inbound document reception with configurable forwarding (HTTP, S3, SFTP)
  • Outbound document sending with automatic SMP lookup and SBDH creation
  • Retry with exponential backoff and circuit breaker for both sending and forwarding
  • Optional document validation via external verification service
  • Duplicate detection on AS4 Message ID and SBDH Instance Identifier
  • MLS (Message Level Status) support with SLA monitoring
  • Peppol Reporting with scheduled submission
  • Archival of completed transactions
  • Sentry integration for error tracking
  • OpenTelemetry based execution telemetry measurements

phoss AP is part of my Peppol solution stack. See https://github.com/phax/peppol for other components and libraries in that area.

Build

Prerequisites:

  • Java 21 or later
  • Maven 3.x
mvn clean verify

Quick Start

  1. Set up a PostgreSQL or MySQL database (see docker-compose.yml for an example)
  2. Copy phoss-ap-webapp/src/main/resources/application.properties and adjust for your environment
  3. Run the application:
java -jar phoss-ap-webapp/target/phoss-ap-webapp-*.jar

Or use Docker:

docker compose up -d

See the Running phoss AP wiki page for detailed setup instructions.

Infrastructure

By default, phoss-ap can easily connect to either a MySQL/MariaDB or a PostgreSQL database.

DB2 (Experimental)

Experimental support for IBM DB2 LUW is also included. Because the IBM jcc driver is proprietary, it is not bundled — it is supplied at runtime via the extension mechanism (requires 0.10.4 or later). To use DB2:

  1. Drop the com.ibm.db2:jcc driver and the org.flywaydb:flyway-database-db2 dialect jars into the /ext extension directory (LOADER_PATH). See the Runtime Extensions wiki page.
  2. Configure phossap.jdbc.database-type=db2 in your application.properties.
  3. Due to DB2's strictness, ensure your driver version matches your database. Boolean values are mapped to SMALLINT (0/1), and unbounded text is mapped to CLOB or VARCHAR(32000).

The Peppol Reporting SQL backend also supports DB2 (since peppol-reporting 4.2.0), so the reporting database may run on DB2 as well — it uses the same jcc driver supplied via /ext.

See docker-compose.db2.yml for an example of how to spin up a local DB2 instance for testing.

Documentation

Provided in the Wiki: https://github.com/phax/phoss-ap/wiki

Misc

If you like the project, a star on GitHub is always appreciated.

If you need commercial support or if you'd like to sponsor this project, please reach out to me by email (philip@helger.com).


My personal Coding Styleguide | It is appreciated if you star the GitHub project if you like it.

About

phoss Open Source Peppol Access Point

Resources

Code of conduct

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages