Settings for EntryStore¶
EntryStore is configured through the file entrystore.properties. The commented example file entrystore.properties_example in the source repository is the authoritative reference for all settings of a release; it resides in modules/rest/spring-boot/src/main/resources/ (6.x) and modules/rest/src/main/resources/ (5.x), respectively. This page gives an overview; the settings of specific features are described on the respective Knowledge Base pages.
Loading the configuration (6.x)¶
EntryStore 6.x is a Spring Boot application and reads entrystore.properties from its working directory (see Installation). In addition:
- Every setting can be overridden on the command line, e.g.
--entrystore.solr.url=https://solr.domain.tld/solr/entrystore. Command line arguments take precedence over the file. - Spring Boot settings such as
server.port(default8080),server.servlet.context-path(default/store),server.forward-headers-strategy(defaultframework, see Reverse proxy) andspring.servlet.multipart.*(see Files) can be set inentrystore.propertiesas well. - In the Docker image, the file can also be provided through the environment variable
ENTRYSTORE_CONFIG_URI.
Value syntax¶
Boolean settings accept, case-insensitively, true/on/yes/1 to enable and false/off/no/0 to disable. For most settings an unrecognised value makes startup fail; settings read by the repository core, such as entrystore.solr or entrystore.data.quota, log a warning and use their default instead. Leave a setting out rather than setting it to an empty value. Spring Boot settings (spring.*, server.*, management.*) only accept true and false.
Lists are configured with numbered keys, e.g. entrystore.auth.signup.whitelist.1, entrystore.auth.signup.whitelist.2. Number them contiguously from .1. A bare key without a number (entrystore.auth.signup.whitelist=domain.tld) is a list with one element; irregular numbering (a gap, .0, .01) is read as in 5.x and reported with a warning.
Sizes and durations take units, e.g. 100MB, 1G, 30s, 1h.
EntryStore 5.x
In 5.x, most boolean settings were only enabled by the value on (some also by true), and every other value meant off. When upgrading, check for settings with the values yes or 1, which now enable the setting. See Upgrading from 5.x to 6.x.
Legacy settings¶
Settings that were renamed in 6.x are still accepted. They are translated at startup, and a warning in the log names the new key; see Upgrading from 5.x to 6.x for the list.
Overview¶
Settings marked with (6.x) are only available in 6.x, settings marked with (5.x) only in 5.x.
## Base URI how it is seen from external clients (mandatory)
entrystore.baseurl.folder=https://domain.tld/store/
## Repository store: memory | native | lmdb | http | sparql
entrystore.repository.store.type=native
## If store type is native or lmdb these properties must be specified
## If store type is memory a path can be specified for persisting the repository
entrystore.repository.store.path=file:///srv/entrystore/store/
entrystore.repository.store.indexes=cspo,posc
## if type=http: entrystore.repository.store.url=URL of RDF4J HTTP repository
## if type=sparql: entrystore.repository.store.endpoint-query=Query URL of SPARQL repository
## if type=sparql: entrystore.repository.store.endpoint-update=Update URL of SPARQL repository
## if type=http or sparql: entrystore.repository.store.user and .password for authentication
## Data folder and upload limit
entrystore.data.folder=/srv/entrystore/files/
## Maximum size of an uploaded file, -1 for no limit (default in 6.x: 1G; in 5.x: no limit)
entrystore.data.max-file-size=1G
## Backup, see the Backup page
entrystore.backup.folder=/srv/entrystore/backup/
entrystore.backup.scheduler=off
## Quartz cron expression (the deprecated entrystore.backup.timeregexp is still read as fallback)
entrystore.backup.cronexp=0 0 3 * * ?
## Solr, see the Search page
entrystore.solr=on
entrystore.solr.reindex-on-startup=off
entrystore.solr.reindex-on-startup.wait=off
## 6.x: an HTTP(S) URL of the Solr core; 5.x also: a local path for an embedded Solr
entrystore.solr.url=http://localhost:8983/solr/entrystore
entrystore.solr.extract-fulltext=off
## Quota defaults, see the Quota page
entrystore.data.quota=off
entrystore.data.quota.default=100k
## SPARQL endpoint with public metadata in all contexts, see the SPARQL page
entrystore.repository.public=off
entrystore.repository.public.type=native
entrystore.repository.public.path=file:///srv/entrystore/store/public/
entrystore.repository.public.indexes=cspo,spoc,posc
## Provenance (revisions of metadata), see the Provenance page
entrystore.repository.provenance=off
## Tracking of deleted entries (needed for deleted records in OAI-PMH)
entrystore.repository.track-deleted-entries=false
## Cleanup of all triples that track deleted entries
entrystore.repository.track-deleted-entries.cleanup=false
## Temporary override of the admin password
# entrystore.auth.adminpw=newtempadminpw
## Cross-origin resource sharing, see the CORS page
entrystore.cors=off
## (6.x) CSRF protection, see the Security page
entrystore.csrf.enabled=false
## JSONP support, see the JSONP page
entrystore.jsonp=true
## RowStore integration, see the Pipelines page. Deactivated by default.
## In 6.x RowStore's own base URL must use the same origin (scheme, host and port).
entrystore.rowstore.url=http://localhost:8282/
## (6.x) SSRF whitelist for the resource-DELETE proxy path. Entries are ORIGIN URLs
## (scheme://host:port), see the Proxy and Echo page. The origin of
## entrystore.rowstore.url (if set) is implicitly trusted.
entrystore.proxy.remote-resource.delete.whitelist.1=http://rowstore.internal:8282
## HTTP response headers, see "HTTP Server response header" on the Security page
entrystore.http.header.server=EntryStore
## (6.x)
entrystore.http.header.server.version-precision=major
## (6.x) Logging of every request and response, see the Logging page
logging.http.enabled=true
## (5.x) OAI-PMH harvester (not to confuse with the OAI-PMH target which is an own WebApp)
entrystore.harvester.oai=on
entrystore.harvester.oai.multithreaded=off
## (5.x) Cache for metadata instances produced by the harvesting target
entrystore.repository.cache=off
entrystore.repository.cache.path=/srv/entrystore/files/cache/
## (5.x) By default all references are rewritten. This is necessary to make
## installations work where the internal references are different from
## the external ones (this happens when reverse proxying is used).
## In 6.x the forwarded headers set by the reverse proxy are used instead.
entrystore.repository.rewrite-basereference=true
Settings on other pages¶
| Topic | Page |
|---|---|
| Login, sessions, passwords, SAML, CAS, OIDC, HTTP Basic | Authentication |
| Sign-up, password reset, reCAPTCHA | Sign-up |
Email delivery (entrystore.smtp.*) |
SMTP |
| Search limits, rate limiting, related properties | Search |
| Proxy limits and whitelists, echo limit | Proxy and Echo |
| Uploads and multipart limits | Files |
| Messages and their rate limit | Messaging |
| Traversal profiles | Traversal |
| Syndication URL templates | Syndication |
| Groups with contexts | Groups with contexts |
| CSRF, rate limits, server header | Security |
| Logging | Logging |