PackagePackagetypeA library you install and call yourself.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

com.sap.cds:cds-services-bom

The Maven bill of materials for CAP Java, pinning every com.sap.cds module in a release, from the API and core runtime to the Spring Boot starters and the CQN engine, to the same version.

com.sap.cds:cds-services-bom is the Maven bill of materials for CAP Java. Importing it into a project's dependencyManagement keeps the version of every com.sap.cds module in a release in sync, so the group's modules do not have to be pinned one by one. It covers the interface custom code compiles against, com.sap.cds:cds-services-api, and the mandatory core runtime, com.sap.cds:cds-services-impl, the application frameworks com.sap.cds:cds-framework-spring-boot and com.sap.cds:cds-framework-plain, the starter bundles com.sap.cds:cds-starter-spring-boot, com.sap.cds:cds-starter-cloudfoundry and com.sap.cds:cds-starter-k8s, and the cds4j-* modules that make up the CQN execution engine, of which com.sap.cds:cds4j-api is the one custom code compiles against. None of these are separate entries here; this one entry describes the release as a whole. It stops at the Java stack: @sap/cds is the Node.js runtime for the same CDS model, and the compiler a CAP Java build runs still comes from the Node.js package @sap/cds-dk.

Facts

LicenceSAP DEVELOPER LICENSE AGREEMENT for CAP

Where it sits

Lives in
Provides
AuthorizationCAPAuthorizationcapabilityDeciding who may read or change what, at service, entity and instance level — role checks, forwarded user context, and restrictions evaluated as query filters rather than after the fact.Input validationCAPInput validationcapabilityRejecting bad input before it reaches the database. While this can be done manually inside a handler, there are solutions in place to derive type, range, enum and mandatory checks from the model definitions.Error handlingCAPError handlingcapabilityTurning a failure into a response a client can act on — protocol-correct error payloads, correlation, and a boundary between internal detail and what a caller sees.LocalizationCAPLocalizationcapabilityServing labels, messages and translated content per user locale, including translatable model elements and per-tenant text overrides.Draft handlingCAPDraft handlingcapabilityLetting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.Fiori annotationsCAPFiori annotationscapabilityDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.SearchCAPSearchcapabilityFree-text search across an entity and its compositions, pushed into the database rather than filtered in the service. Declared search, database similarity search and filtering in application code are often lumped together.Pagination and streamingCAPPagination and streamingcapabilityReturning results a client can consume without loading everything — server-driven paging, and streaming large binaries rather than buffering them.ConfigurationCAPConfigurationcapabilityPer-environment settings without per-environment code — profiles, layered configuration, and bindings resolved from the platform at start-up.Async processingCAPAsync processingcapabilityDoing work outside the request that triggered it, with a guarantee that it eventually happens — deferred jobs, retries, and periodic work. Distinct from messaging, which is about telling other systems.Audit loggingCAPAudit loggingcapabilityRecording who touched personal or sensitive data, in a form an auditor accepts, without hand-writing it in every handler. It is often confused with application logging, which records what the code did rather than who accessed what.Event MeshCAPEvent MeshcapabilityEmitting and consuming business events across systems through brokers, including subscriptions and mapping application events to broker topics. Work that must survive a request, including deferred processing and retries, belongs to [async processing](capability:async-processing).Concurrency controlCAPConcurrency controlcapabilityStopping two people who opened the same record from silently overwriting each other — detecting that the version you read is no longer the version you are saving over.Service compositionCAPService compositioncapabilityBuilding one solution out of parts other projects published: a reuse package brings its models, code, initial data and texts into your project through npm or Maven, you serve what you reference and extend what you import, and the same modules deploy as one application or as several on a shared database. Distinct from [service integration](capability:service-integration), which reaches a service that stays deployed elsewhere, and from [tenant extensibility](capability:tenant-extensibility), which is a subscriber extending a running SaaS.Transaction managementCAPTransaction managementcapabilityDeciding where a unit of work begins and ends, and what travels with it: the database transaction that commits or rolls back around a request, the user, tenant and locale that every nested call inherits, and the work that must run outside the request in a transaction of its own. Distinct from [concurrency control](capability:concurrency-control), which is two writers on one record, and from [async processing](capability:async-processing), which is work that survives the commit.Feature togglesCAPFeature togglescapabilityTurning behaviour on and off per tenant or per user at runtime, without redeploying, and knowing which toggles are live. System-level switches for delivered objects and runtime flags for unfinished features share the name.TestingCAPTestingcapabilityProving the service still does what it did — against the model and the handlers, without a deployed system and without a database somebody has to keep clean.Plugin authoringCAPPlugin authoringcapabilityWriting a package that extends a framework or runtime rather than an application that uses it — a reusable extension loaded by its host, and the question you arrive at once solving a problem twice makes you want to solve it once for everyone.LoggingCAPLoggingcapabilitySeeing what a running service did, in a form something can read afterwards — levels, a formatter that suits a laptop and one that suits a log service.TelemetryCAPTelemetrycapabilitySeeing what a running service did — traces across handlers and database calls, metrics, and correlation that survives an async boundary.Data modellingCAPData modellingcapabilityDefining the shape of data before anything serves it: entities and their types, how they relate, and the projections and views that services and applications consume.Database connectorsCAPDatabase connectorscapabilityConnecting an application’s data model and queries to a database, including the differences in supported queries, types and schema management between database implementations. Changing an existing schema belongs to [schema evolution](capability:schema-evolution).MultitenancyCAPMultitenancycapabilityServing many tenants from one deployment — onboarding, tenant-isolated data, per-tenant schema deployment and the operational tooling around it. It is decided once, before anything is built, and narrows the artifacts in almost every capability downstream: most sharply in [caching](capability:caching) and anything else holding state in process.
Flavors

Before choosing this

Conditions

LicenceSAP Developer License Agreement 3.2 CAP§ 1from Async processingA covered CAP application sends SAP product data through an external broker where it is copied, saved or processed in a non-SAP product.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.

