This document provides a comprehensive reference for all configuration properties available in the Firefly ECM Library and its adapter implementations.
This reference covers configuration for:
- Core Library (fireflyframework-ecm): Port interfaces and infrastructure
- Adapter Libraries (separate repositories): Concrete implementations
To use adapter configurations, you must first add the adapter library as a dependency.
- Core Configuration
- S3 Adapter Configuration
- Azure Blob Adapter Configuration
- DocuSign Adapter Configuration
- Adobe Sign Adapter Configuration
- Environment Variables
- Configuration Examples
| Property | Type | Default | Description |
|---|---|---|---|
firefly.ecm.enabled |
Boolean | true |
Enable/disable the ECM library |
firefly.ecm.adapter-type |
String | - | Document storage adapter type (s3, azure-blob, etc.) |
firefly.ecm.esignature.provider |
String | - | eSignature provider (docusign, adobe-sign, etc.) |
firefly:
ecm:
# Document storage adapter
adapter-type: s3
# eSignature provider
esignature:
provider: docusignThe following configurations require their respective adapter libraries to be added as dependencies.
Requires dependency: fireflyframework-ecm-adapter-s3
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm-adapter-s3</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>| Property | Type | Description | Environment Variable |
|---|---|---|---|
firefly.ecm.adapter.s3.bucket-name |
String | S3 bucket name | FIREFLY_ECM_ADAPTER_S3_BUCKET_NAME |
firefly.ecm.adapter.s3.region |
String | AWS region | FIREFLY_ECM_ADAPTER_S3_REGION |
| Property | Type | Default | Description | Environment Variable |
|---|---|---|---|---|
firefly.ecm.adapter.s3.access-key |
String | - | AWS access key | FIREFLY_ECM_ADAPTER_S3_ACCESS_KEY |
firefly.ecm.adapter.s3.secret-key |
String | - | AWS secret key | FIREFLY_ECM_ADAPTER_S3_SECRET_KEY |
firefly.ecm.adapter.s3.endpoint |
String | - | Custom S3 endpoint | FIREFLY_ECM_ADAPTER_S3_ENDPOINT |
firefly.ecm.adapter.s3.path-prefix |
String | documents/ |
Object key prefix | FIREFLY_ECM_ADAPTER_S3_PATH_PREFIX |
firefly.ecm.adapter.s3.enable-versioning |
Boolean | true |
Enable S3 versioning | FIREFLY_ECM_ADAPTER_S3_ENABLE_VERSIONING |
firefly.ecm.adapter.s3.path-style-access |
Boolean | false |
Use path-style access | FIREFLY_ECM_ADAPTER_S3_PATH_STYLE_ACCESS |
firefly.ecm.adapter.s3.connection-timeout |
Duration | PT30S |
Connection timeout | FIREFLY_ECM_ADAPTER_S3_CONNECTION_TIMEOUT |
firefly.ecm.adapter.s3.socket-timeout |
Duration | PT30S |
Socket timeout | FIREFLY_ECM_ADAPTER_S3_SOCKET_TIMEOUT |
firefly.ecm.adapter.s3.max-retries |
Integer | 3 |
Max retry attempts | FIREFLY_ECM_ADAPTER_S3_MAX_RETRIES |
firefly.ecm.adapter.s3.enable-encryption |
Boolean | true |
Enable server-side encryption | FIREFLY_ECM_ADAPTER_S3_ENABLE_ENCRYPTION |
firefly.ecm.adapter.s3.kms-key-id |
String | - | KMS key ID | FIREFLY_ECM_ADAPTER_S3_KMS_KEY_ID |
firefly.ecm.adapter.s3.storage-class |
String | STANDARD |
S3 storage class | FIREFLY_ECM_ADAPTER_S3_STORAGE_CLASS |
firefly.ecm.adapter.s3.enable-multipart |
Boolean | true |
Enable multipart upload | FIREFLY_ECM_ADAPTER_S3_ENABLE_MULTIPART |
firefly.ecm.adapter.s3.multipart-threshold |
Long | 5242880 |
Multipart threshold (bytes) | FIREFLY_ECM_ADAPTER_S3_MULTIPART_THRESHOLD |
firefly.ecm.adapter.s3.multipart-part-size |
Long | 5242880 |
Multipart part size (bytes) | FIREFLY_ECM_ADAPTER_S3_MULTIPART_PART_SIZE |
Supported storage classes:
STANDARD- Standard storageSTANDARD_IA- Standard Infrequent AccessONEZONE_IA- One Zone Infrequent AccessREDUCED_REDUNDANCY- Reduced RedundancyGLACIER- GlacierDEEP_ARCHIVE- Glacier Deep ArchiveINTELLIGENT_TIERING- Intelligent Tiering
Requires dependency: fireflyframework-ecm-adapter-azure-blob
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm-adapter-azure-blob</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>| Property | Type | Description | Environment Variable |
|---|---|---|---|
firefly.ecm.adapter.azure-blob.account-name |
String | Azure storage account name | FIREFLY_ECM_ADAPTER_AZURE_BLOB_ACCOUNT_NAME |
firefly.ecm.adapter.azure-blob.container-name |
String | Blob container name | FIREFLY_ECM_ADAPTER_AZURE_BLOB_CONTAINER_NAME |
| Property | Type | Default | Description | Environment Variable |
|---|---|---|---|---|
firefly.ecm.adapter.azure-blob.account-key |
String | - | Storage account key | FIREFLY_ECM_ADAPTER_AZURE_BLOB_ACCOUNT_KEY |
firefly.ecm.adapter.azure-blob.connection-string |
String | - | Full connection string | FIREFLY_ECM_ADAPTER_AZURE_BLOB_CONNECTION_STRING |
firefly.ecm.adapter.azure-blob.endpoint |
String | - | Custom blob endpoint | FIREFLY_ECM_ADAPTER_AZURE_BLOB_ENDPOINT |
Requires dependency: fireflyframework-ecm-adapter-docusign
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm-adapter-docusign</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>| Property | Type | Description | Environment Variable |
|---|---|---|---|
firefly.ecm.adapter.docusign.integration-key |
String | DocuSign integration key | FIREFLY_ECM_ADAPTER_DOCUSIGN_INTEGRATION_KEY |
firefly.ecm.adapter.docusign.user-id |
String | DocuSign user ID (GUID) | FIREFLY_ECM_ADAPTER_DOCUSIGN_USER_ID |
firefly.ecm.adapter.docusign.account-id |
String | DocuSign account ID | FIREFLY_ECM_ADAPTER_DOCUSIGN_ACCOUNT_ID |
firefly.ecm.adapter.docusign.private-key |
String | RSA private key | FIREFLY_ECM_ADAPTER_DOCUSIGN_PRIVATE_KEY |
| Property | Type | Default | Description | Environment Variable |
|---|---|---|---|---|
firefly.ecm.adapter.docusign.base-url |
String | https://na3.docusign.net/restapi |
DocuSign API base URL | FIREFLY_ECM_ADAPTER_DOCUSIGN_BASE_URL |
firefly.ecm.adapter.docusign.auth-server |
String | https://account.docusign.com |
Auth server URL | FIREFLY_ECM_ADAPTER_DOCUSIGN_AUTH_SERVER |
firefly.ecm.adapter.docusign.sandbox-mode |
Boolean | false |
Enable sandbox mode | FIREFLY_ECM_ADAPTER_DOCUSIGN_SANDBOX_MODE |
Requires dependency: fireflyframework-ecm-adapter-adobe-sign
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-ecm-adapter-adobe-sign</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>| Property | Type | Description | Environment Variable |
|---|---|---|---|
firefly.ecm.adapter.adobe-sign.client-id |
String | Adobe Sign client ID | FIREFLY_ECM_ADAPTER_ADOBE_SIGN_CLIENT_ID |
firefly.ecm.adapter.adobe-sign.client-secret |
String | Adobe Sign client secret | FIREFLY_ECM_ADAPTER_ADOBE_SIGN_CLIENT_SECRET |
| Property | Type | Default | Description | Environment Variable |
|---|---|---|---|---|
firefly.ecm.adapter.adobe-sign.base-url |
String | https://api.na1.adobesign.com |
Adobe Sign API base URL | FIREFLY_ECM_ADAPTER_ADOBE_SIGN_BASE_URL |
- Jersey Client (
jersey-client:3.1.3) - HTTP client implementation - Jersey Media JSON (
jersey-media-json-jackson:3.1.3) - JSON processing - Jersey HK2 (
jersey-hk2:3.1.3) - Dependency injection - Jersey Multipart (
jersey-media-multipart:3.1.3) - Multipart support - Apache Oltu OAuth2 (
org.apache.oltu.oauth2.client:1.0.2) - OAuth2 authentication
Note: All transitive dependencies are automatically managed. No additional configuration is required.
All configuration properties can be overridden using environment variables. The naming convention follows the pattern:
FIREFLY_ECM_ADAPTER_<ADAPTER>_<PROPERTY>
Where:
<ADAPTER>is the adapter name in uppercase (S3, DOCUSIGN)<PROPERTY>is the property name in uppercase with underscores
# S3 Configuration
export FIREFLY_ECM_ADAPTER_S3_BUCKET_NAME=my-ecm-bucket
export FIREFLY_ECM_ADAPTER_S3_REGION=us-west-2
# DocuSign Configuration
export FIREFLY_ECM_ADAPTER_DOCUSIGN_INTEGRATION_KEY=your-integration-key
export FIREFLY_ECM_ADAPTER_DOCUSIGN_SANDBOX_MODE=truefirefly:
ecm:
adapter-type: s3
esignature:
provider: docusign
adapter:
s3:
bucket-name: dev-ecm-bucket
region: us-east-1
endpoint: http://localhost:9000 # MinIO for local development
path-style-access: true
enable-encryption: false
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY}
user-id: ${DOCUSIGN_USER_ID}
account-id: ${DOCUSIGN_ACCOUNT_ID}
private-key: ${DOCUSIGN_PRIVATE_KEY}
sandbox-mode: true
enable-polling: false
logging:
level:
org.fireflyframework.ecm: DEBUGfirefly:
ecm:
adapter-type: s3
esignature:
provider: docusign
adapter:
s3:
bucket-name: ${S3_BUCKET_NAME}
region: ${AWS_REGION}
enable-versioning: true
enable-encryption: true
kms-key-id: ${S3_KMS_KEY_ID}
storage-class: STANDARD
multipart-threshold: 10485760 # 10MB
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY}
user-id: ${DOCUSIGN_USER_ID}
account-id: ${DOCUSIGN_ACCOUNT_ID}
private-key: ${DOCUSIGN_PRIVATE_KEY}
sandbox-mode: false
webhook-url: ${DOCUSIGN_WEBHOOK_URL}
webhook-secret: ${DOCUSIGN_WEBHOOK_SECRET}
enable-retention: true
retention-days: 2555
logging:
level:
org.fireflyframework.ecm: INFO
org.fireflyframework.ecm.adapter: WARNfirefly:
ecm:
# Primary document storage
adapter-type: s3
# Primary eSignature provider
esignature:
provider: docusign
adapter:
s3:
bucket-name: ${S3_BUCKET_NAME}
region: ${AWS_REGION}
docusign:
integration-key: ${DOCUSIGN_INTEGRATION_KEY}
user-id: ${DOCUSIGN_USER_ID}
account-id: ${DOCUSIGN_ACCOUNT_ID}
private-key: ${DOCUSIGN_PRIVATE_KEY}The library validates configuration properties at startup. Common validation rules:
- Required properties must be provided
- Duration properties must be valid ISO-8601 durations
- Numeric properties must be within valid ranges
- Boolean properties accept
true/falsevalues - Enum properties must match valid values
The Firefly ECM Library maintains 100% test success rate across all adapter configurations:
| Module | Tests | Success Rate | Coverage |
|---|---|---|---|
| S3 Adapter | 21 | ✅ 100% | All configuration scenarios |
| DocuSign Adapter | 10 | ✅ 100% | Complete workflow testing |
| TOTAL | 31 | ✅ 100% | Production Ready |
- Dependency Resolution: All DocuSign SDK dependencies automatically managed
- Resilience Testing: Comprehensive testing of circuit breaker and retry patterns
- Configuration Validation: All property names and defaults verified against actual implementation
- Error Handling: Robust testing of configuration validation and error scenarios