Skip to content
Search

    CDS Properties

    The following table lists all configuration properties, that can be used to configure the CAP Java SDK.

    In property files <index> should be replaced with a number and <key> with an arbitrary String. In YAML files, you can use standard YAML list and map structures.

    Property Type Default Value Description
    cds.environment     Properties for environments, like local development or Cloud Foundry.
    cds.environment.local     Properties for the local environment.
    cds.environment.local.defaultEnvPath String   Specification of the default environment JSON file. If this property starts with “classpath:”, it is read
    as classloader resource. Otherwise it is interpreted as file-system path.
    The file content follows the structure of Cloud Foundry’s VCAP_SERVICES and VCAP_APPLICATION environment variables.
    If this property specifies a folder, the filename default-env.json is appended to it.
    cds.dataSource     Properties for the primary data source, used by the default persistence service.
    cds.dataSource.embedded boolean false Determines, if the data source is considered embedded (in-memory).
    cds.dataSource.binding String   The name of the primary service binding, used by the default persistence service.
    cds.dataSource.csvInitializationMode String embedded Determines in which scenarios the default persistence service is initialized with CSV data.
    By default, CSV initialization only happens, if the data source is embedded (in-memory).
    Possible values are: embedded, never, always.
    cds.dataSource.csvFileSuffix String .csv The file suffix of CSV files.
    cds.dataSource.csvPaths List<String> db/data/**, db/csv/**, ../db/data/**, ../db/csv/** The file-system paths to search for CSV files in.
    Using /** at the end of the path triggers a recursive search.
    cds.dataSource.csvSingleChangeset boolean false Enables import of all CSV files in a single changeset. By default, each CSV file is imported in a separate changeset.
    cds.dataSource.autoConfig     Properties to control the DataSource auto-configuration from service bindings.
    cds.dataSource.autoConfig.enabled boolean true Determines, if it is enabled.
    cds.model     Properties for the CDS model.
    cds.model.csnPath String edmx/csn.json The resource path to the csn.json file.
    cds.security     Properties for security configurations of services and endpoints.
    cds.security.openUnrestrictedEndpoints boolean   Determines, if protocol adapter endpoints that don’t require authorization, also do not enforce authentication.
    If not set explicitly, a reasonable default value is derived the from the application scenario:
    In the multitenant scenario, which usually requires authentication to obtain the tenant information, the default value is false.
    For all other scenarios, true is the default value.
    cds.security.openMetadataEndpoints boolean false Determines, if OData $metadata endpoints are available without authentication.
    cds.security.authenticateUnknownEndpoints boolean true Determines, if security configurations enforce authentication for endpoints not managed by CAP protocol-adapters.
    cds.security.logPotentiallySensitive boolean false Determines, if potentially sensitive data, for example values in CQN queries, might be logged.
    cds.security.draftProtection     Properties to control the protection of drafts.
    If a draft is protected, it is only accessible by its creator.
    cds.security.draftProtection.enabled boolean true Determines, if it is enabled.
    cds.security.identity     Properties for XSUAA based authentication.
    cds.security.identity.enabled boolean true Determines, if it is enabled.
    cds.security.identity.authConfig     Properties for the Identity Spring security auto-configuration.
    cds.security.identity.authConfig.enabled boolean true Determines, if it is enabled.
    cds.security.xsuaa     Properties for XSUAA based authentication.
    cds.security.xsuaa.binding String   The name of the XSUAA service binding, used for the XSUAA security auto-configuration.
    cds.security.xsuaa.enabled boolean true Determines, if it is enabled.
    cds.security.xsuaa.authConfig     Properties for the XSUAA Spring security auto-configuration.
    cds.security.xsuaa.authConfig.enabled boolean true Determines, if it is enabled.
    cds.security.mock     Properties for mock-user based authentication.
    cds.security.mock.enabled boolean true Determines, if it is enabled.
    cds.security.mock.users     The list of mock-users, used for basic authentication in local development and test scenarios.
    cds.security.mock.users.<index>.id String   The ID of the mock-user.
    cds.security.mock.users.<index>.name String   The (mandatory) name of the mock-user.
    It’s used to perform the basic authentication.
    cds.security.mock.users.<index>.password String   The (optional) password of the mock-user.
    It’s used to perform the basic authentication.
    cds.security.mock.users.<index>.tenant String   The tenant of the mock-user.
    cds.security.mock.users.<index>.systemUser boolean false Determines, if this mock-user is treated as a system user.
    cds.security.mock.users.<index>.privileged boolean false Determines, if this mock-user is treated as the privileged user.
    cds.security.mock.users.<index>.roles List<String>   The list of roles, that are assigned to this mock-user.
    cds.security.mock.users.<index>.attributes Map<String,List<String>>   A map of user attributes, that are assigned to the mock-user.
    The name of the attribute needs to be given as the key.
    The attribute values are provided as a list.
    cds.security.mock.users.<index>.unrestricted List<String>   A list of attribute names, for which the mock-user has no restrictions.
    This is treated as if the mock-user effectively had all possible values of this attribute assigned.
    cds.security.mock.users.<index>.additional Map<String,Object>   A map of additional properties of the mock-user.
    It can be used to mock authentication specific properties (e.g. email address).
    The name of the additional attribute needs to be given as the key.
    The value of the attribute can be provided as an arbitrary object.
    cds.indexPage     Properties for the index page.
    cds.indexPage.path String / The base-path of the adapter endpoint.
    cds.indexPage.enabled boolean true Determines, if it is enabled.
    cds.odataV4     Properties for the OData V4 protocol adapter.
    cds.odataV4.contextAbsoluteUrl boolean false Determines, if URLs in the @odata.context response annotation are absolute.
    cds.odataV4.edmxPath String edmx/v4 The JAR resource path to search for OData V4 EDMX files.
    cds.odataV4.endpoint     Properties of the OData V4 protocol adapter endpoint.
    cds.odataV4.endpoint.path String /odata/v4 The base-path of the adapter endpoint.
    cds.odataV4.endpoint.enabled boolean true Determines, if it is enabled.
    cds.odataV2     Properties for the OData V2 protocol adapter.
    cds.odataV2.edmxPath String edmx/v2 The JAR resource path to search for OData V2 EDMX files.
    cds.odataV2.endpoint     Properties of the OData V2 protocol adapter endpoint.
    cds.odataV2.endpoint.path String /odata/v2 The base-path of the adapter endpoint.
    cds.odataV2.endpoint.enabled boolean true Determines, if it is enabled.
    cds.messaging     Properties for messaging services.
    cds.messaging.routes     The list of routes for the composite messaging service.
    The first route that matches is used. Therefore the order of these routes has significance.
    cds.messaging.routes.<index>.service String   The target service of the route.
    cds.messaging.routes.<index>.events List<String>   The list of events/topics, which are propagated to/from the target service.
    cds.messaging.services     Properties for messaging services.
    The key can be chosen arbitrarily and is used as the messaging service name, if the name property is not explicitly defined.
    In addition it can be leveraged to split configuration across multiple profiles.
    cds.messaging.services.<key>.name String   The name of the messaging service.
    cds.messaging.services.<key>.kind String   The kind of the messaging service.
    It usually reflects the corresponding service binding type.
    Possible values are: local-messaging, file-based-messaging, enterprise-messaging, mqueue-sandbox.
    cds.messaging.services.<key>.binding String   The name of the service binding used for this messaging service.
    In case of file-based-messaging this specifies the file-system path to the exchange file.
    cds.messaging.services.<key>.subscribePrefix String   The string used to prefix topics when subscribing to events.
    cds.messaging.services.<key>.publishPrefix String   The string used to prefix topics when publishing events.
    cds.messaging.services.<key>.format String   The message format to be assumed on subscriptions and applied when publishing.
    Possible values are: cloudevents
    cds.messaging.services.<key>.enabled boolean true Determines, if it is enabled.
    cds.messaging.services.<key>.connection     Properties for the JMS client connection.
    cds.messaging.services.<key>.connection.dedicated boolean false Determines, if this messaging service uses its own dedicated JMS client connection.
    By default, JMS client connections to the same messaging broker are shared.
    cds.messaging.services.<key>.connection.properties Map<String,String>   Properties passed to the JMS client connection.
    The possible keys and values depend on the messaging service implementation.
    cds.messaging.services.<key>.queue     Properties of the queue that is created for the messaging service.
    cds.messaging.services.<key>.queue.name String   The name of the queue.
    The queue may already exist with some custom configuration. In that case the queue is not recreated.
    cds.messaging.services.<key>.queue.maxFailedAttempts Integer 0 Specifies the amount of times a message from the message broker is emitted on the messaging service, before it is silently acknowledged in case of continuous errors.
    cds.messaging.services.<key>.queue.config Map<String,String>   Properties passed to the messaging broker when creating the queue.
    The possible keys and values depend on the messaging service implementation.
    cds.messaging.services.<key>.queue.subscriptions List<String>   A list of additional topics, that are subscribed on the queue.
    By default event handler registrations should be used to trigger subscriptions.
    This property is intended for purposes when subscriptions can not be inferred from event handler registrations.
    cds.messaging.services.<key>.outbox     Properties to control, if and how the Outbox should be used for this messaging service.
    cds.messaging.services.<key>.outbox.enabled boolean true Determines, if it is enabled.
    cds.messaging.services.<key>.outbox.persistent     Controls usage of the persistent Outbox if present.
    cds.messaging.services.<key>.outbox.persistent.enabled boolean true Determines, if it is enabled.
    cds.multiTenancy     Properties for multitenancy and extensibility.
    cds.multiTenancy.endpoint     Properties of the subscription HTTP endpoints.
    cds.multiTenancy.endpoint.path String /mt/v1.0/subscriptions The base-path of the adapter endpoint.
    cds.multiTenancy.endpoint.enabled boolean true Determines, if it is enabled.
    cds.multiTenancy.dataSource     Properties for the multitenant aware datasource.
    cds.multiTenancy.dataSource.pool String hikari Pool to use for the multitenant-aware datasource.
    Possible values are: hikari, tomcat, atomikos.
    cds.multiTenancy.dataSource.combinePools     Properties to control how the connection pools are maintained.
    This allows to configure, that the connection pools for tenants contained in the same database are combined. Instead of having a dedicated connection pool for each tenant schema.
    cds.multiTenancy.dataSource.combinePools.enabled boolean false Determines, if it is enabled.
    cds.multiTenancy.serviceManager     Properties for the instance-manager / service-manager client.
    cds.multiTenancy.serviceManager.timeout int 3600 The timeout for requests in seconds.
    cds.multiTenancy.security     Properties for authorization.
    cds.multiTenancy.security.subscriptionScope String mtcallback The scope by which the subscription endpoints are authorized.
    cds.multiTenancy.security.deploymentScope String mtdeployment The scope by which the deployment endpoints are authorized.
    cds.multiTenancy.sidecar     Properties for the MTX sidecar client.
    cds.multiTenancy.sidecar.url String   The URL of the MTX sidecar.
    Setting this property, in combination with a present service-manager service binding, activates the MTX features.
    cds.multiTenancy.sidecar.cache     Properties for the sidecar CDS model and EDMX metadata caches.
    cds.multiTenancy.sidecar.cache.maxSize int 20 The number of entries in the CDS model and EDMX metadata caches.
    cds.multiTenancy.sidecar.cache.expirationTime int 600 The lifetime of an entry in seconds after the entry’s creation, the most recent replacement of its value, or its last access.
    cds.multiTenancy.sidecar.cache.refreshTime int 60 The time in seconds after which a cached entry is refreshed.
    cds.multiTenancy.appUi     Properties for the URL to the application’s UI endpoints.
    cds.multiTenancy.appUi.url String   The URL to the application’s UI, used for the ‘Go to Application’ link.
    cds.multiTenancy.appUi.tenantSeparator String   The separator for the tenant in the URL.
    Possible values are: ., -.
    cds.multiTenancy.healthCheck     Properties for health check of the multitenant-aware datasource.
    cds.multiTenancy.healthCheck.healthCheckStatement String   The statement that is used when executing a health check of the multitenant-aware datasource.
    cds.multiTenancy.healthCheck.intervalMillis long 10000 The time in milliseconds a health check result is cached and no further health checks are performed.
    cds.multiTenancy.healthCheck.enabled boolean true Determines, if it is enabled.
    cds.multiTenancy.liquibase     Properties for DB lifecycle management via Liquibase.
    cds.multiTenancy.liquibase.changeLog String /db/changelog/db.changelog-master.yaml The location of the master Liquibase file.
    cds.multiTenancy.liquibase.contexts String   Optional: Comma separated list of active contexts.
    cds.multiTenancy.instanceManagerMigration     Properties for migration of HDI containers from instance manager to service manager.
    cds.multiTenancy.instanceManagerMigration.instanceManagerBindingName String   The name of the instance manager service binding that is migrated.
    cds.application     Properties for application services.
    cds.application.services     Properties for application services.
    The key can be chosen arbitrarily and is used as the application service name, if the name property is not explicitly defined.
    In addition it can be leveraged to split configuration across multiple profiles.
    cds.application.services.<key>.name String   The name of the application service.
    cds.application.services.<key>.model String   The qualified name of the CDS service, which is the model definition of this application service.
    It defaults to the name of the application service itself.
    cds.application.services.<key>.serve     Properties to configure how this service is served by protocol adapters.
    cds.application.services.<key>.serve.ignore boolean false Determines, if the service is ignored by protocol adapters.
    cds.application.services.<key>.serve.path String   The path this service should be served at by protocol adapters.
    The path is appended to the protocol adapter’s base path.
    If a service is served by multiple protocol adapters, each adapter serves the service under this path.
    cds.application.services.<key>.serve.protocols List<String>   The list of protocols adapters this service should be served by.
    By default the service is served by all available protocol adapters.
    Possible values are: odata-v4, odata-v2.
    cds.application.services.<key>.serve.endpoints     Properties to control more fine-grained under which endpoints this service is served.
    These properties override the more general properties paths and protocols.
    cds.application.services.<key>.serve.endpoints.<index>.path String   The path, this endpoint should be served at by the protocol adapter.
    The path is appended to the protocol adapter’s base path.
    cds.application.services.<key>.serve.endpoints.<index>.protocol String   The protocol adapter that serves this endpoint.
    Possible values are: odata-v4, odata-v2.
    cds.remote     Properties for remote services.
    cds.remote.services     Properties for remote services.
    The key can be chosen arbitrarily and is mainly intended to be able to split configuration across multiple profiles.
    cds.remote.services.<key>.name String   The name of the remote service.
    cds.remote.services.<key>.model String   The qualified name of the CDS service, which is the model definition of this remote service.
    It defaults to the name of the remote service itself.
    cds.remote.services.<key>.destination     Properties to configure a remote destination for this remote service.
    cds.remote.services.<key>.destination.type String odata-v4 The protocol type of the destination.
    Possible values are: odata-v4 or odata-v2.
    cds.remote.services.<key>.destination.name String   The name of the destination in the destination service or SAP Cloud SDK destination accessor.
    cds.remote.services.<key>.destination.suffix String   A suffix for this destination, that is appended to the destination’s URL.
    cds.remote.services.<key>.destination.service String   The name of the service, that is appended to the destination’s URL (after the suffix).
    It defaults to the qualified name of the model definition.
    cds.remote.services.<key>.destination.properties Map<String,Object>   A map of generic destination properties supported by SAP Cloud SDK.
    These properties are used to dynamically build a destination.
    cds.remote.services.<key>.destination.headers Map<String,String>   A map of headers and their values, to be added to every outgoing request.
    cds.remote.services.<key>.destination.queries Map<String,String>   A map of query parameters and their values, to be added to every outgoing request.
    cds.remote.services.<key>.destination.retrievalStrategy String   The retrieval strategy used, when loading destinations from SAP BTP Destination Service.
    See https://sap.github.io/cloud-sdk/docs/java/features/connectivity/sdk-connectivity-destination-service#retrieval-strategy-options for possible values.
    cds.remote.services.<key>.destination.tokenExchangeStrategy String   The token exchange strategy used, when loading destinations from SAP BTP Destination Service.
    See https://sap.github.io/cloud-sdk/docs/java/features/connectivity/sdk-connectivity-destination-service#token-exchange-options for possible values.
    cds.locales     Properties for locale configurations.
    cds.locales.normalization     Properties to configure how locales should be normalized.
    cds.locales.normalization.defaults boolean true Determines, if the non-normalization include list, as described in the documentation, is applied.
    cds.locales.normalization.includeList List<String>   The list of additional locales to add to the include list of non-normalized locales.
    cds.errors     Properties for error handling.
    cds.errors.extended boolean false Determines, if error messages are automatically extended with additional debug information (only for development).
    cds.errors.combined boolean true Determines, if validation error messages are collected and exceptions are thrown at the end of the Before event handler phase.
    cds.errors.stackMessages     Properties to configure how error messages from the framework are treated.
    If turned off, only framework error messages, that are explicitly localized are returned.
    Other errors are mapped to their plain HTTP error code representation.
    cds.errors.stackMessages.enabled boolean true Determines, if it is enabled.
    cds.drafts     Properties for draft-enabled entities.
    cds.drafts.cancellationTimeout Duration PT15M The maximum amount of time, since the last change, an entity instance is locked by the user who is editing its draft version.
    cds.drafts.deletionTimeout Duration PT720H The maximum amount of time a draft is kept, before it is garbage collected.
    cds.drafts.gc     Properties to configure the automatic draft garbage collection.
    cds.drafts.gc.interval Duration PT6H The interval, in which the automatic draft garbage collection is triggered.
    cds.drafts.gc.enabled boolean true Determines, if it is enabled.
    cds.query     Properties for augmentation of CQN queries.
    cds.query.limit     Properties for server-driven paging.
    cds.query.limit.default int 0 The default page size for server-driven paging.
    Setting this property to 0 or -1 disables the default page size.
    cds.query.limit.max int 1000 The maximum page size for server-driven paging.
    Setting this property to 0 or -1 disables the maximum page size.
    cds.query.implicitSorting     Properties for the implicit-sorting feature.
    cds.query.implicitSorting.enabled boolean true Determines, if it is enabled.
    cds.sql     Properties for SQL generation.
    cds.sql.supportedLocales String de,fr A comma-separated list of locales that are considered during query execution
    of localized requests. This configuration only has effect on other databases
    than SAP HANA. It only applies, when the query processing falls back to
    localized views.
    cds.sql.maxBatchSize int 1000 The JDBC batch size used for batch and bulk operations.
    cds.sql.hana     Configuration properties for an SQL generation on SAP HANA.
    cds.sql.hana.ignoreLocale boolean false If set to true, this property completely disables locale specific handling on SAP HANA.
    cds.auditLog     Properties for AuditLog configuration.
    cds.auditLog.v2     Configuration of the AuditLog V2 feature.
    cds.auditLog.v2.enabled boolean true Determines, if it is enabled.
    cds.auditLog.personalData     Configuration of the Personal Data handler.
    cds.auditLog.personalData.throwOnMissingDataSubject boolean false If set to {@code true} and the data subject is missing, a ServiceException is thrown.
    cds.auditLog.personalData.enabled boolean true Determines, if it is enabled.
    cds.auditLog.outbox     Properties to configure AuditLog usage of Outbox.
    cds.auditLog.outbox.enabled boolean true Determines, if it is enabled.
    cds.auditLog.outbox.persistent     Controls usage of the persistent Outbox if present.
    cds.auditLog.outbox.persistent.enabled boolean true Determines, if it is enabled.
    cds.outbox     Properties for Outbox configuration.
    cds.outbox.inMemory     Properties for the in-memory Outbox.
    cds.outbox.inMemory.emitDuringChangeSetContext boolean false Specifies whether the outbox emits the event during the current ChangeSetContext or afterwards.
    In case the ChangeSetContext wraps a DB transaction, it needs to be considered that
    emitted messages during the transaction can’t be rolled back on cancelled transaction.
    Messages being emitted after the transaction might get lost, after transaction has been committed successful.
    cds.outbox.inMemory.enabled boolean true Determines, if it is enabled.
    cds.outbox.persistent     Properties for the persistent Outbox.
    cds.outbox.persistent.maxAttempts int 10 Specifies the maximum number of attempts to emit a message stored in the Outbox.
    Messages that have reached the maximum number of attempts are ignored by the Outbox and need to be handled by the application.
    cds.outbox.persistent.enabled boolean true Determines, if it is enabled.