Skip to content

Configuration properties

Not yet on Maven Central

dedup4j 0.1.0 has not been published. These coordinates are the intended release coordinates and cannot be resolved from Maven Central today. The Maven Central namespace is confirmed in release gate G0 and this file is the single place it is edited.

Every dedup4j.* property, its default, and whether it is honoured. Defaults are read from the property classes, not from documentation.

Storage

dedup4j.storage.*

Property Default Notes
provider none Required. local, s3, or azure
key-prefix "" Prefix applied to every object key

provider has no default. Omit it and no storage adapter is configured.

Local

dedup4j.storage.local.*

Property Default Notes
root-directory dedup4j-storage Directory holding stored blobs

Set it explicitly anyway

Naming the directory in configuration makes the location obvious to the next person reading your config, and to anyone debugging where bytes went.

S3

dedup4j.storage.s3.*

Property Default Notes
bucket none Required when provider=s3
region none AWS region
endpoint none Custom endpoint for S3-compatible stores
path-style false true for MinIO and most S3-compatible stores

No credentials property exists. The AWS default credential provider chain is used — see Storage providers.

Azure

dedup4j.storage.azure.*

Property Default Notes
container none Required when provider=azure
account-name none Storage account name
endpoint none Custom endpoint, e.g. Azurite
connection-string none Development only — embeds an account key

Persistence

dedup4j.persistence.*

Property Default Notes
initialize-schema embedded embedded, always, or never

embedded initialises the schema only when the DataSource is an embedded database. Against Postgres or MySQL it creates nothing. See Spring Boot integration.

Deduplication

dedup4j.deduplication.*

Property Default Notes
max-upload-size 25MB Larger uploads are rejected

Content is read into memory to be hashed

Raising max-upload-size raises peak memory per concurrent upload. Size it against your heap and your concurrency, not against your largest file.

Content identity is not configurable

The hash algorithm is fixed at SHA-256, and deletion at zero references is unconditional. Neither has a property, because neither is a choice the library offers.

Management

dedup4j.management.* — requires dedup4j-spring-boot-management.

Property Default Notes
enabled false Opt in deliberately
base-path /dedup4j/management Mount point
instance-name dedup4j Label for this instance
instance-id random UUID Regenerated on every restart

Embedded dashboard

dedup4j.dashboard.* — requires dedup4j-spring-boot-dashboard.

Property Default Notes
enabled true On by default when the module is present
base-path /dedup4j/dashboard Mount point
failure-lookback 7d How far back the failure view reads

Dashboard registration

dedup4j.dashboard-registration.* — announces this instance to a standalone dashboard.

Property Default Notes
enabled false
dashboard-url none Where the standalone dashboard is
advertised-url none How the dashboard reaches back to this instance
instance-name dedup4j
instance-id none

Standalone dashboard

The standalone application is configured independently, not through dedup4j.* in your application.

Property Default Notes
server.address 127.0.0.1 Its entire security boundary
dedup4j.dashboard.database-path ./dedup4j-dashboard.sqlite Its own SQLite file, separate from your application database

Changing server.address removes the only protection

The standalone dashboard has no authentication. See Observability & dashboards.

Minimal working configuration

spring:
  datasource:
    url: jdbc:h2:mem:app

dedup4j:
  storage:
    provider: local
    local:
      root-directory: ./dedup4j-storage

For production, add a real datasource, set initialize-schema: never, and manage the schema with your migration tool.