Messaging is not automatically mass extraction, but an external broker can cross the boundary named in section 1. The data flow, volume and interoperability purpose therefore need to be checked for the concrete design.

SAP Developer License Agreement 3.2 CAP →
LicenceSAP Developer License Agreement 3.2 CAP§ 1, 2from Plugin authoringA plugin is developed or distributed for use with SAP CAP materials covered by the agreement.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.
  • § 2 Intellectual Property. The agreement retains SAP's rights in the covered materials and limits making APIs, tools or software available to third parties, while preserving ownership of customer applications subject to SAP's underlying rights.

The agreement expressly includes plug-ins among the SAP materials and section 2 addresses making APIs and tools available to third parties. A plugin's own open-source licence does not erase those separate use terms.

SAP Developer License Agreement 3.2 CAP →
LicenceSAP Developer License Agreement 3.2 CAP§ 1from Database connectorsA covered CAP application uses a connector to copy or persist SAP product data in a non-SAP database product.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.

The connector itself does not decide the licence boundary. Section 1 makes the destination and purpose of extraction relevant, including the scoped exception for interoperability with an SAP product.

SAP Developer License Agreement 3.2 CAP →

What it declares

Every artifact

Type
Package
Origin
By SAP
Runtime
Java

As a package

Where it runs
does not say
Distributed through
does not say

Tasks this contributes to13Beta

Catch a change in what the application's AI feature answersA model, prompt or schema change is caught before it ships, by sending the application's own prompts over fixtures and judging the answers that come back.Node.js, JavaCoversthe test the project already runs, on CAP Java
What it does

capire's Java testing guide covers testing a CAP Java application across the layers it names, so the service call under test runs inside the suite the project already has.

Remaining work

The whole eval half: the fixtures, something that judges an answer which varies, and the threshold. No option read here states a CAP Java answer for that, so it is written by hand.

All options on the Agent evals page →
Count a business event as a metricA count the business asks for, how often an order is released or a document read, is emitted as a metric beside the runtime's technical ones, with the tenant on it.Node.js, JavaCoversmetric written in application code
What it does

On Java the same thing is done against the OpenTelemetry Java API, which capire says is preconfigured by the injected agent. Its example builds a Meter, a LongCounter named reviewCounter and raises it in an @After handler with the book id as an attribute for the front end to aggregate on.

Remaining work

Write the handler code, pick the attributes, and have the agent attached, since the API instance comes from it. No annotation declares such a metric from the model on this runtime.

All options on the Telemetry page →
See where a slow request spent its timeA request that takes too long is broken down into the service calls, handlers and database statements it ran, with the elapsed time of each, so the slow part can be named.Node.js, JavaCoversruntime instrumentation
What it does

The Java runtime answers this twice. In non-production profiles it logs a completed request as an indented timing tree on the console, down to the CQN statement, with no dependency and no JVM flag. With the OpenTelemetry Java Agent attached it produces spans instead, but its CAP-specific instrumentation is off by default and each span source, among them the CQN statement, is switched on by raising that logger.

Remaining work

Nothing for the local tree. For the agent path, raise the span loggers that matter and expect the console tree to switch itself off, since it is disabled as soon as the agent is detected.

All options on the Telemetry page →
Send a service's traces and metrics to SAP Cloud LoggingThe spans and metrics a deployed CAP service produces arrive in an SAP Cloud Logging instance, where they can be searched and put on a dashboard.Node.js, JavaCovers, under conditionsexporter in the application
What it does

On Java the export is the OpenTelemetry Java Agent's, attached to the application, with the agent extension reading the credentials from the service binding. Capire's steps are a cloud-logging binding created with ingest_otlp enabled and two environment variables naming cloud-logging as the metrics and traces exporter.

Conditions

The application uses the SAP Java Buildpack, which the documented configuration steps assume; The application is bound to a cloud-logging service instance created with ingest_otlp enabled; OTEL_METRICS_EXPORTER and OTEL_TRACES_EXPORTER are set to cloud-logging; The CAP span loggers are raised, since the CAP-specific instrumentation creates no spans by default

Remaining work

Attach the agent and the extension as the buildpack documents, add the binding and the environment variables to the deployment descriptor, and raise the span loggers that are wanted. Without that last step the agent still exports the auto-instrumented library spans and the JVM metrics, and no CAP spans.

All options on the Telemetry page →
Put a value help on a field a Fiori client rendersA field in a Fiori elements app offers the values it allows instead of a free-text input, with the list coming from the model rather than from code in the app.Node.js, JavaAlso in UI5, ABAPCovers, under conditionscore runtime
What it does

The same two ways on a Java service. The shortcut and the vocabulary translation belong to the compiler, which a CAP Java build runs on Node.js as @sap/cds-dk, and this release serves the metadata that comes out of it.

Conditions

The shortcut reaches a field only where that field is a managed association to the annotated entity.; Which shortcuts a project has follows the @sap/cds-dk version the Maven build installs, which since CDS Maven plugin 3.6.0 is a devDependency in package.json rather than a version in pom.xml.

Remaining work

The same modelling as on Node.js. Nothing in this part of the outcome is written in Java.

All options on the Fiori annotations page →
See the annotations rendered before any Fiori app existsA developer changing @UI annotations sees the page they produce straight away, with no UI application in the project to generate or rebuild first.Node.js, JavaCovers, under conditionscore runtime
What it does

The same preview from a Java service, with its own switch: cds.index-page.enabled, rather than the cds.fiori.preview a Node.js project sets.

Conditions

The entity has to be exposed over OData V4.; It is disabled in production. cds.index-page.enabled set to true turns it back on in a cloud deployment for a test or a demo.

Remaining work

Nothing in the project for the local loop, and the annotations themselves still come from the model the Maven build compiles.

