ECM core library providing document management, e-signature, intelligent document processing, and folder security through a port/adapter architecture.
- Overview
- Features
- Requirements
- Installation
- Quick Start
- Configuration
- Documentation
- Contributing
- License
Firefly Framework ECM provides Enterprise Content Management capabilities through a hexagonal (port/adapter) architecture. It defines ports for document management, e-signature workflows, intelligent document processing (IDP), folder management, audit trails, and document security, which are implemented by provider-specific adapter modules.
The core module includes the adapter registry and selection mechanism, enabling runtime adapter discovery and multi-provider support. It provides domain models for documents, signature envelopes, folders, permissions, and audit events, along with comprehensive enumerations for document statuses, signature states, and processing workflows.
Storage adapters (AWS S3, Azure Blob) and e-signature adapters (Adobe Sign, DocuSign, Logalty) are published as separate standalone modules that plug into the ECM core.
- Hexagonal architecture with port/adapter pattern
- Document management ports: content, metadata, versioning, search
- E-signature ports: envelope management, signature requests, validation, proof
- Intelligent document processing ports: classification, extraction, validation
- Folder management with hierarchical structure and permissions
- Audit trail with event type and severity tracking
- Adapter registry with profile-based selection
- NoOp adapters for testing and development
- Local document search and permission adapters
- Resilience configuration for adapter operations
- Auto-configuration via
EcmAutoConfiguration - Configurable via
EcmProperties
- Java 21+
- Spring Boot 3.x
- Maven 3.9+
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm</artifactId>
<version>26.02.07</version>
</dependency>import org.fireflyframework.ecm.port.document.DocumentContentPort;
import org.fireflyframework.ecm.port.esignature.SignatureEnvelopePort;
@Service
public class DocumentService {
private final DocumentContentPort documentPort;
private final SignatureEnvelopePort signaturePort;
public Mono<Document> uploadAndSign(byte[] content, SignatureRequest sigRequest) {
return documentPort.store(content)
.flatMap(doc -> signaturePort.createEnvelope(doc, sigRequest));
}
}firefly:
ecm:
storage:
provider: aws-s3 # aws-s3, azure-blob
esignature:
provider: docusign # adobe-sign, docusign, logaltyAdditional documentation is available in the docs/ directory:
Contributions are welcome. Please read the CONTRIBUTING.md guide for details on our code of conduct, development process, and how to submit pull requests.
Copyright 2024-2026 Firefly Software Foundation.
Licensed under the Apache License, Version 2.0. See LICENSE for details.