This guide covers configuration for the Firefly ECM Library and its adapter implementations.
Configuration is split between:
- Core Library Configuration (fireflyframework-ecm): Basic ECM settings and adapter selection
- Adapter Configuration: Adapter-specific settings (provided by each adapter library)
Before configuring, ensure you have added the required dependencies:
<!-- Core library (required) -->
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- Add adapter libraries as needed -->
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm-adapter-s3</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>The core library uses Spring Boot's configuration properties system with the prefix firefly.ecm.
| Property | Type | Default | Description |
|---|---|---|---|
firefly.ecm.enabled |
Boolean | true |
Enable/disable ECM functionality |
firefly.ecm.adapter-type |
String | - | Document storage adapter to use (e.g., "s3", "azure-blob") |
firefly.ecm.esignature.provider |
String | - | eSignature provider to use (e.g., "docusign", "adobe-sign") |
firefly:
ecm:
enabled: true
adapter-type: s3 # Select S3 adapter for document storage
esignature:
provider: docusign # Select DocuSign for eSignaturesAdapter-specific configuration is provided under firefly.ecm.adapter.<adapter-name>.
Requires: fireflyframework-ecm-adapter-s3 dependency
firefly:
ecm:
adapter-type: s3
adapter:
s3:
bucket-name: my-documents-bucket # Required: S3 bucket name
region: us-east-1 # Required: AWS region
access-key: ${AWS_ACCESS_KEY_ID} # Optional: AWS access key (uses default credentials if not set)
secret-key: ${AWS_SECRET_ACCESS_KEY} # Optional: AWS secret key
endpoint: https://s3.amazonaws.com # Optional: Custom S3 endpoint (for S3-compatible services)See S3 Integration Guide for complete setup instructions.
Requires: fireflyframework-ecm-adapter-azure-blob dependency
firefly:
ecm:
adapter-type: azure-blob
adapter:
azure-blob:
account-name: mystorageaccount # Required: Azure storage account name
container-name: documents # Required: Blob container name
account-key: ${AZURE_STORAGE_KEY} # Optional: Account key (uses managed identity if not set)
connection-string: ${AZURE_STORAGE_CONNECTION_STRING} # Optional: Full connection stringSee Azure Blob Integration Guide for complete setup instructions.
Requires: fireflyframework-ecm-adapter-docusign dependency
firefly:
ecm:
esignature:
provider: docusign
adapter:
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY} # Required: DocuSign integration key
user-id: ${DOCUSIGN_USER_ID} # Required: DocuSign user ID
account-id: ${DOCUSIGN_ACCOUNT_ID} # Required: DocuSign account ID
private-key: ${DOCUSIGN_PRIVATE_KEY} # Required: RSA private key for JWT
base-url: https://demo.docusign.net # Optional: DocuSign API base URLSee DocuSign Integration Guide for complete setup instructions.
Requires: fireflyframework-ecm-adapter-adobe-sign dependency
firefly:
ecm:
esignature:
provider: adobe-sign
adapter:
adobe-sign:
client-id: ${ADOBE_SIGN_CLIENT_ID} # Required: Adobe Sign client ID
client-secret: ${ADOBE_SIGN_CLIENT_SECRET} # Required: Adobe Sign client secret
base-url: https://api.na1.adobesign.com # Optional: Adobe Sign API base URLfirefly:
ecm:
enabled: true
adapter-type: s3
adapter:
s3:
bucket-name: my-documents
region: us-east-1
access-key: ${AWS_ACCESS_KEY_ID}
secret-key: ${AWS_SECRET_ACCESS_KEY}firefly:
ecm:
enabled: true
adapter-type: azure-blob
esignature:
provider: docusign
adapter:
azure-blob:
account-name: mystorageaccount
container-name: documents
account-key: ${AZURE_STORAGE_KEY}
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY}
user-id: ${DOCUSIGN_USER_ID}
account-id: ${DOCUSIGN_ACCOUNT_ID}
private-key: ${DOCUSIGN_PRIVATE_KEY}firefly:
ecm:
enabled: true
adapter-type: s3
esignature:
provider: adobe-sign
adapter:
s3:
bucket-name: my-documents
region: us-west-2
adobe-sign:
client-id: ${ADOBE_SIGN_CLIENT_ID}
client-secret: ${ADOBE_SIGN_CLIENT_SECRET}If no adapter is configured or available, the library will:
- Log a warning at startup indicating no adapter was found
- Use no-op adapters that return empty results or throw
UnsupportedOperationException - Allow the application to start without failing
This allows you to include the library without being forced to configure an adapter immediately.
WARN: No adapter found for type 'document'. Using no-op adapter.
WARN: No adapter found for type 'esignature'. Using no-op adapter.
Use environment variables for sensitive configuration:
# AWS Configuration (for S3 adapter)
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_DEFAULT_REGION=us-east-1
# Azure Configuration (for Azure Blob adapter)
export AZURE_STORAGE_ACCOUNT=mystorageaccount
export AZURE_STORAGE_KEY=your-storage-key
# DocuSign Configuration (for DocuSign adapter)
export DOCUSIGN_INTEGRATION_KEY=your-integration-key
export DOCUSIGN_USER_ID=your-user-id
export DOCUSIGN_ACCOUNT_ID=your-account-id
export DOCUSIGN_PRIVATE_KEY=your-private-key
# Adobe Sign Configuration (for Adobe Sign adapter)
export ADOBE_SIGN_CLIENT_ID=your-client-id
export ADOBE_SIGN_CLIENT_SECRET=your-client-secretUse Spring profiles for different environments:
firefly:
ecm:
enabled: true
adapter-type: s3
adapter:
s3:
bucket-name: dev-documents
region: us-east-1
logging:
level:
org.fireflyframework.ecm: DEBUGfirefly:
ecm:
enabled: true
adapter-type: s3
esignature:
provider: docusign
adapter:
s3:
bucket-name: prod-documents
region: us-east-1
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY}
user-id: ${DOCUSIGN_USER_ID}
account-id: ${DOCUSIGN_ACCOUNT_ID}
private-key: ${DOCUSIGN_PRIVATE_KEY}
logging:
level:
org.fireflyframework.ecm: INFOEach adapter library validates its own configuration on startup:
- Required properties for the adapter
- Connection settings validity
- Credential format and availability
| Issue | Cause | Solution |
|---|---|---|
No adapter found |
Adapter library not in classpath | Add adapter dependency to pom.xml |
Adapter type not specified |
Missing adapter-type |
Set firefly.ecm.adapter-type |
Required property missing |
Missing adapter property | Check adapter integration guide |
Authentication failed |
Invalid credentials | Verify environment variables |
If you see warnings like:
WARN: No adapter found for type 'document'. Using no-op adapter.
Causes:
- Adapter library not added to dependencies
adapter-typedoesn't match any registered adapter- Adapter auto-configuration conditions not met
Solutions:
- Add the adapter dependency to your
pom.xml - Verify
firefly.ecm.adapter-typematches the adapter name - Check adapter-specific configuration requirements
- S3 Integration Guide - Complete S3 adapter setup
- Azure Blob Integration Guide - Complete Azure Blob adapter setup
- DocuSign Integration Guide - Complete DocuSign adapter setup
- Architecture Guide - Understanding the hexagonal architecture