All options on the Fiori annotations page →
Show a self-referencing entity as a Fiori tree tableAn entity whose rows point at their own parent is rendered as an expandable tree in a Fiori elements list report instead of a flat list.Node.js, JavaAlso in ABAPCovers, under conditionscore runtime
What it does

The same @hierarchy shortcut, because a CAP Java build compiles the model with the same Node.js compiler, and one annotation this runtime reads itself: a virtual element marked @cds.java.descendants.aggregate builds the hierarchy view from an aggregation expression, which is how a tree shows an aggregate over a row's descendants rather than the row's own value.

Conditions

The entity needs a recursive association to itself.; The same hierarchy qualifier and TreeTable setting in the app's manifest.json as on Node.js.; The shortcut belongs to the compiler, so it is available once the Maven build installs an @sap/cds-dk that has it, independently of the cds-services-bom version.

Remaining work

Add the controlConfiguration block to the app's manifest.json, and write the aggregation expression where the tree is meant to show aggregates.

All options on the Fiori annotations page →
Receive SAP Document AI's extraction results in an applicationThe fields SAP Document AI extracted from a document reach an application of the reader's own, pushed by an outbound channel when the document reaches a step, so the application can map them and post them on.Covers, under conditionsthe service an outbound channel notifies
What it does

The posting page's third route: a CAP service receives the extraction notification, maps the fields and posts on, to SAP S/4HANA Cloud over OData or to an on-premise system through the Cloud Connector.

Conditions

An outbound channel in Document AI set to notify the application when documents reach the step, with the extraction results.

Remaining work

The endpoint that receives the notification, the field mapping and the posting call are the application's own code; the runtime serves the endpoint over HTTP and no package for Document AI is in the graph.

All options on the Service integration page →
Send a document to SAP Document AIA document that arrived somewhere an application or a flow can reach is uploaded to SAP Document AI for classification and extraction.Covers, under conditionsthe application that uploads through the API
What it does

The ingestion page places a CAP application on the API route: it uploads documents the service's own channels do not reach, keeps track of what was processed and offers its own UIs. Its example is a CAP service that subscribes to Ariba invoice events, fetches the PDFs and uploads them.

Conditions

A document source the service's own intake channels do not cover, or routing and transformation the channels cannot do; the page places the API route there.

Remaining work

The upload call against the Document AI API, the record of processed documents and any UI are the application's own code; no CAP package for Document AI is in the graph, and the page names no client.

All options on the Service integration page →
Run a CAP service's model calls with no SAP AI Core bindingA CAP project whose handlers call a language model starts, serves and answers on a laptop or in a pipeline where no SAP AI Core instance is bound — either from a mock, or from a model running locally.Covers, under conditionsCAP Java release the agent adapter ships in
What it does

Carries the Java side's two non-AI-Core kinds: capire's CAP Java AI page makes kind the model provider, aicore, ollama or mocked, says that for local testing an agent can be run against a local model served by Ollama, and that the mocked kind returns static responses without calling any model. The atlas holds no separate entry for cds-adapter-agent, so the release's bill of materials stands for it here, as it does for the other CAP Java modules documented under java/.

Conditions

The agent adapter is added: capire says to add com.sap.cds:cds-adapter-agent to srv/pom.xml; For a model served by Ollama, LangChain4j's Ollama integration is added to srv/pom.xml as well; capire marks the chat model configuration this rests on alpha

Remaining work

Add the adapter and, for Ollama, the LangChain4j integration and a model pulled on the machine. The page marks chat model configuration alpha, and whether the atlas should hold cds-adapter-agent as an entry of its own is an open question this record does not settle.

All options on the LLM integration page →
Skip resending a record the client already hasA client that re-reads an entity it has already fetched gets 304 and no body back when the record has not changed since.Node.js, JavaCoverscore runtime
What it does

Capire states the support for the CAP runtimes rather than for one of them, and the annotation it shows is a CDS annotation on the model both runtimes compile.

Remaining work

The same @odata.etag annotation. The page carries one example and no step specific to Java, so what a Java project does beyond the annotation is not stated there.

All options on the Caching page →
Tell a client how long a served file stays freshA client that has fetched a file served by the application keeps using it for a stated number of seconds without asking the application again.Node.js, JavaCoverscore runtime
What it does

An annotation in the CDS model, @http.CacheControl with a maxAge in seconds on a stream property, sets the Cache-Control header on the response. The page states that max-age counts from when the response was generated on the origin server rather than from when the client received it, so the window a client sees can be shorter than the number in the model.

Remaining work

Annotate the stream property and pick the number of seconds. Nothing recalls a response already sent, so the number is the longest a client may serve content that has since changed.

All options on the Caching page →
Start a CAP service with nothing boundA CAP project whose model imports a remote service and whose endpoints are authenticated starts, serves and answers requests on a laptop with no service instance bound, no database provisioned and no upstream system reachable.Node.js, JavaCovers, under conditionscore runtime (Java)
What it does

The runtime creates a security configuration that accepts mock users for test purposes, and H2 is the in-memory database capire recommends for a local run, automatically initialized in memory by Spring when it is on the classpath.

Conditions

the Spring Boot security starter is in the project's pom.xml, without which the mock users are not initialized at all; the production profile is not the active one, since it sets cds.security.mock.enabled to false

Remaining work

Add the security starter and the database to the project and configure the datasource. A mocked remote entity has no tables until the schema is generated with the --with-mocks option on cds deploy.

All options on the Local development page →

Connections23

