CDS Properties | capire
The following table lists all configuration properties that can be used to configure CAP Java 4.8.0. You can set them in your project's application.yml.
PropertyTypeDefault ValueDescriptioncds.environmentProperties for environments, like local development or Cloud Foundry.cds.environment.localProperties for the local environment.cds.environment.local.defaultEnvPathStringSpecification 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
application deployments can be sorted semantically by this version.cds.dataSourceProperties for the primary data source, used by the default persistence service.cds.dataSource.embeddedboolean
By default, CSV initialization only happens, if the data source is embedded (in-memory).
Possible values are:
triggers a recursive search.cds.dataSource.csv.singleChangesetboolean
imported in a separate changeset.cds.dataSource.autoConfigProperties to control the
replacement of its value, or its last access.cds.model.provider.cache.refreshTimeint
logged.cds.security.authenticationProperties for authentication in general.cds.security.authentication.modeString
Possible values are: - never: No endpoint requires authentication - model-relaxed:
Authentication is derived from @requires/@restrict, defaults to public endpoints. -
model-strict: Authentication is derived from @requires/@restrict, defaults to authenticated
endpoints. - always: All endpoints require authenticationcds.security.authentication.authenticateMetadataEndpointsboolean
protocol-adapters.cds.security.authentication.normalizeProviderTenantboolean
services (e.g. SMS, SaaSRegistry, UCL) *cds.security.authentication.internalUserAccess.enabledboolean
accessible by its creator.cds.security.authorization.draftProtection.enabledboolean
DELETE requests that don't satisfy restrictions with 403. This adds overhead, as an
additional READ request is emitted. Handles events that target single entities only.cds.security.authorization.instanceBased.rejectSelectedUnauthorizedEntity.enabledboolean
requests that don't satisfy restrictions for their _payload_. This adds overhead, as an
additional READ request is emitted after the event has been handled. In case the payload
doesn't pass the restrictions, the transaction is aborted / the request rejected.cds.security.authorization.instanceBased.checkInputData.enabledboolean
MTXs sidecar communication.cds.security.identity.exposePlansAsRolesboolean
MTXs sidecar communication.cds.security.xsuaa.enabledboolean
key can be chosen arbitrarily and is used as the user name, if the
explicitly defined. In addition it can be leveraged to split configuration across multiple
profiles.cds.security.mock.users.<key>.idStringThe ID of the mock-user.cds.security.mock.users.<key>.nameStringThe (mandatory) name of the mock-user. It's used to perform the basic authentication.cds.security.mock.users.<key>.passwordStringThe (optional) password of the mock-user. It's used to perform the basic authentication.cds.security.mock.users.<key>.tenantStringThe tenant of the mock-user.cds.security.mock.users.<key>.systemUserboolean
tenant (if provided).cds.security.mock.users.<key>.attributesMap>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.<key>.additionalMapA 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.security.mock.users.<key>.policiesListA list of AMS policies associated with the mock-user.cds.security.mock.defaultUsersEnables a list of default mock-users.cds.security.mock.defaultUsers.enabledboolean
is used as the tenant name, if the
it can be leveraged to split configuration across multiple profiles.cds.security.mock.tenants.<key>.nameStringThe (mandatory) name of the tenantcds.security.mock.tenants.<key>.featuresListThe list of enabled feature toggles for this tenant.cds.indexPageProperties for the index page.cds.indexPage.pathString
parsed and interpreted according to the OData v4 $search specification. In
mode the search string is passed through to the data store. In
search string is parsed and only passed through on parsing errors.cds.odataV4.endpointProperties of the OData V4 protocol adapter endpoint.cds.odataV4.endpoint.pathString
applies.cds.odataV2Properties for the OData V2 protocol adapter.cds.odataV2.edmxPathString
case-sensitive.cds.odataV2.searchModeString
parsed and interpreted according to the OData v4 $search specification. In
mode the search string is passed through to the data store. In
search string is parsed and only passed through on parsing errors.cds.odataV2.endpointProperties of the OData V2 protocol adapter endpoint.cds.odataV2.endpoint.pathString
applies.cds.hcqlProperties for the HCQL protocol adapter.cds.hcql.endpointProperties of the HCQL protocol adapter endpoint.cds.hcql.endpoint.pathString
tool.cds.mcp.toonFormatboolean
broker.cds.messaging.webhooks.enabledboolean
Therefore the order of these routes has significance.cds.messaging.routes.<index>.serviceStringThe target service of the route.cds.messaging.routes.<index>.eventsListThe list of events/topics, which are propagated to/from the target service.cds.messaging.servicesProperties for messaging services. The key can be chosen arbitrarily and is used as the
messaging service name, if the
be leveraged to split configuration across multiple profiles.cds.messaging.services.<key>.nameStringThe name of the messaging service.cds.messaging.services.<key>.kindStringThe kind of the messaging service. It usually reflects the corresponding service binding
type. Possible values are:
file-based-messaging this specifies the file-system path to the exchange file.cds.messaging.services.<key>.subscribePrefixStringThe string used to prefix topics when subscribing to events.cds.messaging.services.<key>.publishPrefixStringThe string used to prefix topics when publishing events.cds.messaging.services.<key>.formatStringThe message format to be assumed on subscriptions and applied when publishing. Possible
values are:
default, JMS client connections to the same messaging broker are shared.cds.messaging.services.<key>.connection.propertiesMapProperties passed to the JMS client connection. The possible keys and values depend on
the messaging service implementation.cds.messaging.services.<key>.queueProperties of the queue that is created for the messaging service.cds.messaging.services.<key>.queue.nameStringThe 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.configMapProperties 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.subscriptionsListA 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>.queue.forceListeningboolean
available.cds.messaging.services.<key>.outboxProperties to control, if and how the Outbox should be used for this messaging service.cds.messaging.services.<key>.outbox.nameString
used as fallback.cds.messaging.services.<key>.outbox.enabledboolean
outbox is used as fallback.cds.messaging.services.<key>.inbox.enabledboolean
methods.cds.multiTenancy.endpointProperties of the subscription HTTP endpoints.cds.multiTenancy.endpoint.pathString
are DEDICATED_KEY and MANAGED_KEY.cds.multiTenancy.dataSource.combinePoolsProperties 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.enabledboolean
service-manager service binding, activates the MTX features.cds.multiTenancy.sidecar.pollingIntervalDuration
datasource.cds.multiTenancy.healthCheck.intervalDuration
as default.cds.multiTenancy.provisioning.pollingIntervalDuration
Destination service.cds.multiTenancy.dependencies.portalboolean
Portal service.cds.multiTenancy.dependencies.html5AppsRepoboolean
html5-app-repo service.cds.persistenceProperties for persistence services.cds.persistence.servicesProperties for persistence services. The key can be chosen arbitrarily and is used as the
persistence service name, if the
can be leveraged to split configuration across multiple profiles.cds.persistence.services.<key>.nameStringThe name of the persistence service.cds.persistence.services.<key>.bindingStringThe name of the service binding used for this persistence service. If not set, the name is
used.cds.persistence.services.<key>.dataSourceStringThe name of the existing data source. If not set, the auto-configured data source of the
binding is used.cds.persistence.services.<key>.transactionManagerStringThe name of the existing transaction manager. If not set, the transaction manager is
automatically created.cds.persistence.services.<key>.enabledboolean
to
application service name, if the
can be leveraged to split configuration across multiple profiles.cds.application.services.<key>.nameStringThe name of the application service.cds.application.services.<key>.modelStringThe 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>.serveProperties to configure how this service is served by protocol adapters.cds.application.services.<key>.serve.ignoreboolean
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.protocolsListThe list of protocols adapters this service should be served by. By default the service
is served by all available protocol adapters. Possible values are:
These properties override the more general properties
appended to the protocol adapter's base path.cds.application.services.<key>.serve.endpoints.<index>.protocolStringThe protocol adapter that serves this endpoint. Possible values are:
application service name, if the
can be leveraged to split configuration across multiple profiles.cds.remote.services.<key>.nameStringThe name of the remote service.cds.remote.services.<key>.modelStringThe 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>.typeString
suffix). It defaults to the qualified name of the model definition.cds.remote.services.<key>.http.headersMapA map of headers and their values, to be added to every outgoing request.cds.remote.services.<key>.http.queriesMapA map of query parameters and their values, to be added to every outgoing request.cds.remote.services.<key>.http.csrfProperties to configure CSRF token requests for this service.cds.remote.services.<key>.http.csrf.enabledboolean
accessor.cds.remote.services.<key>.destination.propertiesMapA map of generic destination properties supported by SAP Cloud SDK. These properties are
used to dynamically build a destination.cds.remote.services.<key>.destination.retrievalStrategyStringThe 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.tokenExchangeStrategyStringThe 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.remote.services.<key>.bindingProperties to configure a service binding for this remote service. *cds.remote.services.<key>.binding.nameStringThe name of the service binding which provides the credentials.cds.remote.services.<key>.binding.onBehalfOfString
supported options depend on the type of service binding that is used. Possible options
are:
applied.cds.locales.normalization.includeListListThe list of additional locales to add to the include list of non-normalized locales.cds.errorsProperties for error handling.cds.errors.extendedboolean
(only for development).cds.errors.preferServiceExceptionboolean
only framework error messages, that are explicitly localized are returned. Other errors are
mapped to their plain HTTP error code representation.cds.errors.stackMessages.enabledboolean
who is editing its draft version.cds.drafts.deletionTimeoutDuration
queries with JOINs between databases tables/views of active instances and databases tables of
draft instances can occur. If set to
instances already and therefore no longer during activation.cds.drafts.postActiveboolean
IsActiveEntity value creates an active entity instead of a draft. The draft-enabled entity
must also have a draft new action defined.cds.drafts.gcProperties to configure the automatic draft garbage collection.cds.drafts.gc.intervalDuration
tenants.cds.drafts.gc.enabledboolean
the default page size.cds.query.limit.maxint
the maximum page size.cds.query.limit.reliablePagingProperties for reliable server-driven paging, based on last row of ordered result.cds.query.limit.reliablePaging.enabledboolean
fuzzy search. The value can be in the inclusive range of 0 to 1, where 1 means no
fuzziness (exact search).cds.sql.inlineCountConfiguration properties for an SQL generation related to inline count.cds.sql.inlineCount.modeString
in
used as fallback.cds.auditLog.outbox.enabledboolean
whether all tenants will share a common http connection pool instead of having a dedicated
http connection pool for each tenant.cds.auditLog.connectionPool.combinePools.enabledboolean
afterwards. In case the
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.enabledboolean
database locks are used. Only enable status locks, if all deployed instances are already
using @sap/cds-dk >= 9 and CAP Java >= 4.5.0 and have already set
other instances again.cds.outbox.persistent.statusLock.enabledboolean
service name, if the
leveraged to split configuration across multiple profiles.cds.outbox.services.<key>.nameStringThe name of the Outbox service.cds.outbox.services.<key>.maxAttemptsint
that have reached the maximum number of attempts are ignored by the Outbox and need to be
handled by the application.cds.outbox.services.<key>.threadsint
only applies to outbox instances configured as
configured as
sequentially published exactly in the order they were stored in the Outbox. If set to
application deployments.cds.outbox.services.<key>.enabledboolean
"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.environment.productionProperties for the production environment.cds.environment.production.profileStringcloudThe Spring Boot profile to attach production-optimized default property values to.cds.environment.production.enabledbooleanDetermines, if it is enabled.cds.environment.deploymentProperties for the specific application deployment.cds.environment.deployment.versionStringThe version of the application deployment in format x.y.z-qualifier. It is expected, thatapplication deployments can be sorted semantically by this version.cds.dataSourceProperties for the primary data source, used by the default persistence service.cds.dataSource.embeddedboolean
falseDetermines, if the data source is considered embedded (in-memory).cds.dataSource.bindingStringThe name of the primary service binding, used by the default persistence service.cds.dataSource.csvProperties for CSV initialization.cds.dataSource.csv.initializationModeStringembeddedDetermines 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.csv.fileSuffixString.csvThe file suffix of CSV files.cds.dataSource.csv.pathsListdb/data/**, db/csv/**, ../db/data/**, ../db/csv/**The file-system paths to search for CSV files in. Using /** at the end of the pathtriggers a recursive search.cds.dataSource.csv.singleChangesetboolean
falseEnables import of all CSV files in a single changeset. By default, each CSV file isimported in a separate changeset.cds.dataSource.autoConfigProperties to control the
DataSource auto-configuration from service bindings.cds.dataSource.autoConfig.enabledbooleantrueDetermines, if it is enabled.cds.modelProperties for the CDS model.cds.model.csnPathStringedmx/csn.jsonThe resource path to the csn.json file.cds.model.includeUiAnnotationsbooleanfalseDetermines, if UI annotations are included in the model.cds.model.providerThe model provider configuration.cds.model.provider.urlStringThe URL of the Model Provider.cds.model.provider.extensibilitybooleantrueAssume that dynamic models contain tenant-specific extensions.cds.model.provider.togglesbooleantrueAssume that dynamic models are feature-toggle specific.cds.model.provider.cacheProperties for the CDS model and EDMX metadata caches.cds.model.provider.cache.maxSizeint20The number of entries in the CDS model and EDMX metadata caches.cds.model.provider.cache.expirationTimeint3600The lifetime of an entry in seconds after the entry's creation, the most recentreplacement of its value, or its last access.cds.model.provider.cache.refreshTimeint
60The time in seconds after which a cached entry is refreshed.cds.securityProperties for security configurations of services and endpoints.cds.security.logPotentiallySensitivebooleanfalseDetermines, if potentially sensitive data, for example values in CQN queries, might belogged.cds.security.authenticationProperties for authentication in general.cds.security.authentication.modeString
model-strictDetermines the mode that is used when authenticating endpoints of protocol-adapters.Possible values are: - never: No endpoint requires authentication - model-relaxed:
Authentication is derived from @requires/@restrict, defaults to public endpoints. -
model-strict: Authentication is derived from @requires/@restrict, defaults to authenticated
endpoints. - always: All endpoints require authenticationcds.security.authentication.authenticateMetadataEndpointsboolean
trueDetermines, if OData $metadata endpoints enforce authentication.cds.security.authentication.authenticateUnknownEndpointsbooleantrueDetermines, if security configurations enforce authentication for endpoints not managed byprotocol-adapters.cds.security.authentication.normalizeProviderTenantboolean
trueDetermines, if the provider tenant is normalized to null.cds.security.authentication.clientCertificateHeaderStringX-Forwarded-Client-CertHeader name for forwarded client certificates.cds.security.authentication.authConfigProperties for the Spring security auto-configuration.cds.security.authentication.authConfig.enabledbooleantrueDetermines, if it is enabled.cds.security.authentication.internalUserAccessDetermines of internal users are allowed to access endpoints offered for callbacks by reuseservices (e.g. SMS, SaaSRegistry, UCL) *cds.security.authentication.internalUserAccess.enabledboolean
trueDetermines, if it is enabled.cds.security.authorization.enabledbooleantrueDetermines, if it is enabled.cds.security.authorization.draftProtectionProperties to control the protection of drafts. If a draft is protected, it is onlyaccessible by its creator.cds.security.authorization.draftProtection.enabledboolean
trueDetermines, if it is enabled.cds.security.authorization.deepDetermines, if the deep authorization checks are enforcedcds.security.authorization.deep.enabledbooleantrueDetermines, if it is enabled.cds.security.authorization.instanceBasedProperties for instance-based authorization conditions.cds.security.authorization.instanceBased.rejectSelectedUnauthorizedEntityEnables additional instance-based features for entity selections, e.g. rejects UPDATE andDELETE requests that don't satisfy restrictions with 403. This adds overhead, as an
additional READ request is emitted. Handles events that target single entities only.cds.security.authorization.instanceBased.rejectSelectedUnauthorizedEntity.enabledboolean
trueDetermines, if it is enabled.cds.security.authorization.instanceBased.checkInputDataEnables additional instance-based features for payloads, e.g. for UPDATE and CREATErequests that don't satisfy restrictions for their _payload_. This adds overhead, as an
additional READ request is emitted after the event has been handled. In case the payload
doesn't pass the restrictions, the transaction is aborted / the request rejected.cds.security.authorization.instanceBased.checkInputData.enabledboolean
trueDetermines, if it is enabled.cds.security.identityProperties for authentication based on Identity Service (IAS).cds.security.identity.bindingStringThe name of the IAS service binding, used for the identity security auto-configuration andMTXs sidecar communication.cds.security.identity.exposePlansAsRolesboolean
trueDetermines, if service plans are mapped to roles in the UserInfo object.cds.security.identity.enabledbooleantrueDetermines, if it is enabled.cds.security.xsuaaProperties for authentication based on XSUAA.cds.security.xsuaa.bindingStringThe name of the XSUAA service binding, used for the XSUAA security auto-configuration andMTXs sidecar communication.cds.security.xsuaa.enabledboolean
trueDetermines, if it is enabled.cds.security.mockProperties for authentication based on mock-users.cds.security.mock.enabledbooleantrueDetermines, if it is enabled.cds.security.mock.usersThe mock-users, used for basic authentication in local development and test scenarios. Thekey can be chosen arbitrarily and is used as the user name, if the
name property is notexplicitly defined. In addition it can be leveraged to split configuration across multiple
profiles.cds.security.mock.users.<key>.idStringThe ID of the mock-user.cds.security.mock.users.<key>.nameStringThe (mandatory) name of the mock-user. It's used to perform the basic authentication.cds.security.mock.users.<key>.passwordStringThe (optional) password of the mock-user. It's used to perform the basic authentication.cds.security.mock.users.<key>.tenantStringThe tenant of the mock-user.cds.security.mock.users.<key>.systemUserboolean
falseDetermines, if this mock-user is treated as a system user.cds.security.mock.users.<key>.privilegedbooleanfalseDetermines, if this mock-user is treated as the privileged user.cds.security.mock.users.<key>.internalUserbooleanfalseDetermines, if this mock-user is treated as the internal user.cds.security.mock.users.<key>.rolesListThe list of roles, that are assigned to this mock-user.cds.security.mock.users.<key>.featuresListThe list of enabled feature toggles for this user. If set, it overrules features of thetenant (if provided).cds.security.mock.users.<key>.attributesMap>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.<key>.additionalMapA 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.security.mock.users.<key>.policiesListA list of AMS policies associated with the mock-user.cds.security.mock.defaultUsersEnables a list of default mock-users.cds.security.mock.defaultUsers.enabledboolean
trueDetermines, if it is enabled.cds.security.mock.tenantsThe tenants in local development and test scenarios. The key can be chosen arbitrarily andis used as the tenant name, if the
name property is not explicitly defined. In additionit can be leveraged to split configuration across multiple profiles.cds.security.mock.tenants.<key>.nameStringThe (mandatory) name of the tenantcds.security.mock.tenants.<key>.featuresListThe list of enabled feature toggles for this tenant.cds.indexPageProperties for the index page.cds.indexPage.pathString
/The base-path of the adapter endpoint.cds.indexPage.enabledbooleantrueDetermines, if it is enabled.cds.odataV4Properties for the OData V4 protocol adapter.cds.odataV4.contextAbsoluteUrlbooleanfalseDetermines, if URLs in the @odata.context response annotation are absolute.cds.odataV4.edmxPathStringedmx/v4The JAR resource path to search for OData V4 EDMX files.cds.odataV4.searchModeStringodata-lenientDefines the handling of the $search query option. In odata-strict mode the search string isparsed and interpreted according to the OData v4 $search specification. In
pass-throughmode the search string is passed through to the data store. In
odata-lenient mode thesearch string is parsed and only passed through on parsing errors.cds.odataV4.endpointProperties of the OData V4 protocol adapter endpoint.cds.odataV4.endpoint.pathString
/odata/v4The base-path of the adapter endpoint.cds.odataV4.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.odataV4.fioriPreviewProperties for the Fiori Preview on the index page.cds.odataV4.fioriPreview.enabledbooleantrueDetermines, if it is enabled.cds.odataV4.fioriPreview.ui5Properties for the UI5 dependency used for the Fiori Preview.cds.odataV4.fioriPreview.ui5.versionStringcds.odataV4.fioriPreview.ui5.hostStringhttps://sapui5.hana.ondemand.comcds.odataV4.lazyI18nDetermines, if localization is applied to the EDMX lazily, saving memory resources.cds.odataV4.lazyI18n.enabledbooleantrueDetermines, if it is enabled.cds.odataV4.batchProperties for OData batch requests.cds.odataV4.batch.maxRequestslong-1Defines the maximum number of requests within OData batch requests. By default, no limitapplies.cds.odataV2Properties for the OData V2 protocol adapter.cds.odataV2.edmxPathString
edmx/v2The JAR resource path to search for OData V2 EDMX files.cds.odataV2.caseSensitiveFilterbooleantrueDetermines whether OData functions 'substringof', 'startswith' and 'endswith' arecase-sensitive.cds.odataV2.searchModeString
odata-lenientDefines the handling of the $search query option. In odata-strict mode the search string isparsed and interpreted according to the OData v4 $search specification. In
pass-throughmode the search string is passed through to the data store. In
odata-lenient mode thesearch string is parsed and only passed through on parsing errors.cds.odataV2.endpointProperties of the OData V2 protocol adapter endpoint.cds.odataV2.endpoint.pathString
/odata/v2The base-path of the adapter endpoint.cds.odataV2.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.odataV2.batchProperties for OData batch requests.cds.odataV2.batch.maxRequestslong-1Defines the maximum number of requests within OData batch requests. By default, no limitapplies.cds.hcqlProperties for the HCQL protocol adapter.cds.hcql.endpointProperties of the HCQL protocol adapter endpoint.cds.hcql.endpoint.pathString
/hcqlThe base-path of the adapter endpoint.cds.hcql.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.mcpProperties for the MCP protocol adapter.cds.mcp.queryPerEntityToolbooleanfalseTrue, if the MCP server should offer a query tool per entity, instead of one generic querytool.cds.mcp.toonFormatboolean
trueTrue, if the MCP server should use TOON format for tool output, otherwise JSON.cds.mcp.endpointProperties of the MCP protocol adapter endpoint.cds.mcp.endpoint.pathString/mcpThe base-path of the adapter endpoint.cds.mcp.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.mcp.autoConfigProperties for auto-configuration of local MCP clients.cds.mcp.autoConfig.hostStringlocalhostThe MCP server host.cds.mcp.autoConfig.portIntegerThe MCP server port.cds.mcp.autoConfig.userStringprivilegedThe mock-user to use.cds.mcp.autoConfig.passwordStringThe mock-user's password.cds.mcp.autoConfig.enabledbooleanfalseDetermines, if it is enabled.cds.messagingProperties for messaging services.cds.messaging.webhooksProperties for receiving messages through the webhook.cds.messaging.webhooks.urlStringThe application webhook URL. This URL is used when registering the webhook at the messagebroker.cds.messaging.webhooks.enabledboolean
trueDetermines, if it is enabled.cds.messaging.routesThe 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>.serviceStringThe target service of the route.cds.messaging.routes.<index>.eventsListThe list of events/topics, which are propagated to/from the target service.cds.messaging.servicesProperties 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 canbe leveraged to split configuration across multiple profiles.cds.messaging.services.<key>.nameStringThe name of the messaging service.cds.messaging.services.<key>.kindStringThe kind of the messaging service. It usually reflects the corresponding service binding
type. Possible values are:
local-messaging, file-based-messaging,enterprise-messaging, message-queuing, redis-pubsub, kafka-channel-messaging.cds.messaging.services.<key>.bindingStringThe name of the service binding used for this messaging service. In case offile-based-messaging this specifies the file-system path to the exchange file.cds.messaging.services.<key>.subscribePrefixStringThe string used to prefix topics when subscribing to events.cds.messaging.services.<key>.publishPrefixStringThe string used to prefix topics when publishing events.cds.messaging.services.<key>.formatStringThe message format to be assumed on subscriptions and applied when publishing. Possible
values are:
cloudeventscds.messaging.services.<key>.enabledbooleantrueDetermines, if it is enabled.cds.messaging.services.<key>.connectionProperties for the JMS client connection.cds.messaging.services.<key>.connection.dedicatedbooleanfalseDetermines, if this messaging service uses its own dedicated JMS client connection. Bydefault, JMS client connections to the same messaging broker are shared.cds.messaging.services.<key>.connection.propertiesMapProperties passed to the JMS client connection. The possible keys and values depend on
the messaging service implementation.cds.messaging.services.<key>.queueProperties of the queue that is created for the messaging service.cds.messaging.services.<key>.queue.nameStringThe 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.configMapProperties 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.subscriptionsListA 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>.queue.forceListeningboolean
falseSpecifies whether a queue listener should be connected even if no subscription isavailable.cds.messaging.services.<key>.outboxProperties to control, if and how the Outbox should be used for this messaging service.cds.messaging.services.<key>.outbox.nameString
DefaultOutboxOrderedThe name of the outbox service to use. If not available or set, the in-memory outbox isused as fallback.cds.messaging.services.<key>.outbox.enabledboolean
trueDetermines, if it is enabled.cds.messaging.services.<key>.inboxProperties to control, if and how the Inbox should be used for this messaging service.cds.messaging.services.<key>.inbox.nameStringDefaultOutboxOrderedThe name of the outbox service to use as inbox. If not available or set, the in-memoryoutbox is used as fallback.cds.messaging.services.<key>.inbox.enabledboolean
falseDetermines, if it is enabled.cds.multiTenancyProperties for multitenancy and extensibility.cds.multiTenancy.componentScanStringPackage to be included in the component scan of the Subscribe, Deploy and Unsubscribe mainmethods.cds.multiTenancy.endpointProperties of the subscription HTTP endpoints.cds.multiTenancy.endpoint.pathString
/mt/v1.0/subscriptionsThe base-path of the adapter endpoint.cds.multiTenancy.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.multiTenancy.subscriptionManagerProperties for the subscription manager service.cds.multiTenancy.subscriptionManager.endpointProperties of the subscription HTTP endpoint for Subscription Manager Service (SMS).cds.multiTenancy.subscriptionManager.endpoint.pathString/mt/sms/subscriptionsThe base-path of the adapter endpoint.cds.multiTenancy.subscriptionManager.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.multiTenancy.dataSourceProperties for the multitenant aware datasource.cds.multiTenancy.dataSource.poolStringhikariPool to use for the multitenant-aware datasource. Possible values are: hikari, tomcat.cds.multiTenancy.dataSource.hanaEncryptionModeStringOptional tenant encryption mode used by the HANA database for new tenants. Possible valuesare DEDICATED_KEY and MANAGED_KEY.cds.multiTenancy.dataSource.combinePoolsProperties 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.enabledboolean
falseDetermines, if it is enabled.cds.multiTenancy.serviceManagerProperties for the service-manager client.cds.multiTenancy.serviceManager.cacheRefreshIntervalDurationPT20MThe cache refresh interval (as Duration).cds.multiTenancy.serviceManager.tokenRetrievalTimeoutDurationPT30SThe oauth token retrieval timeout (as Duration).cds.multiTenancy.hanaMtServiceProperties for the Hana multi tenant servicecds.multiTenancy.hanaMtService.tokenRetrievalTimeoutDurationPT30SThe oauth token retrieval timeout (as Duration).cds.multiTenancy.hanaMtService.hanaTenantPrefixStringOptional prefix for HANA tenant id calculation as hash from -id>cds.multiTenancy.securityProperties for authorization.cds.multiTenancy.security.subscriptionScopeStringmtcallbackThe scope by which the subscription endpoints are authorized.cds.multiTenancy.sidecarProperties for the MTX sidecar client.cds.multiTenancy.sidecar.urlStringThe URL of the MTX sidecar. Setting this property, in combination with a presentservice-manager service binding, activates the MTX features.cds.multiTenancy.sidecar.pollingIntervalDuration
PT5SSpecifies the time interval between polling the status of the lifecycle operation.cds.multiTenancy.sidecar.pollingTimeoutDurationPT20MSpecifies the maximum waiting time for the operation to finish.cds.multiTenancy.appUiProperties for the URL to the application's UI endpoints.cds.multiTenancy.appUi.urlStringThe URL to the application's UI, used for the 'Go to Application' link.cds.multiTenancy.appUi.tenantSeparatorStringThe separator for the tenant in the URL. Possible values are: ., -.cds.multiTenancy.healthCheckProperties for health check of the multitenant-aware datasource.cds.multiTenancy.healthCheck.healthCheckStatementStringThe statement that is used when executing a health check of the multitenant-awaredatasource.cds.multiTenancy.healthCheck.intervalDuration
PT10SThe time a health check result is cached and no further health checks are performed.cds.multiTenancy.healthCheck.enabledbooleantrueDetermines, if it is enabled.cds.multiTenancy.liquibaseProperties for DB lifecycle management via Liquibase.cds.multiTenancy.liquibase.changeLogString/db/changelog/db.changelog-master.yamlThe location of the master Liquibase file.cds.multiTenancy.liquibase.contextsStringOptional: Comma separated list of active contexts.cds.multiTenancy.provisioningProperties for the ProvisioningService from @sap/cds-mtxs.cds.multiTenancy.provisioning.urlStringURL of the provisioning service. If not specified, cds.multitenancy.sidecar.url is takenas default.cds.multiTenancy.provisioning.pollingIntervalDuration
PT5SSpecifies the time interval between polling the status of the provisioning operation.cds.multiTenancy.provisioning.pollingTimeoutDurationPT10MSpecifies the maximum waiting time for the provisioning operation to finish.cds.multiTenancy.mockProperties for the SQLite-based MTX mock for local development and testing.cds.multiTenancy.mock.sqliteDirectoryStringPath to the directory to start looking for SQLite database files.cds.multiTenancy.mock.enabledbooleanDetermines, if it is enabled.cds.multiTenancy.dependenciesProperties for automatically reported subscription dependencies.cds.multiTenancy.dependencies.destinationbooleanfalseIndicates if a subscription dependency should be registered for a bound service instance ofDestination service.cds.multiTenancy.dependencies.portalboolean
trueIndicates if a subscription dependency should be registered for a bound service instance ofPortal service.cds.multiTenancy.dependencies.html5AppsRepoboolean
trueIndicates if a subscription dependency should be registered for a bound service instance ofhtml5-app-repo service.cds.persistenceProperties for persistence services.cds.persistence.servicesProperties for persistence services. The key can be chosen arbitrarily and is used as the
persistence service name, if the
name property is not explicitly defined. In addition itcan be leveraged to split configuration across multiple profiles.cds.persistence.services.<key>.nameStringThe name of the persistence service.cds.persistence.services.<key>.bindingStringThe name of the service binding used for this persistence service. If not set, the name is
used.cds.persistence.services.<key>.dataSourceStringThe name of the existing data source. If not set, the auto-configured data source of the
binding is used.cds.persistence.services.<key>.transactionManagerStringThe name of the existing transaction manager. If not set, the transaction manager is
automatically created.cds.persistence.services.<key>.enabledboolean
trueDetermines, if it is enabled.cds.persistence.changeSetProperties for ChangeSetContexts.cds.persistence.changeSet.enforceTransactionalbooleantrueDetermines, if a ChangeSetContext should be always marked as transactional. Setting thisto
false allows avoiding transactions for Select queries.cds.applicationProperties for application services.cds.application.servicesProperties for application services. The key can be chosen arbitrarily and is used as theapplication service name, if the
name property is not explicitly defined. In addition itcan be leveraged to split configuration across multiple profiles.cds.application.services.<key>.nameStringThe name of the application service.cds.application.services.<key>.modelStringThe 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>.serveProperties to configure how this service is served by protocol adapters.cds.application.services.<key>.serve.ignoreboolean
falseDetermines, if the service is ignored by protocol adapters.cds.application.services.<key>.serve.pathStringThe path this service should be served at by protocol adapters. The path is appended tothe 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.protocolsListThe 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.endpointsProperties 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>.pathStringThe path, this endpoint should be served at by the protocol adapter. The path isappended to the protocol adapter's base path.cds.application.services.<key>.serve.endpoints.<index>.protocolStringThe protocol adapter that serves this endpoint. Possible values are:
odata-v4,odata-v2.cds.remoteProperties for remote services.cds.remote.servicesProperties for remote services. The key can be chosen arbitrarily and is used as theapplication service name, if the
name property is not explicitly defined. In addition itcan be leveraged to split configuration across multiple profiles.cds.remote.services.<key>.nameStringThe name of the remote service.cds.remote.services.<key>.modelStringThe 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>.typeString
odata-v4The protocol type of the destination. Possible values are: odata-v4, odata-v2 andhcql.cds.remote.services.<key>.httpProperties to configure http requests for this remote service.cds.remote.services.<key>.http.suffixStringA suffix for the remote service, that is appended to the remote service's URL.cds.remote.services.<key>.http.serviceStringThe name of the modelled service, that is appended to the remote service's URL (after thesuffix). It defaults to the qualified name of the model definition.cds.remote.services.<key>.http.headersMapA map of headers and their values, to be added to every outgoing request.cds.remote.services.<key>.http.queriesMapA map of query parameters and their values, to be added to every outgoing request.cds.remote.services.<key>.http.csrfProperties to configure CSRF token requests for this service.cds.remote.services.<key>.http.csrf.enabledboolean
falseDetermines, if it is enabled.cds.remote.services.<key>.destinationProperties to configure a remote destination for this remote service.cds.remote.services.<key>.destination.nameStringThe name of the destination in the destination service or SAP Cloud SDK destinationaccessor.cds.remote.services.<key>.destination.propertiesMapA map of generic destination properties supported by SAP Cloud SDK. These properties are
used to dynamically build a destination.cds.remote.services.<key>.destination.retrievalStrategyStringThe 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.tokenExchangeStrategyStringThe 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.remote.services.<key>.bindingProperties to configure a service binding for this remote service. *cds.remote.services.<key>.binding.nameStringThe name of the service binding which provides the credentials.cds.remote.services.<key>.binding.onBehalfOfString
currentUserDetermines the user and tenant context that is used. Possible values are: currentUser,systemUser and systemUserProvidercds.remote.services.<key>.binding.optionsMapA map of additional options that are used to enrich the used service binding. Thesupported options depend on the type of service binding that is used. Possible options
are:
url for service bindings of type xsuaacds.localesProperties for locale configurations.cds.locales.normalizationProperties to configure how locales should be normalized.cds.locales.normalization.defaultsbooleantrueDetermines, if the non-normalization include list, as described in the documentation, isapplied.cds.locales.normalization.includeListListThe list of additional locales to add to the include list of non-normalized locales.cds.errorsProperties for error handling.cds.errors.extendedboolean
falseDetermines, if error messages are automatically extended with additional debug information(only for development).cds.errors.preferServiceExceptionboolean
falseDetermines, if CDS4j exceptions are replaced with corresponding ServiceException.cds.errors.stackMessagesProperties 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.enabledboolean
trueDetermines, if it is enabled.cds.errors.defaultTranslationsProperties to configure how default translations from the framework are used.cds.errors.defaultTranslations.enabledbooleantrueDetermines, if it is enabled.cds.draftsProperties for draft-enabled entities.cds.drafts.cancellationTimeoutDurationPT15MThe maximum amount of time, since the last change, an entity instance is locked by the userwho is editing its draft version.cds.drafts.deletionTimeoutDuration
PT720HThe maximum amount of time a draft is kept, before it is garbage collected.cds.drafts.persistenceStringjointDetermines the persistence mode for draft-enabled entities. In case of joint persistencequeries with JOINs between databases tables/views of active instances and databases tables of
draft instances can occur. If set to
split such queries are avoided. Possible values are:joint, split.cds.drafts.enforceReadonlybooleanfalseDetermines, if @readonly, @Core.Computed and similar annotations are enforced on draftinstances already and therefore no longer during activation.cds.drafts.postActiveboolean
falseWhen enabled, a plain POST request on a draft-enabled entity without an explicitIsActiveEntity value creates an active entity instead of a draft. The draft-enabled entity
must also have a draft new action defined.cds.drafts.gcProperties to configure the automatic draft garbage collection.cds.drafts.gc.intervalDuration
PT6HThe interval, in which the automatic draft garbage collection is triggered.cds.drafts.gc.maxPauseDurationPT5MThe max duration the draft GC timer task pauses in between processing GCs of differenttenants.cds.drafts.gc.enabledboolean
trueDetermines, if it is enabled.cds.queryProperties for augmentation of CQN queries.cds.query.limitProperties for server-driven paging.cds.query.limit.defaultint0The default page size for server-driven paging. Setting this property to 0 or -1 disablesthe default page size.cds.query.limit.maxint
1000The maximum page size for server-driven paging. Setting this property to 0 or -1 disablesthe maximum page size.cds.query.limit.reliablePagingProperties for reliable server-driven paging, based on last row of ordered result.cds.query.limit.reliablePaging.enabledboolean
falseDetermines, if it is enabled.cds.query.implicitSortingProperties for the implicit-sorting feature.cds.query.implicitSorting.enabledbooleantrueDetermines, if it is enabled.cds.query.restrictionsProperties for query restrictions.cds.query.restrictions.enabledbooleanfalseDetermines, if it is enabled.cds.query.restrictions.expandProperties for expand query restrictions.cds.query.restrictions.expand.maxLevelsint-1The default limit on how many levels of expands are allowed. -1 means no restriction.cds.query.restrictions.expand.enabledbooleantrueDetermines, if it is enabled.cds.query.restrictions.filterProperties for filter query restrictions.cds.query.restrictions.filter.enabledbooleantrueDetermines, if it is enabled.cds.sqlProperties for SQL generation. *cds.sql.maxBatchSizeint1000The JDBC batch size used for batch and bulk operations.cds.sql.hanaConfiguration properties for an SQL generation on SAP HANA.cds.sql.hana.ignoreLocalebooleanfalseIf set to true, this property completely disables locale specific handling on SAP HANA.cds.sql.hana.searchProperties for search on SAP HANA Cloud.cds.sql.hana.search.fuzzybooleanfalseIf set to true, fuzzy search on SAP HANA Cloud is activated. Requirescds.sql.hana.optimizationMode: hexcds.sql.hana.search.fuzzinessThresholdBigDecimal0.8The least level of fuzziness, searchable elements need to have to be considered in afuzzy search. The value can be in the inclusive range of 0 to 1, where 1 means no
fuzziness (exact search).cds.sql.inlineCountConfiguration properties for an SQL generation related to inline count.cds.sql.inlineCount.modeString
autoSets the inline-count mode. Possible values are: auto, window-function and querycds.sql.toOnePathConfiguration properties for to-one path expressions.cds.sql.toOnePath.modeStringalways-joinSets the to-one path mode. Possible values are: always-join (default) and optimize. Inalways-join mode, the SQL generation always generates a join for to-one path expressions,in
optimize mode joins are avoided if a FK column can be selected instead.cds.auditLogProperties for AuditLog configuration. *cds.auditLog.v2Configuration of the AuditLog V2 feature.cds.auditLog.v2.enabledbooleantrueDetermines, if it is enabled.cds.auditLog.personalDataConfiguration of the Personal Data handler.cds.auditLog.personalData.throwOnMissingDataSubjectbooleantrueIf set to {@code true} and the data subject is missing, a ServiceException is thrown.cds.auditLog.personalData.enabledbooleantrueDetermines, if it is enabled.cds.auditLog.personalData.logReadIf set to {@code true}, audit logging of access to sensitive personal data is enabled.cds.auditLog.personalData.logRead.enabledbooleantrueDetermines, if it is enabled.cds.auditLog.outboxProperties to configure AuditLog usage of Outbox.cds.auditLog.outbox.nameStringDefaultOutboxUnorderedThe name of the outbox service to use. If not available or set, the in-memory outbox isused as fallback.cds.auditLog.outbox.enabledboolean
trueDetermines, if it is enabled.cds.auditLog.connectionPoolProperties to configure the HTTP connection pool for AuditLog usage.cds.auditLog.connectionPool.maxConnectionsInteger200The max amount of connections in the pool.cds.auditLog.connectionPool.maxConnectionsPerRouteInteger20The max amount of connections from the pool per routecds.auditLog.connectionPool.timeoutDurationPT1MThe threshold for connect timeout, socket timeout and connection request timeout.cds.auditLog.connectionPool.combinePoolsProperties to control how the http connection pools are maintained. This allows to configure,whether all tenants will share a common http connection pool instead of having a dedicated
http connection pool for each tenant.cds.auditLog.connectionPool.combinePools.enabledboolean
trueDetermines, if it is enabled.cds.outboxProperties for Outbox configuration. *cds.outbox.inMemoryProperties for the in-memory Outbox.cds.outbox.inMemory.emitDuringChangeSetContextbooleanfalseSpecifies whether the outbox emits the event during the current ChangeSetContext orafterwards. In case the
ChangeSetContext wraps a DB transaction, it needs to beconsidered 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.enabledboolean
trueDetermines, if it is enabled.cds.outbox.persistentProperties for the persistent Outbox.cds.outbox.persistent.enabledbooleantrueDetermines, if it is enabled.cds.outbox.persistent.statusLockProperties to configure the locking strategy using a status column. By default row-leveldatabase locks are used. Only enable status locks, if all deployed instances are already
using @sap/cds-dk >= 9 and CAP Java >= 4.5.0 and have already set
cds.outbox.persistent.scheduler.enabled to truecds.outbox.persistent.statusLock.timeoutDurationPT1HThe timeout, after which a message with status PROCESSING is considered for processing byother instances again.cds.outbox.persistent.statusLock.enabledboolean
falseDetermines, if it is enabled.cds.outbox.persistent.schedulerProperties for the task-based outbox collector.cds.outbox.persistent.scheduler.enabledbooleantrueDetermines, if it is enabled.cds.outbox.persistent.scheduler.allTenantsTaskProperties to configure regular iterations over outbox tables of all tenants.cds.outbox.persistent.scheduler.allTenantsTask.startDelayDurationPT30SThe time to wait after startup, before triggering this task for the first time.cds.outbox.persistent.scheduler.allTenantsTask.intervalDurationPT2HThe time to wait between executions of this task.cds.outbox.persistent.scheduler.allTenantsTask.spreadTimeDurationPT15MThe time span over which checks of individual tenants are randomly distributed.cds.outbox.persistent.scheduler.allTenantsTask.enabledbooleanfalseDetermines, if it is enabled.cds.outbox.servicesProperties for Outbox services. The key can be chosen arbitrarily and is used as the outboxservice name, if the
name property is not explicitly defined. In addition it can beleveraged to split configuration across multiple profiles.cds.outbox.services.<key>.nameStringThe name of the Outbox service.cds.outbox.services.<key>.maxAttemptsint
10Specifies the maximum number of attempts to emit a message stored in the Outbox. Messagesthat have reached the maximum number of attempts are ignored by the Outbox and need to be
handled by the application.cds.outbox.services.<key>.threadsint
2Determines the size of the thread pool, used to process outbox tasks. This configurationonly applies to outbox instances configured as
ordered: false. For outbox instancesconfigured as
ordered: true only one thread is used.cds.outbox.services.<key>.orderedbooleantrueControls how messages are published by the outbox. If set to true, the messages aresequentially published exactly in the order they were stored in the Outbox. If set to
false, the messages are allowed to be published in random order and in parallel.cds.outbox.services.<key>.observablebooleantrueControls whether the outbox records telemetry information for observability purposes.cds.outbox.services.<key>.checkVersionbooleantrueDetermines, if message versions are checked to avoid processing newer messages in olderapplication deployments.cds.outbox.services.<key>.enabledboolean
trueDetermines, if it is enabled.cds.uclProperties for the unified customer landscape.cds.ucl.endpointProperties of the tenant mapping HTTP endpoint for Unified Customer Landscape (UCL) service.cds.ucl.endpoint.pathStringucl/spii/v1/tenantMappingsThe base-path of the adapter endpoint.cds.ucl.endpoint.enabledbooleantrueDetermines, if it is enabled.cds.ucl.x509Properties for the certificate validation of the Unified Customer Landscape (UCL) service.cds.ucl.x509.certIssuerStringIssuer of the certificate used for client certificate validation.cds.ucl.x509.certSubjectStringSubject of the certificate used for client certificate validation.