com.sap.cds:cds-services-bom connectionscom.sap.cds:cds-services-bomPROVIDES→ provides23provides stated Exposes CAP's transactional event queues as outbox services. The runtime ships two default outboxes, used internally for messaging and for the audit log, and custom outbox services can be registered for further isolation or scaling. Event Queues in Java: https://cap.cloud.sap/docs/java/event-queuesAsync processingprovides stated Ships an AuditLogService for personal data access, personal data modification, configuration change and security events, with a default handler that writes them to the application log; a service binding to [SAP Audit Log service](artifact:btp-audit-log) v2 needs the separate cds-feature-auditlog-v2 module. Audit Logging: https://cap.cloud.sap/docs/java/auditlogAudit loggingprovides stated Evaluates the @requires and @restrict authorization annotations from the CDS model on every request, enforced by CAP's generic service providers without custom code. CAP-level Authorization: https://cap.cloud.sap/docs/guides/security/authorization IAS Authorization via AMS — capire: https://cap.cloud.sap/docs/java/amsAuthorizationprovides stated Detects concurrent modification of data across requests with ETags: an @odata.etag-annotated element or a @cds.java.version version element is checked against an If-Match header in OData, or against an explicit ETag predicate in custom code, on update and delete. Executing CQL Statements: https://cap.cloud.sap/docs/java/working-with-cql/query-executionConcurrency controlprovides stated Configures applications through Spring Boot's externalized configuration and CDS properties, with a production profile that switches a set of property defaults, such as disabled mock users, at once. Configuring Applications: https://cap.cloud.sap/docs/java/developing-applications/configuring CDS Properties (CAP Java) — capire: https://cap.cloud.sap/docs/java/developing-applications/propertiesConfigurationprovides stated Exposes the CDS model to the application through the Model Reflection API: services, types, entities and their elements, from the event context or injected. Working with CDS Models (CAP Java) — capire: https://cap.cloud.sap/docs/java/reflection-apiData modellingprovides stated Creates a CQN-based Persistence Service from the configured datasource for SAP HANA, PostgreSQL, H2 or SQLite, and serves it as the database client. Persistence Services (CAP Java) — capire: https://cap.cloud.sap/docs/java/cqn-services/persistence-services Persistence Services (CAP Java) — capire: https://cap.cloud.sap/docs/java/cqn-services/persistence-services Using H2 for Development in CAP Java — capire: https://cap.cloud.sap/docs/guides/databases/h2Database connectorsprovides stated Runs the SAP Fiori draft lifecycle for draft-enabled entities, merging active and draft data on read and triggering the ACTIVE_READ and DRAFT_READ events that let custom handlers override either side. Fiori Drafts: https://cap.cloud.sap/docs/java/fiori-draftsDraft handlingprovides stated Ships ServiceException for aborting an event with a mapped HTTP status and the Messages API for collecting errors, warnings, info and success messages on a request without aborting it, both usable without an extra dependency. Indicating Errors: https://cap.cloud.sap/docs/java/event-handlers/indicating-errorsError handlingprovides stated Ships publish-subscribe messaging built into the runtime's core, including a file-based message broker that mocks a broker on the local file system for local testing; a real broker needs a separate Maven dependency for that broker. Messaging: https://cap.cloud.sap/docs/java/messagingEvent Meshprovides stated Activates feature-toggled CDS aspects per request from the set a Feature Toggles Info Provider computes, registered as a Spring bean; the mock user configuration assigns features in development only. Feature Toggles — capire: https://cap.cloud.sap/docs/guides/extensibility/feature-togglesFeature togglesprovides stated Serves the OData V4 metadata a Fiori elements client reads, carrying the annotations the compiled model holds, and hosts the index page whose Fiori preview renders a list page from them, turned on in a deployment with cds.index-page.enabled. The translation itself is the compiler's: a CAP Java build compiles the model to CSN with the Node.js package [@sap/cds-dk](artifact:sap-cds-dk), so a shortcut such as @hierarchy follows the cds-dk version the build installs rather than this release. One annotation the Java runtime reads itself rather than the compiler is @cds.java.descendants.aggregate, which on a virtual element builds a hierarchy view from an aggregate expression. Serving SAP Fiori UIs — Fiori Preview: https://cap.cloud.sap/docs/guides/uis/fiori Serving SAP Fiori UIs — Tree Views, aggregates in CAP Java: https://cap.cloud.sap/docs/guides/uis/fiori Building CAP Java Applications — CDS Maven Plugin: https://cap.cloud.sap/docs/java/developing-applications/buildingFiori annotationsprovides stated Enforces declarative @assert and @mandatory constraints whenever data is written, and translates the resulting validation error messages out of the box. Declarative Constraints: https://cap.cloud.sap/docs/guides/services/constraints Indicating Errors: https://cap.cloud.sap/docs/java/event-handlers/indicating-errorsInput validationprovides stated Localizes ServiceException and Messages API text to the client's locale, and integrates with Spring's resource bundle support to resolve the translated strings. Indicating Errors: https://cap.cloud.sap/docs/java/event-handlers/indicating-errorsLocalizationprovides stated Logs through the Java logging facade under Spring Boot's configuration, with predefined loggers per runtime component and correlation ids. Observability (CAP Java) — capire: https://cap.cloud.sap/docs/java/operating-applications/observabilityLoggingprovides stated Carries the tenant in the Request Context across every service call and thread, and opens tenant-specific database connections from it. Provisioning and subscription are cds-feature-mt. Request Contexts — capire: https://cap.cloud.sap/docs/java/event-handlers/request-contextsMultitenancyprovides stated Limits and pages a Select query's result set, and streams cds.LargeString and cds.LargeBinary elements through a Reader or an InputStream rather than buffering them, with the streaming path tested on [SAP HANA](artifact:sap-hana), [PostgreSQL](external:postgresql) and H2. Building CQL Statements: https://cap.cloud.sap/docs/java/working-with-cql/query-api Working with CDS Data: https://cap.cloud.sap/docs/java/cds-dataPagination and streamingprovides stated Extension points for CAP Java plugins: CDS models shared as Maven artifacts and resolved into the project, and event handlers registered for custom types and annotations. Building Plugins (CAP Java) — capire: https://cap.cloud.sap/docs/java/building-pluginsPlugin authoringprovides stated Adds a search predicate to a CQL Select query over an entity's searchable elements, matched with a search term or a search expression built from AND, OR and NOT operators. Building CQL Statements: https://cap.cloud.sap/docs/java/working-with-cql/query-apiSearchprovides stated Resolves a reuse package from a Maven dependency: the CDS, CSV and i18n files under a cds folder in the JAR's resources are extracted by the CDS Maven plugin and embedded in the project like an npm package. CAP Service Composition — capire: https://cap.cloud.sap/docs/guides/integration/reuse-and-composeService compositionprovides stated CAP instrumentation for OpenTelemetry, traces and metrics through the Java agent and extension library, for SAP Cloud Logging or Dynatrace. Observability (CAP Java) — capire: https://cap.cloud.sap/docs/java/operating-applications/observabilityTelemetryprovides stated Test support for the three layers the guide names: event handlers in isolation, services dispatching to them, and the application through its API with Spring Boot test support. Testing Applications (CAP Java) — capire: https://cap.cloud.sap/docs/java/developing-applications/testingTestingprovides stated Opens a ChangeSet Context around the outermost event as the transactional boundary, with listeners, cancellation and Spring transaction integration, and a Request Context that carries user, tenant, locale and headers across services and into child threads. ChangeSet Contexts — capire: https://cap.cloud.sap/docs/java/event-handlers/changeset-contexts ChangeSet Contexts — capire: https://cap.cloud.sap/docs/java/event-handlers/changeset-contexts Request Contexts — capire: https://cap.cloud.sap/docs/java/event-handlers/request-contextsTransaction management

Others providing167

Authorization
  1. SAP Authorization and Trust Management serviceOAuth server issuing JWTs and holding scopes for BTP appsfrom BTP/BAIP
  2. OAuth 2.0 on SAP BTPOAuth 2.0 grant flows for applications and APIs in Neo regionsfrom BTP/BAIP
  3. cap-toolkitUtility bundle for CAP handlers: builder, roles, validation, queriesfrom CAP
  4. @sap/ams-devCompiler from AMS DCL policies to DCN for local runs and testsfrom CAP
  5. @sap/amsAuthorization from DCL policies for Node.js apps on SAP Cloud Identityfrom CAP
  6. @sap/cdsCAP Node.js runtimefrom CAP
  7. sap-usi-authority-checkAuthority check helper class used across SchwarzIT's USI reportsfrom ABAP
  8. cds-entra-idMaps Microsoft Entra ID groups and app roles onto cds.User rolesfrom CAP
Input validation
  1. abapDomCheckChecks field values against domain fixed values and check tablesfrom ABAP
  2. cap-toolkitUtility bundle for CAP handlers: builder, roles, validation, queriesfrom CAP
  3. abap-data-validatorValidation library for ABAP checking dates, emails and GUIDsfrom ABAP
  4. sap-cap-validator-pluginCAP plugin validating input against @Validator JSON Schema rulesfrom CAP
  5. capvalCustom messages and handler classes for CAP input validationfrom CAP
  6. cds-validateZod schemas as CAP validation middlewarefrom CAP
  7. @sap/cdsCAP Node.js runtimefrom CAP
Error handling
  1. throwRaises an ABAP exception from a text or the last system messagefrom ABAP
  2. ABAP-PRCFramework for multi-step ABAP processes with monitoringfrom ABAP
  3. cds-error-outboxCaptures CAP service errors, deduplicates them and mails alertsfrom CAP
  4. RESULT-for-ABAPResult pattern for ABAP instead of exceptions for expected failuresfrom ABAP
  5. EITHER-FOR-ABAPABAP class implementing the Either patternfrom ABAP
  6. @sap/cdsCAP Node.js runtimefrom CAP
  7. sap-usi-exceptionShared root exception class and text getter for USI developmentsfrom ABAP
Localization
  1. abap_btocs_deeplDeepL translation plugin for the B-Tocs ABAP SDKfrom ABAP
  2. abap_btocs_libtrlLibreTranslate plugin for the B-Tocs ABAP SDKfrom ABAP
  3. SAP Translation HubTranslation service for software texts and documentsfrom BTP/BAIP
  4. ABAP_DeepL_clientABAP client for the DeepL translation servicefrom ABAP
  5. LISAMCP server for reading and writing ABAP object translationsfrom ABAP
  6. @concircle/i18n-ai-translatorCLI translating UI5 i18n.properties files with OpenAIfrom UI5
  7. ABAP_TRANSLATION_HUBReport pushing ABAP objects to SAP Translation Hub and backfrom ABAP
  8. abap-form-translatorRuntime translation layer for SAP form labels, kept in a tablefrom ABAP
  9. ui5-i18n-excel-converterCLI converting UI5 i18n properties files to Excel and backfrom UI5
  10. ZOTR_UTILITYABAP framework reading texts from SAP's online text repositoryfrom ABAP
  11. ZABAP_TRANSLATIONSExcel export and import of ABAP package or program textsfrom ABAP
  12. @sap/cdsCAP Node.js runtimefrom CAP
  13. @sap-ux/i18nReader and writer for i18n bundles of UI5 or CAP projectsfrom UI5
  14. XLF TranslatorEditor for the translations in an uploaded XLIFF filefrom ABAP
Draft handling
  1. cap-handler-frameworkConvention-based handler layer for CAP with draft lifecycle hooksfrom CAP
  2. @rizing/cds-extensionCAP plugin putting a draft-capable facade in front of imported ODatafrom CAP
  3. @sap/cds-fioriFiori draft handling and UI-facing behaviour for CAP servicesfrom CAP
  4. @sap/cdsCAP Node.js runtimefrom CAP
  5. cap-collaborative-draftCollaborative draft support for CAP Node.js servicesfrom CAP
Fiori annotations
  1. rap-extFloorplans rendered from CDS UI annotations as abap2UI5 appsfrom ABAP
  2. urp-vocabCDS vocabulary for User-Rendered Patterns display annotationsfrom CAP
  3. @mpah/enum-value-helpCAP plugin generating value help for enum fields from an annotationfrom CAP
  4. @sap/cds-fioriFiori draft handling and UI-facing behaviour for CAP servicesfrom CAP
  5. @sap/cdsCAP Node.js runtimefrom CAP
  6. @sap/generator-fioriEntry point for generating a Fiori application from a templatefrom CAP
  7. @sap-ux/cds-annotation-parserParser for annotations in CDS sourcefrom CAP
  8. @sap/ux-cds-compiler-facadeWrapper around the CDS compiler for annotation handlingfrom CAP
  9. @sap-ux/cds-odata-annotation-converterConverter from CDS annotations to their OData formfrom CAP
  10. @sap/ux-cds-odata-language-server-extensionOData annotation features for the @sap/vscode-cds extensionfrom CAP
  11. @sap-ux/fiori-annotation-apiProgrammatic API for reading and writing project annotationsfrom CAP
  12. @sap-ux/odata-vocabulariesOASIS and SAP OData vocabularies with a VocabularyServicefrom UI5
  13. cap-js-geoloc-pluginAnnotation-driven geocoding, address correction and routing for CAPfrom CAP
  14. cap-user-infoUser details and quickview links for createdBy and modifiedByfrom CAP
Search
  1. @kamlendra/search-vocabCDS annotation vocabulary for entity search with schema discoveryfrom CAP
  2. @sap/cdsCAP Node.js runtimefrom CAP
Pagination and streaming
  1. @sap/cdsCAP Node.js runtimefrom CAP
Configuration
  1. config-managementTheme, CSS and CSP settings of abap2UI5 pages kept in tablesfrom ABAP
  2. abaKLibrary for managing ABAP constants from registered sourcesfrom ABAP
  3. aqoABAP application options as a structure with a generated editorfrom ABAP
  4. com.sap.cds:cds-feature-cloudfoundryReads bound service credentials on SAP BTP, Cloud Foundry for CAP Javafrom CAP
  5. com.sap.cds:cds-feature-k8sReads SAP BTP Operator service bindings on Kyma for CAP Javafrom CAP
  6. abap-dynamic-assignmentFramework for runtime parameters, ranges and value mappings in ABAPfrom ABAP
  7. abap-gencustGeneric customizing table and reader for ad hoc ABAP parametersfrom ABAP
  8. abap-tvarvcHelper class for reading TVARVC parameters and select-optionsfrom ABAP
  9. @sap/cdsCAP Node.js runtimefrom CAP
Async processing
  1. ABAP-PRCFramework for multi-step ABAP processes with monitoringfrom ABAP
  2. Event MeshManaged queues and topics over AMQP, MQTT and RESTfrom BTP/BAIP
  3. @cap-js-community/event-queueTransactional processing of asynchronous and periodic CAP eventsfrom CAP
  4. @cap-js-community/sap-afc-sdkSDK for SAP Advanced Financial Closing scheduling providers on CDSfrom CAP
  5. cds-event-monitoringStores, browses and resends messages a CAP service receivesfrom CAP
  6. @odatano/watchCAP plugin watching Cardano addresses and emitting eventsfrom CAP
  7. @sap/cdsCAP Node.js runtimefrom CAP
  8. cds-natsNATS messaging service for the CAP Node.js runtimefrom CAP
Audit logging
  1. SAP Audit Log serviceIngests and retains compliance audit data from BTPfrom BTP/BAIP
  2. com.sap.cds:cds-feature-auditlog-ngCAP Java plugin sending audit log events to SAP Audit Log servicefrom CAP
  3. com.sap.cds:cds-feature-auditlog-v2CAP Java handler for SAP Audit Log service API version 2from CAP
  4. @cap-js/audit-loggingCAP integration with the SAP Audit Log servicefrom CAP
  5. s4hana-hana-audit-policiesSQL templates for HANA audit policies of an S/4HANA tenantfrom BTP/BAIP
Event Mesh
  1. SAP Integration Suite, advanced event meshEvent streaming and management platform in Integration Suitefrom BTP/BAIP
  2. SAP Cloud Application Event HubDistributes business events between SAP cloud applicationsfrom BTP/BAIP
  3. Event MeshManaged queues and topics over AMQP, MQTT and RESTfrom BTP/BAIP
  4. SAP Integration Suite, Event MeshEvent broker inside SAP Integration Suitefrom BTP/BAIP
  5. com.sap.cds:cds-feature-advanced-event-meshCAP Java plugin for SAP Integration Suite, advanced event meshfrom CAP
  6. com.sap.cds:cds-feature-enterprise-messagingConnects CAP Java messaging to SAP Event Meshfrom CAP
  7. com.sap.cds:cds-feature-event-hubConnects CAP Java messaging to SAP Cloud Application Event Hubfrom CAP
  8. com.sap.cds:cds-feature-kafkaConnects CAP Java messaging to Apache Kafkafrom CAP
  9. com.sap.cds:cds-feature-redisBeta connector from CAP Java messaging to Redis Pub/Subfrom CAP
  10. @cap-js/advanced-event-meshCAP integration with SAP Integration Suite advanced event meshfrom CAP
  11. @cap-js/asyncapiExports AsyncAPI documents for a CAP service's eventsfrom CAP
  12. @cap-js/event-brokerConsumes events from SAP Cloud Application Event Hub in CAPfrom CAP
  13. cds-kafkaKafka adapter exposing topics as a CDS messaging servicefrom CAP
  14. cesar-sap/abap_kafka_rest_proxyABAP connector to Kafka through the Confluent Kafka REST Proxyfrom ABAP
  15. cds-event-monitoringStores, browses and resends messages a CAP service receivesfrom CAP
  16. gregorwolf/AWS_SNS4ABAPICF handler receiving Amazon SNS notifications in an ABAP systemfrom ABAP
  17. INVIXO/abapMQMQTT 3.1.1 client implemented in ABAPfrom ABAP
  18. MQBAMQTT publish/subscribe in ABAP with an external broker bridgefrom ABAP
  19. @sap/cdsCAP Node.js runtimefrom CAP
Concurrency control
  1. lock-managerHolds SAP locks across stateless abap2UI5 roundtripsfrom ABAP
  2. @sap/cdsCAP Node.js runtimefrom CAP
  3. cap-collaborative-draftCollaborative draft support for CAP Node.js servicesfrom CAP
Service composition
  1. @sap/cds-common-contentISO content for CAP's countries, languages, currencies and timezonesfrom CAP
  2. @sap/cdsCAP Node.js runtimefrom CAP
Transaction management
  1. @sap/cdsCAP Node.js runtimefrom CAP
Feature toggles
  1. FeaturetoggleFeature toggle framework for ABAP with a UI5 GUIfrom ABAP
  2. SAP Feature Flags serviceBoolean and string flags read by applications at runtimefrom BTP/BAIP
  3. @cap-js-community/feature-toggle-libraryLive-updatable feature toggles for CAP, backed by Redisfrom CAP
  4. abap-feature-toggleFeature toggle for ABAP read via is_active on view ZFEAT_TOGGLEfrom ABAP
  5. @sap/cds-mtxsMultitenancy, tenant provisioning and extensibility for CAPfrom CAP
  6. cds-feature-toggleFeature-toggle pattern for CAP CDSfrom CAP
Testing
  1. @cap-js/cds-testTest support for CAP Node.js: server start, HTTP client, assertionsfrom CAP
  2. cds-cucumberGherkin scenarios driving a running CAP servicefrom CAP
  3. sapbrunoTerminal UI running Bruno collections against a CAP servicefrom CAP
  4. cds-launchpad-pluginSandbox launchpad for all SAPUI5 apps in a CAP workspacefrom CAP
  5. enforce-export-coverageStatic check that each exported TypeScript function has a testfrom General
  6. @sap-ux/fe-mockserver-plugin-cdsFiori Elements mock server plugin taking a CDS file as metadatafrom CAP
  7. @saptools/brunoRunner for Bruno collections against XSUAA-protected CF appsfrom BTP/BAIP
Plugin authoring
  1. @sap/cds-dkCommand line client and development toolkit for CAPfrom CAP
Logging
  1. ABAP-LoggerLogging library for ABAP over the Application Logfrom ABAP
  2. abap-log-exporterExports Business Application Log entries to Graylog or Lokifrom ABAP
  3. ABAP-PRCFramework for multi-step ABAP processes with monitoringfrom ABAP
  4. SAP Application Logging service for SAP BTPCollects Cloud Foundry or Kyma logs into a searchable Kibanafrom BTP/BAIP
  5. SAP Cloud LoggingOpenSearch-based store for logs, metrics and tracesfrom BTP/BAIP
  6. @cap-js/audit-loggingCAP integration with the SAP Audit Log servicefrom CAP
  7. abap-logABAP logging library with one interface across output targetsfrom ABAP
  8. ABAP_LOGGINGObject-oriented wrapper around the Business Application Logfrom ABAP
  9. abap-cloud-loggerChainable logger for ABAP Cloud around CL_BALI_LOGfrom ABAP
  10. abap-fm-loggerLogger storing RFC function module call parameters as JSONfrom ABAP
  11. openui5-error-collectorUI5 library collecting an app's JavaScript errorsfrom UI5
  12. open-abap-balApplication logging for ABAP transpiled to JavaScript on Node.jsfrom ABAP
  13. @openui5/sap.ui.coreFramework core: module loader, MVC runtime, binding, routing, themingfrom UI5
  14. abap-fluentdFluentd client in ABAP for sending log lines to a collectorfrom ABAP
  15. @saptools/cf-logsLog fetcher and parser for one Cloud Foundry appfrom BTP/BAIP
  16. @saptools/cf-tailMerged log tail of every started app in a Cloud Foundry spacefrom BTP/BAIP
  17. sap-usi-logging-apiObject-oriented wrapper around SAP's Application Log (SLG1)from ABAP
  18. srbjsloggerA browser JavaScript logger whose log, warn and error calls write prominent output to the console, loaded into a UI5 app through index.html or the manifest's resources.from UI5
  19. abap-message-loggerMessage logger for ABAP Cloud that saves to the Application Logfrom ABAP
Telemetry
  1. abap-metrics-providerExposes ABAP stack metrics to a monitoring toolfrom ABAP
  2. admin-cockpitUsage, error and response-time monitor for abap2UI5from ABAP
  3. SAP Cloud LoggingOpenSearch-based store for logs, metrics and tracesfrom BTP/BAIP
  4. Agent Activation for Dynatrace Service for SAP BTPInjects the Dynatrace agent into Java applications on SAP BTPfrom BTP/BAIP
  5. SAP Monitoring Service for SAP BTPMetrics, availability checks and alerts for apps in Neo regionsfrom BTP/BAIP
  6. @cap-js-community/business-metricsBusiness-level metrics from CDS annotations via @cap-js/telemetryfrom CAP
  7. @cap-js/telemetryOpenTelemetry instrumentation for CAP servicesfrom CAP
  8. cds-cachingCAP caching plugin for query results and remote service responsesfrom CAP
  9. cap-mcp-guardPolicy enforcement and field masking for MCP-enabled CAP appsfrom CAP
  10. abap-opentelemetryOTLP serialisation of traces, metrics and logs in ABAPfrom ABAP
  11. abap-prometheusPrometheus client for ABAP, installed with abapGitfrom ABAP
  12. @sanjay-sde/cap-js-log-controlCAP plugin controlling CDS logger and OpenTelemetry log verbosityfrom CAP
  13. @sap/e2e-traceSAP Passport handling for Node.js componentsfrom BTP/BAIP
  14. @sap-ux/telemetryLibrary for sending usage telemetry datafrom CAP
  15. @saptools/cf-metricsRead-only query tool for metrics in SAP Cloud Loggingfrom BTP/BAIP
  16. @saptools/cf-otelRead-only query tool for OpenTelemetry spans in SAP Cloud Loggingfrom BTP/BAIP
  17. cap-ui-telemetryUI5 frontend performance and error capture for CAPfrom CAP
  18. opentelemetry-cdsOpenTelemetry support for the CDS Node.js runtimefrom CAP
Data modelling
  1. ABAP CDSModelling layer of ABAP Cloud above database tablesfrom ABAP
  2. cds-numberrange-pluginFills a CDS element from a database-backed number rangefrom CAP
  3. cdsanalyserMaps database tables and fields to the CDS views exposing themfrom ABAP
  4. @sap/cds-common-contentISO content for CAP's countries, languages, currencies and timezonesfrom CAP
  5. @sap/cds-compilerCompiler from CDS models to CSN, EDMX and database schemasfrom CAP
  6. @sap/cdsCAP Node.js runtimefrom CAP
  7. cap-user-infoUser details and quickview links for createdBy and modifiedByfrom CAP
  8. CDS Field MappingMaps classic dictionary tables and fields to CDS entities and fieldsfrom ABAP
Database connectors
  1. SAP ASE ServiceManaged SAP ASE databases on BTP for Java applicationsfrom BTP/BAIP
  2. SAP HANA CloudManaged SAP HANA database service on BTPfrom BTP/BAIP
  3. SAP HANA Service (SAP Regions) for SAP BTPManaged SAP HANA 2.0 databases in fixed sizes on SAP BTPfrom BTP/BAIP
  4. PostgreSQL on SAP BTP, hyperscaler optionManaged PostgreSQL from the hyperscaler via a BTP service bindingfrom BTP/BAIP
  5. com.sap.cds:cds-feature-hanaSAP HANA Cloud datasource for CAP Java applicationsfrom CAP
  6. com.sap.cds:cds-feature-jdbcJDBC runtime for H2 and SQLite in CAP Javafrom CAP
  7. com.sap.cds:cds-feature-postgresqlPostgreSQL datasource for CAP Java applicationsfrom CAP
  8. @cap-js/db-serviceBase service shared by CAP's SQLite, PostgreSQL and HANA servicesfrom CAP
  9. @cap-js/hanaSAP HANA database service for CAPfrom CAP
  10. @cap-js/postgresPostgreSQL database service for CAPfrom CAP
  11. @cap-js/sqliteSQLite database service for CAP, in memory during developmentfrom CAP
  12. cap-postgres-btp-connectivityTunnels CAP Node.js to a private PostgreSQL via Cloud Connectorfrom CAP
  13. cds-mongodbMongoDB as a CAP database service through Mongoosefrom CAP
  14. @cds-pgroll/postgresCLI for DROP and RENAME schema changes beside @cap-js/postgresfrom CAP
  15. hdbPure JavaScript SAP HANA driver for Node.jsfrom BTP/BAIP
  16. @neoimpulse/cap-js-restore-model-defined-typesCAP plugin casting read values back to CDS model typesfrom CAP
  17. @quadrio/cds-db2DB2 adapter for CDSfrom CAP
  18. @sap/cds-hanaDatabase adapter for SAP HANA in CAPfrom CAP
  19. @sap/cdsCAP Node.js runtimefrom CAP
  20. @sap/hana-clientSAP's Node.js driver for SAP HANAfrom BTP/BAIP
  21. SAP HANASAP's relational database platform, on-premise and in HANA Cloudfrom BTP/BAIP
  22. SAP-samples/hana-hdbext-promisfied-examplePromise-based wrappers around the SAP HANA client librariesfrom BTP/BAIP
  23. cds-pgPostgreSQL adapter for SAP CDS from the SAP Mentors communityfrom CAP
  24. cap-snowflakeCAP database adapter for Snowflake with OData V4 supportfrom CAP
  25. cds-mysqlMySQL and MariaDB database adapter for CAPfrom CAP
Multitenancy
  1. SAP Software-as-a-Service Provisioning serviceRegisters a multitenant application for subaccount subscriptionsfrom BTP/BAIP
  2. com.sap.cds:cds-feature-mtMultitenancy for CAP Java: tenant lifecycle and per-tenant containersfrom CAP
  3. @cap-js-community/mtx-toolCLI for operating tenants of multitenant CAP applicationsfrom CAP
  4. @sap/cds-mtxsMultitenancy, tenant provisioning and extensibility for CAPfrom CAP
  5. @sap/cds-oysterWebAssembly sandbox for tenant-specific extension code in CAPfrom CAP
  6. @sap/cdsCAP Node.js runtimefrom CAP

Details

Sources1
Added by handdiscovered herechecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesjava
discovered viaAdded by hand
first seen in the atlas
ecosystem and domaincap, operations-and-runtime
Flavors1
Java
“The CAP Java SDK enables developing CAP applications in Java.” — Getting Startedchecked
History in the atlas3
  1. The entry carried the Fiori draft lifecycle and not the annotations the same guide documents for Java. Capire's Serving SAP Fiori UIs guide names the Java configuration for the Fiori preview and one annotation the Java runtime reads itself, @cds.java.descendants.aggregate for a hierarchy view over aggregates. Without this edge the java flavor of capability:fiori-annotations had no provider of its own, although CAP Java serves the same annotated metadata. @http.CacheControl, which the same guide states is supported only on the Java runtime, is a response header rather than a rendering instruction and is left to capability:pagination-and-streaming.
  2. capability:authorization, capability:input-validation, capability:error-handling, capability:localization, capability:draft-handling, capability:search, capability:pagination-and-streaming, capability:configuration, capability:async-processing, capability:audit-logging, capability:event-mesh, capability:concurrency-control
  3. First seen.
For your agent
Ref
artifact:cap-java-cds-services-bom
JSON
/artifacts/cap-java-cds-services-bom.json
MCP
Connecting an agent