{"ref":"artifact:sap-cds","page":"/artifacts/sap-cds","json":"/artifacts/sap-cds.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-cds","name":"@sap/cds","artifact_type":"package","ecosystem":"cap","domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"The CAP Node.js runtime, which compiles the CDS model, serves the services declared in it, answers generic requests before any handler runs, and loads every cds-plugin.","short":"CAP Node.js runtime","what_it_solves":"The CAP Node.js runtime: it compiles the CDS model, serves the services declared in it, and answers the generic requests — read, write, draft, search, paging — before any handler of yours runs. cds.env resolves the configuration those services read, and every cds-plugin is loaded by this package. It stops at the Node.js stack and at the project's edges: the CLI that scaffolds, builds and deploys is [@sap/cds-dk](artifact:sap-cds-dk), CAP Java is a second runtime for the same model, and databases, messaging and AI arrive as plugins. In a project it is one dependency in package.json and the module every server file loads."},"links":{"npm":"https://www.npmjs.com/package/@sap/cds","docs":"https://cap.cloud.sap/docs/","changelog":"https://cap.cloud.sap/docs/releases/"},"compat":{"runtimes":["node"]},"provenance":{"discovered_via":[{"source":"source:npm"},{"source":"source:github","channel":"cap-js"}],"first_seen":"2026-08-31"},"source_available":false,"provides":[{"capability":"capability:authorization","what_it_does":"Evaluates @requires and @restrict from the model at runtime, including instance-based restrictions expressed as where-clauses.","sources":[{"url":"https://cap.cloud.sap/docs/guides/security/authorization","title":"Authorization and Access Control","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/app-services#generic-handlers-in-srv-init","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"static handle_authorization () { ... }"},{"url":"https://cap.cloud.sap/docs/node.js/app-services#class-cds-applicationservice","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"Class cds.ApplicationService is the default service provider implementation, adding generic handlers as introduced in the Cookbook guides on Providing Services, Localized Data and Temporal Data."}],"delivery":"built-in"},{"capability":"capability:authentication","what_it_does":"Validates tokens and builds the security context for XSUAA and IAS, exposing the authenticated user to handlers as req.user.","sources":[{"url":"https://cap.cloud.sap/docs/guides/security/authentication","title":"Authentication","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/authentication","title":"Authentication (Node.js) — capire","checked":"2026-09-27","quote":"CAP ships with a few prebuilt authentication strategies, used by default: mocked during development and jwt in production."},{"url":"https://cap.cloud.sap/docs/guides/security/data-protection","title":"Product Security Overview — capire","checked":"2026-09-27","quote":"On configured authentication, all CAP endpoints are authenticated by default."}],"delivery":"built-in"},{"capability":"capability:input-validation","what_it_does":"Enforces @mandatory, @assert.range, @assert.format, @assert.target and @assert with a CXL case expression whenever data is written: the static checks on the input, the expressions collected into one query and run in the database, and a failure rejects the request and rolls the transaction back.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/constraints","title":"Declarative Constraints — capire","checked":"2026-09-27","quote":"Declarative constraints allow you to express data validity conditions using CDS Expression Language (CXL) that are enforced automatically whenever data is written."},{"url":"https://cap.cloud.sap/docs/guides/services/constraints","title":"Declarative Constraints — capire","checked":"2026-09-27","quote":"Some of the checks, for example, the static @mandatory checks, are validated directly on the input data, while the ones specified with @assert:(<constraint>) are collected into a query and pushed down to the database for execution."},{"url":"https://cap.cloud.sap/docs/guides/services/constraints","title":"Declarative Constraints — capire","checked":"2026-09-27","quote":"The constraints are enforced automatically by the CAP runtimes on any input, and if failures occur, the request is ultimately rejected and the transaction rolled back."},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-validations","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for input validation based in @assert annotations, and other, as documented in the Providing Services guide."}],"delivery":"built-in"},{"capability":"capability:error-handling","what_it_does":"Provides req.error and req.reject, and serialises the result into protocol-correct payloads with target paths.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/events","title":"Events and requests","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:localization","what_it_does":"Resolves i18n bundles per request and serves localized entities and translated model annotations.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/i18n","title":"Localization / i18n","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/guides/uis/localized-data","title":"Localized data","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/cds-i18n","title":"Localization / i18n (Node.js) — capire","checked":"2026-09-27","quote":"The cds.i18n module supports internationalization."},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-localized-data","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for handling localized data, as documented in the Localized Data guide."}],"delivery":"built-in"},{"capability":"capability:draft-handling","what_it_does":"Runs the draft lifecycle for draft-enabled entities — activation, discard and locking — without custom handlers. Since CAP Node.js 10.0 a request that carries no draft notation addresses active data, and draft locks are still enforced against direct updates, deletes and conflicting edits.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/fiori","title":"Serving Fiori UIs — draft support","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/releases/2026/jun26","title":"CAP Release Notes — June 2026","checked":"2026-09-18","quote":"Taking this further, CAP assumes `IsActiveEntity=true` by default. So, the following requests (no draft notion) always refer to active data, equivalent to the ones above."},{"url":"https://cap.cloud.sap/docs/node.js/fiori","title":"Fiori Support (Node.js) — capire","checked":"2026-09-27","quote":"Draft-enabled entities have corresponding CSN entities for drafts"},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-fiori","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for handling Fiori Drafts and other Fiori-specifics, as documented in the Serving Fiori guide."}],"delivery":"built-in"},{"capability":"capability:search","what_it_does":"Compiles @cds.search into database-level search predicates and serves $search on exposed collections.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb","title":"Generic providers — searching data","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:analytical-queries","what_it_does":"Compiles OData $apply into database aggregation, so grouping and aggregates are answered by the database.","sources":[{"url":"https://cap.cloud.sap/docs/guides/protocols/odata","title":"Serving OData APIs — feature overview","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:pagination-and-streaming","what_it_does":"Applies implicit and explicit paging to collections, and streams large binary properties rather than buffering them.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb","title":"Generic providers — pagination","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/streaming","title":"Streaming media data","checked":"2026-08-31"},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-paging","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for paging & implicit sorting, as documented in the Providing Services guide."}],"delivery":"built-in"},{"capability":"capability:configuration","what_it_does":"Resolves layered configuration through cds.env — profiles, environment and service bindings merged into one view.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-env","title":"cds.env","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:schema-evolution","what_it_does":"Runs cds deploy, deriving and applying the delta for the model changes a compiler can work out on its own.","sources":[{"url":"https://cap.cloud.sap/docs/guides/databases/schema-evolution","title":"Schema Evolution","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:seed-data","what_it_does":"Loads CSV files at deploy time as initial and sample data.","sources":[{"url":"https://cap.cloud.sap/docs/guides/databases/initial-data","title":"Providing initial data","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:metadata-publishing","what_it_does":"Emits EDMX and CSN for every exposed service, generated from the model rather than maintained separately.","sources":[{"url":"https://cap.cloud.sap/docs/guides/protocols/odata","title":"Serving OData APIs","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:fiori-annotations","what_it_does":"Maps protocol-agnostic annotations to OData, with value-list shortcuts applied from the model.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/fiori","title":"Serving Fiori UIs","checked":"2026-08-31"}],"delivery":"built-in"},{"capability":"capability:frontend-boundary","what_it_does":"Scaffolds a starter frontend with cds add vue or cds add react, and wires SAP Build Application Frontend with cds add app-frontend.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/vue-react","title":"Vue.js and React UIs","checked":"2026-08-31","quote":"cds add vue --into catalog"}],"delivery":"built-in"},{"capability":"capability:job-scheduling","what_it_does":"Schedules a service's events as tasks with srv.schedule(): once, after a delay, or repeatedly on an interval or a cron expression, persisted in the event queue and cancelled with srv.unschedule().","sources":[{"url":"https://cap.cloud.sap/docs/guides/events/event-queues#scheduled-tasks","title":"Transactional Event Queues — Scheduled Tasks","checked":"2026-09-27","quote":"A scheduled task is identified by its event name and exists only once: a subsequent schedule() call with the same name overwrites the previous schedule (tasks are upserted, not deduplicated)."}],"delivery":"built-in"},{"capability":"capability:caching","what_it_does":"Supports ETag-based conditional HTTP reads for annotated entities in the CAP Node.js runtime.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb","title":"capire — Generic Service Providers","checked":"2026-09-17","quote":"caching techniques using ETags"}],"facets":[{"key":"cache_layer","value":"HTTP resource validation with ETags","source":{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb","title":"capire — Generic Service Providers","checked":"2026-09-17","quote":"caching techniques using ETags"},"applies_to":{"ecosystems":["cap"]}},{"key":"freshness_control","value":"Conditional GET using If-None-Match; 304 for an unchanged record","source":{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb","title":"capire — Generic Service Providers","checked":"2026-09-17","quote":"304 Not Modified"},"applies_to":{"ecosystems":["cap"]}}],"delivery":"built-in"},{"capability":"capability:destinations","what_it_does":"Resolves an SAP BTP destination in the runtime's own fetch client, so a production call no longer has to go through the SAP Cloud SDK. Added in CAP Node.js 10.1 and marked beta, covering proxy type Internet with NoAuthentication, BasicAuthentication or OAuth2ClientCredentials; a destination using any other authentication type is served by @sap-cloud-sdk/http-client once that package is installed.","sources":[{"url":"https://cap.cloud.sap/docs/releases/2026/sep26","title":"CAP Release Notes — September 2026","checked":"2026-09-18","quote":"So far, the Node-native Fetch API, as introduced in April 2026, couldn't resolve SAP BTP Destinations. Hence, in production, SAP Cloud SDK was still required. With this release, we added built-in support for resolving destinations with these limitations:"},{"url":"https://cap.cloud.sap/docs/releases/2026/sep26","title":"CAP Release Notes — September 2026, Destinations w/o Cloud SDK","checked":"2026-09-18","quote":"Install @sap-cloud-sdk/http-client in your project, to have that used automatically instead of the built-in native fetch client. Do so if you use an authentication type that's not supported yet — for example, OnPremise connectivity."}],"delivery":"built-in"},{"capability":"capability:retrieval-augmented-generation","what_it_does":"Carries the modelled half: the Vector type is built into CDS and the vector functions are part of the query language, so an embedding is an element of an entity and a retrieval is a `WHERE` clause. `vector_embedding` turns a text into a vector, `cosine_similarity` and `l2distance` compare two, and a `stored` calculated element keeps a row's embedding in the database and recomputes it whenever the row changes. Splitting a text into chunks and assembling what was found into a prompt are not here.","sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/embeddings","title":"CAP-native Embeddings, vector_embedding — capire","checked":"2026-09-21","quote":"Creates a vector embedding of the given `text` using the `embedding_model`."},{"url":"https://cap.cloud.sap/docs/guides/ai/embeddings","title":"CAP-native Embeddings, cosine_similarity — capire","checked":"2026-09-21","quote":"Computes the cosine of the angle between `vector1` and `vector2`, comparing the direction of the vectors."},{"url":"https://cap.cloud.sap/docs/guides/ai/embeddings#using-calculated-elements","title":"CAP-native Embeddings, Using Calculated Elements — capire","checked":"2026-09-21","quote":"Using `stored` calculated elements ensures that the embedding is persisted in the database, and recalculated whenever the source data changes through CREATE or UPDATE operations."}],"delivery":"built-in"},{"capability":"capability:attachments","what_it_does":"Serves an element annotated @Core.MediaType as an OData media resource, stored in the database as a LargeBinary or redirected to an external URL, streamed to and from the client.","facets":[{"key":"storage_target","value":"Database as LargeBinary, or an external URL by redirect","source":{"url":"https://cap.cloud.sap/docs/guides/services/media-data","title":"Serving Media Data — capire","checked":"2026-09-27","quote":"CAP provides out-of-the-box support for serving media and other binary data. Media data can be stored either directly in the database or in an external repository, and can be streamed to and from clients."},"applies_to":{"ecosystems":["cap"]}}],"sources":[{"url":"https://cap.cloud.sap/docs/guides/services/media-data","title":"Serving Media Data — capire","checked":"2026-09-27","quote":"CAP provides out-of-the-box support for serving media and other binary data. Media data can be stored either directly in the database or in an external repository, and can be streamed to and from clients."},{"url":"https://cap.cloud.sap/docs/guides/services/media-data","title":"Serving Media Data — capire","checked":"2026-09-27","quote":"The media data is streamed automatically."}],"delivery":"built-in"},{"capability":"capability:async-processing","what_it_does":"Queues a service's calls, inbound messages and scheduled tasks in the cds.outbox.Messages table inside the business transaction, dispatches them after commit, retries with exponential backoff and keeps failures past maxAttempts as a dead letter queue; cds.queued() wraps a service, outboxed: true does it by configuration.","sources":[{"url":"https://cap.cloud.sap/docs/guides/events/event-queues","title":"Transactional Event Queues — capire","checked":"2026-09-27","quote":"Persist events and scheduled tasks in the same database transaction as your business data, then process them asynchronously with retries and a dead letter queue."},{"url":"https://cap.cloud.sap/docs/guides/events/event-queues","title":"Transactional Event Queues — capire","checked":"2026-09-27","quote":"The persistent queue is enabled by default, which means messages are stored in the cds.outbox.Messages table within the current transaction. The outbox namespace is historical and the table backs all three patterns."},{"url":"https://cap.cloud.sap/docs/guides/events/event-queues","title":"Transactional Event Queues — capire","checked":"2026-09-27","quote":"When processing fails, the system retries the message with exponentially increasing delays. After a configurable maximum number of attempts, the message is moved to the dead letter queue."}],"delivery":"built-in"},{"capability":"capability:temporal-data","what_it_does":"Serves an entity annotated @cds.valid.from/to as time slices behind a timeless key: as of now by default, at a moment with sap-valid-at, and the history since a date with sap-valid-from.","sources":[{"url":"https://cap.cloud.sap/docs/guides/domain/temporal-data","title":"Temporal Data — capire","checked":"2026-09-27","quote":"CAP provides out-of-the-box support for declaring and serving date-effective entities with application-controlled validity, in particular to serve as-of-now and time-travel queries."},{"url":"https://cap.cloud.sap/docs/guides/domain/temporal-data","title":"Temporal Data — capire","checked":"2026-09-27","quote":"The annotation pair @cds.valid.from/to actually triggers the built-in mechanisms for serving temporal data. It specifies which elements form the application-time period, similar to SQL:2011."},{"url":"https://cap.cloud.sap/docs/guides/domain/temporal-data","title":"Temporal Data — capire","checked":"2026-09-27","quote":"READ requests without specifying any temporal query parameter will automatically return data valid as of now."},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-temporal-data","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for handling temporal data, as documented in the Temporal Data guide."}],"delivery":"built-in"},{"capability":"capability:service-integration","what_it_does":"Builds a remote proxy with cds.connect.to for any imported service, translates a local query into OData V4, OData V2 or HCQL against the remote entity, and mocks the imported service in process until a binding is configured; outbound calls use the SAP Cloud SDK client when installed, else the native fetch client.","sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"Remote CAP services can be consumed using the same high-level, uniform APIs as for local services – that is, as if they were local. cds.connect automatically constructs remote proxies, which translate all local requests into protocol-specific ones, sent to remote services."},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"CAP mocks imported services automatically in-process with mock data in the same in-memory database as our own data."},{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"CAP provides a built-in remote client that uses the native Node.js fetch API, including support for resolving named destinations from the SAP BTP Destination service."}],"delivery":"built-in","facets":[{"key":"protocols","value":["HTTP","OData V4","OData V2"],"source":{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"Class cds.RemoteService is a service proxy class to consume remote services via different protocols, like OData or plain REST."},"sources":[{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"Class cds.RemoteService is a service proxy class to consume remote services via different protocols, like OData or plain REST."},{"url":"https://cap.cloud.sap/docs/guides/services/consuming-services","title":"Consuming Services — capire, Feature Overview","checked":"2026-09-27","quote":"OData V4"},{"url":"https://cap.cloud.sap/docs/guides/services/consuming-services","title":"Consuming Services — capire, Feature Overview","checked":"2026-09-27","quote":"OData V2 (Deprecated)"}]}]},{"capability":"capability:service-composition","what_it_does":"Embeds a reuse package added with npm into the project, models, code, initial data and i18n, serves what the project's own models reference, lets an imported definition be extended and its implementation replaced with @impl, and applies the same to a subscribed SaaS through cds pull and cds push.","sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/reuse-and-compose","title":"CAP Service Composition — capire","checked":"2026-09-27","quote":"By default, when importing reuse packages, all imported content becomes an integral part of your project, it literally becomes embedded in your project."},{"url":"https://cap.cloud.sap/docs/guides/integration/reuse-and-compose","title":"CAP Service Composition — capire","checked":"2026-09-27","quote":"Everything that you are referring to from your own models is served. Everything outside of your models is ignored."},{"url":"https://cap.cloud.sap/docs/guides/integration/reuse-and-compose","title":"CAP Service Composition — capire","checked":"2026-09-27","quote":"You can even extend imported definitions, for example, add elements to imported entities, or add/override annotations, without limitations."}],"delivery":"built-in"},{"capability":"capability:hana-native-artifacts","what_it_does":"Treats an entity annotated @cds.persistence.exists as a facade for a database object it does not generate, renders a user-defined function or calculation view call from the matching hint, and inserts @sql.prepend and @sql.append snippets into the generated DDL unevaluated.","sources":[{"url":"https://cap.cloud.sap/docs/guides/databases/hana-native","title":"Using Native HANA Artifacts — capire","checked":"2026-09-27","quote":"Add the annotation @cds.persistence.exists to tell CDS that this object already exists on the database and must not be generated."},{"url":"https://cap.cloud.sap/docs/guides/databases/hana-native","title":"Using Native HANA Artifacts — capire","checked":"2026-09-27","quote":"@cds.persistence.udf to specify that the facade entity represents a user-defined function"},{"url":"https://cap.cloud.sap/docs/guides/databases/hana","title":"Using SAP HANA Cloud for Production — capire","checked":"2026-09-27","quote":"Not all clauses supported by SQL can directly be written in CDL syntax. To use native database clauses also in a CAP CDS model, you can provide arbitrary SQL snippets with the annotations @sql.prepend and @sql.append."}],"delivery":"built-in"},{"capability":"capability:transaction-management","what_it_does":"Starts, joins, commits and rolls back the database transaction around every service call, propagates user, tenant and locale through cds.context, demarcates a transaction by hand with cds.tx() and runs detached background work with cds.spawn().","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-tx","title":"Transaction Management — capire","checked":"2026-09-27","quote":"Whenever an instance of cds.Service processes requests, the core framework automatically cares for starting and committing or rolling back database transactions, connection pooling, principal propagation and tenant isolation."},{"url":"https://cap.cloud.sap/docs/node.js/cds-tx","title":"Transaction Management — capire","checked":"2026-09-27","quote":"Use cds.tx() to start and commit transactions manually, if you need to ensure two or more queries to run in a single transaction."},{"url":"https://cap.cloud.sap/docs/node.js/cds-tx","title":"Transaction Management — capire","checked":"2026-09-27","quote":"Runs the given function as detached continuation in a specified event context (not inheriting from the current one). Options every or after allow to run the function repeatedly or deferred."},{"url":"https://cap.cloud.sap/docs/node.js/cds-facade#cds-context","title":"The cds Façade Object — capire","checked":"2026-09-27","quote":"Provides access to common event context properties like tenant, user, locale as well as the current root transaction for automatically managed transactions."}],"delivery":"built-in"},{"capability":"capability:event-mesh","what_it_does":"Provides the messaging service kinds for SAP Event Mesh and SAP Cloud Application Event Hub: with a bound instance it creates a queue per receiver process and the subscriptions, and delivers an S/4HANA event to the same srv.on handler as a local one.","sources":[{"url":"https://cap.cloud.sap/docs/guides/events/event-mesh","title":"Messaging via SAP Event Mesh — capire","checked":"2026-09-27","quote":"CAP provides out-of-the-box support for SAP Event Mesh, and automatically handles many things behind the scenes, so that application coding stays agnostic and focused on conceptual messaging."},{"url":"https://cap.cloud.sap/docs/guides/events/event-mesh","title":"Messaging via SAP Event Mesh — capire","checked":"2026-09-27","quote":"When you run the services with a bound instance of SAP Event Mesh as documented in a previous section, CAP messaging service implementations will automatically create a queue for each receiver process."}],"delivery":"built-in"},{"capability":"capability:replication","delivery":"documented-pattern","sample":"artifact:capire-xtravels","what_it_does":"Shows service-level replication as application code in the Data Federation guide: about forty lines in the xtravels sample that turn each @federated entity into a table, schedule a replicate handler with the runtime's scheduling API and upsert the rows newer than the local maximum of modifiedAt. The runtime supplies the annotation, the scheduling and the remote query; the loop is the application's own.","sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/data-federation","title":"CAP-level Data Federation — capire","checked":"2026-09-27","quote":"Tag consumption views with the @federated annotation, to express your intent to have that data federated, that is, in close access locally."},{"url":"https://cap.cloud.sap/docs/guides/integration/data-federation","title":"CAP-level Data Federation — capire","checked":"2026-09-27","quote":"Next we implement a generic solution for data federation, which automates the basic hard-coded approach for data federation presented before. Here's the complete code, as found in srv/data-federation.js"}]},{"capability":"capability:data-privacy","delivery":"announced","what_it_does":"Data retention management, the third automation the personal-data annotations are meant to drive: the guide page exists and says it is under construction, and nothing is shipped to cite yet.","sources":[{"url":"https://cap.cloud.sap/docs/guides/security/dpp-drm","title":"Data Retention Management — capire","checked":"2026-09-27","quote":"Under construction."},{"url":"https://cap.cloud.sap/docs/guides/security/dpp-annotations","title":"Annotating Personal Data — capire","checked":"2026-09-27","quote":"In order to automate audit logging, personal data management, and data retention management as much as possible, the first and frequently only task to do as an application developer is to identify entities and elements (potentially) holding personal data using @PersonalData annotations."}]},{"capability":"capability:data-modelling","delivery":"built-in","what_it_does":"Compiles CDL from files or in-memory sources to CSN with cds.compile, and every generic handler reads the model through that CSN at runtime.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-compile","title":"Parsing and Compiling Models — capire","checked":"2026-09-27","quote":"This is the central function to compile models from files or in-memory sources to CSN."},{"url":"https://cap.cloud.sap/docs/node.js/cds-reflect","title":"Reflecting CDS Models — capire","checked":"2026-09-27","quote":"Method cds.linked (or cds.reflect which is an alias to the same method) turns a given parsed model into an instance of class LinkedCSN, and all definitions within into instances of class LinkedDefinition, recursively."}]},{"capability":"capability:database-connectors","delivery":"built-in","what_it_does":"Defines cds.DatabaseService, the technical service every database package subclasses, and auto-wires the installed one, SQLite, SAP HANA or PostgreSQL, for the active profile.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/databases","title":"Database Services — capire","checked":"2026-09-27","quote":"Class cds.DatabaseService and subclasses thereof are technical services representing persistent storage."},{"url":"https://cap.cloud.sap/docs/guides/databases/new-dbs","title":"Using Databases — capire","checked":"2026-09-27","quote":"Out of the box-support is provided for SAP HANA, SQLite, H2 (Java only), and PostgreSQL."}]},{"capability":"capability:health-checks","delivery":"built-in","what_it_does":"Answers GET /health with status 200 and { status: UP } as the liveness and readiness endpoint, with nothing configured.","sources":[{"url":"https://cap.cloud.sap/docs/guides/deploy/health-checks","title":"Health Checks — capire","checked":"2026-09-27","quote":"For CAP Node.js, the runtime provides an out-of-the-box endpoint for liveness and readiness checks at /health."}]},{"capability":"capability:local-development","delivery":"built-in","what_it_does":"Mocks every imported remote service in process with mock data in the same in-memory database, and authenticates with mocked users by default in development, so the whole stack runs on a laptop before anything is bound.","sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/inner-loops","title":"Inner-Loop Development — capire","checked":"2026-09-27","quote":"CAP mocks imported services automatically in-process with mock data in the same in-memory database as our own data."},{"url":"https://cap.cloud.sap/docs/node.js/authentication","title":"Authentication (Node.js) — capire","checked":"2026-09-27","quote":"CAP ships with a few prebuilt authentication strategies, used by default: mocked during development and jwt in production."}]},{"capability":"capability:multitenancy","delivery":"built-in","what_it_does":"Isolates tenants at runtime: every service call carries the tenant in its context and the framework connects it to that tenant's database. Provisioning, subscription and per-tenant deployment are @sap/cds-mtxs.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-tx","title":"Transaction Management — capire","checked":"2026-09-27","quote":"Whenever an instance of cds.Service processes requests, the core framework automatically cares for starting and committing or rolling back database transactions, connection pooling, principal propagation and tenant isolation."}]},{"capability":"capability:odata","delivery":"built-in","what_it_does":"Serves every exposed service as OData V4 from the model with no adapter in between, and OData V2 through its proxy.","sources":[{"url":"https://cap.cloud.sap/docs/guides/protocols/","title":"Service Protocols in CAP — capire","checked":"2026-09-27","quote":"OData: A widely used protocol for building and consuming RESTful APIs. CAP provides built-in support for OData v2 and v4, allowing you to easily expose your data models as OData services."},{"url":"https://cap.cloud.sap/docs/guides/services/custom-actions","title":"Custom Actions and Functions — capire","checked":"2026-09-27","quote":"In addition to common CRUD operations, you can declare domain-specific custom operations as shown below. These custom operations always need custom implementations in corresponding events handlers."},{"url":"https://cap.cloud.sap/docs/node.js/cds-serve","title":"Serving Provided Services — capire","checked":"2026-09-27","quote":"Allows to specify the protocol through which to expose the service."},{"url":"https://cap.cloud.sap/docs/node.js/core-services#serving-provided-services-cds-serve","title":"Core Services (Node.js) — capire","checked":"2026-09-27","quote":"When starting a server with cds watch or cds run this uses cds.serve to automatically create instances of cds.Service for all such service definitions found in our models, and serve them to respective endpoints via corresponding protocols."}],"facets":[{"key":"protocols","value":["HTTP","OData V4"],"source":{"url":"https://cap.cloud.sap/docs/node.js/cds-serve#cds-protocols","title":"Serving Provided Services — capire, cds.protocols","checked":"2026-09-27","quote":"The framework provides adapters for OData V4 and REST out of the box."},"sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-serve","title":"Serving Provided Services — capire, cds.serve","checked":"2026-09-27","quote":"`'rest'` plain HTTP rest protocol without any OData-specific extensions"},{"url":"https://cap.cloud.sap/docs/node.js/cds-serve#cds-protocols","title":"Serving Provided Services — capire, cds.protocols","checked":"2026-09-27","quote":"the default protocol is OData V4."}]}]},{"capability":"capability:status-flows","delivery":"built-in","what_it_does":"Validates and executes the status transitions modelled with @flow.status, @from and @to on bound actions in the generic handlers, out of the box; in CAP Java the same is the cds-feature-flow package.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/status-flows","title":"Status-Transition Flows — capire","checked":"2026-09-27","quote":"In CAP Node.js support for flows is built-in and available out of the box. For CAP Java, it is provided by the feature cds-feature-flow."}]},{"capability":"capability:concurrency-control","delivery":"built-in","what_it_does":"Optimistic concurrency with ETags: an element annotated @odata.etag is the version, and an update whose If-Match no longer holds is rejected by the generic handlers.","sources":[{"url":"https://cap.cloud.sap/docs/guides/services/served-ootb#concurrency-control","title":"Generic Service Providers — Concurrency Control — capire","checked":"2026-09-27","quote":"Enable ETags by adding the @odata.etag annotation to an element to be used to calculate an ETag value as follows:"},{"url":"https://cap.cloud.sap/docs/node.js/app-services#static-handle-etags","title":"Application Services (Node.js) — capire","checked":"2026-09-27","quote":"This method is adding request handlers for out-of-the-box concurrency control using ETags, as documented in the Providing Services guide."}]}],"requires":[{"ref":"artifact:sap-cloud-sdk-http-client","requirement":"conditional","role":"destination-http-client","condition":"A remote service call needs on-premise connectivity or an authentication type the native fetch client does not support; used by default whenever the package is installed.","for":"Resolving destinations that the runtime's own fetch client does not cover; installing it makes the runtime use it instead.","sources":[{"url":"https://cap.cloud.sap/docs/releases/2026/sep26","title":"CAP Release Notes — September 2026, Destinations w/o Cloud SDK","checked":"2026-09-18","quote":"Install @sap-cloud-sdk/http-client in your project, to have that used automatically instead of the built-in native fetch client. Do so if you use an authentication type that's not supported yet — for example, OnPremise connectivity."}]},{"ref":"artifact:sap-cloud-sdk-http-client","requirement":"conditional","for":"Outgoing remote service calls that need a destination feature the native fetch client does not cover, such as on-premise connectivity or an authentication type beyond basic and client credentials; used by default when it is installed.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"If the SAP Cloud SDK HTTP client (@sap-cloud-sdk/http-client) is installed, CAP uses it by default. The client provides full support for all SAP BTP Destination service features including on-premise connectivity."}],"condition":"A remote service call needs on-premise connectivity or an authentication type the native fetch client does not support; used by default whenever the package is installed."}],"changed_in":[{"version":"9.0.0","date":"2025-05-07","what_changed":"The generic outbox becomes CAP-native task queues: `cds.queued()` and `cds.unqueued()` replace `cds.outboxed()` and `cds.unboxed()`, `cds.requires.queue` replaces `cds.requires.outbox`, and the queue is on by default, which needs a deployment of the `cds.outbox.Messages` table where the outbox was not switched on before.","invalidates":"Code and posts that call `cds.outboxed()` or configure `cds.requires.outbox`; a temporary compatibility layer keeps them working in 9.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.0.0","checked":"2026-10-19","quote":"Global configuration `cds.requires.queue` replaces `cds.requires.outbox` (temporary compat in place)"}},{"version":"9.0.0","date":"2025-05-07","what_changed":"`PATCH` no longer creates a missing resource and `PUT` no longer resets unprovided properties to their defaults; the flags `cds.runtime.patch_as_upsert` and `cds.runtime.put_as_replace` bring the old behaviour back.","invalidates":"Clients that create a record with PATCH.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.0.0","checked":"2026-10-19","quote":"`PATCH` requests no longer create the target resource if it doesn't exist (`UPSERT` semantics)"}},{"version":"9.0.0","date":"2025-05-07","what_changed":"The legacy OData adapter, enabled with the compat flag `cds.features.odata_new_adapter=false`, is removed.","invalidates":"Setups that set `cds.features.odata_new_adapter=false`.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.0.0","checked":"2026-10-19","quote":"Legacy OData adapter which was enabled with compat `cds.features.odata_new_adapter=false`"}},{"version":"9.0.0","date":"2025-05-07","what_changed":"The legacy database services enabled with `@sap/cds-hana` or `sqlite3` are removed.","invalidates":"Setups that still use `@sap/cds-hana` or `sqlite3` as the database service.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.0.0","checked":"2026-10-19","quote":"Legacy Database services which were enabled with `@sap/cds-hana` or `sqlite3`"}},{"version":"9.0.0","date":"2025-05-07","what_changed":"`cds.test` requires [@cap-js/cds-test](artifact:cap-js-cds-test) to be installed.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.0.0","checked":"2026-10-19","quote":"`cds.test` now requires module `@cap-js/cds-test` to be installed."}},{"version":"9.3.0","date":"2025-08-29","what_changed":"`cds.User.tokenInfo` is deprecated in favour of `cds.context.user.authInfo.token`, and the undocumented `cds.context.http.req.authInfo` in favour of `cds.context.user.authInfo`; 10.0.0 removed both. Patch-level validations for drafts are on by default, switched off with `cds.fiori.draft_messages=false`.","invalidates":"Handlers that read the token through `req.user.tokenInfo` or `cds.context.http.req.authInfo`.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.3.0","checked":"2026-10-19","quote":"`cds.User.tokenInfo` is deprecated. Use `cds.context.user.authInfo.token` instead."}},{"version":"9.7.0","date":"2026-02-02","what_changed":"Express 5 is supported beside Express 4, and `express` moved from a peer dependency of `@sap/cds` to a regular one, so an application that pins it or requires it in its own code declares the dependency itself.","invalidates":"Setup notes that add `express` to a CAP project because `@sap/cds` lists it as a peer dependency.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 9.7.0","checked":"2026-10-19","quote":"`express` is no longer a peer dependency of `@sap/cds` but a regular one."}},{"version":"10.0.0","date":"2026-06-01","what_changed":"Node.js 22 is the minimum and Node.js 20 is no longer supported.","invalidates":"Setup notes that run CAP on Node.js 20.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 10.0.0","checked":"2026-10-19","quote":"Node.js 22 is now the minimum required Node.js version. Version 20 is no longer supported."}},{"version":"10.0.0","date":"2026-06-01","what_changed":"`cds.features.ieee754compatible` defaults to true, so every database service returns Decimal and Int64 values as strings.","invalidates":"Handlers that read Decimal or Int64 values as numbers.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 10.0.0","checked":"2026-10-19","quote":"`cds.features.ieee754compatible` is changed to _true_ to return strings for Decimal/Int64 for all db services."}},{"version":"10.0.0","date":"2026-06-01","what_changed":"`cds.compile.to.hdbcds()` is removed in favour of `cds.compile.to.hdbtable()`.","invalidates":"Code that calls `cds.compile.to.hdbcds()`.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 10.0.0","checked":"2026-10-19","quote":"`cds.compile.to.hdbcds()` — use `cds.compile.to.hdbtable()` instead"}},{"version":"@sap/cds 10.0","date":"2026-07-02","what_changed":"Write operations answer in one shape across application services, database services and HCQL-proxied remote services: an array carrying an .affected property. Before 10.0 the result of a write differed between an app service and a database service.","invalidates":"Node.js code and posts that read the result of an INSERT, UPDATE or DELETE as a single object or a row count.","source":{"url":"https://cap.cloud.sap/docs/releases/2026/jun26","title":"CAP Release Notes — June 2026, Consolidated Service APIs","checked":"2026-09-18","quote":"The generic CRUD handler now returns a uniform shape for all write operations: an array with an `.affected` property."}},{"version":"@sap/cds 10.0","date":"2026-07-02","what_changed":"A request that carries no draft notation addresses active data, because the runtime assumes IsActiveEntity=true. Draft locks are unchanged: a direct update or delete against an instance that has a draft is rejected, as is a conflicting edit.","invalidates":"Guidance that a non-Fiori client has to spell out draft notation to reach the active data of a draft-enabled entity.","source":{"url":"https://cap.cloud.sap/docs/releases/2026/jun26","title":"CAP Release Notes — June 2026, Bypass Drafts by Default","checked":"2026-09-18","quote":"Taking this further, CAP assumes `IsActiveEntity=true` by default. So, the following requests (no draft notion) always refer to active data, equivalent to the ones above."}},{"version":"10.1.0","date":"2026-09-02","what_changed":"In production, messaging webhook endpoints are no longer registered anonymously when neither `cds.requires.auth` nor `cds.requires.messaging.xsuaa` is configured. A static `@restrict.where` on a collection-bound action is enforced, where before this release it was ignored.","invalidates":"A deployment whose messaging webhooks are reached anonymously with no auth configured, or whose collection-bound action is called by users its `@restrict.where` excludes.","source":{"url":"https://unpkg.com/@sap/cds@10.1.1/CHANGELOG.md","title":"@sap/cds changelog, 10.1.0","checked":"2026-10-19","quote":"A static `@restrict.where` on a collection-bound action is now enforced, rejecting callers who do not satisfy the condition"}},{"version":"@sap/cds 10.1","date":"2026-09-07","what_changed":"The runtime's own fetch client resolves SAP BTP destinations, which until this release needed the SAP Cloud SDK in production. It is marked beta and covers proxy type Internet with NoAuthentication, BasicAuthentication or OAuth2ClientCredentials.","invalidates":"Guidance that a CAP Node.js application needs the SAP Cloud SDK to resolve a destination in production. It still does for anything outside the three authentication types named above.","source":{"url":"https://cap.cloud.sap/docs/releases/2026/sep26","title":"CAP Release Notes — September 2026, Destinations w/o Cloud SDK","checked":"2026-09-18","quote":"So far, the Node-native Fetch API, as introduced in April 2026, couldn't resolve SAP BTP Destinations. Hence, in production, SAP Cloud SDK was still required."}}],"history":[{"date":"2026-09-18","field":"description.what_it_solves","from":null,"to":"The CAP Node.js runtime: it compiles the CDS model, serves the services declared in it, and answers the generic requests — read, write, draft, search, paging — before any handler of yours runs. cds.env resolves the configuration those services read, and every cds-plugin is loaded by this package. It stops at the Node.js stack and at the project's edges: the CLI that scaffolds, builds and deploys is [@sap/cds-dk](artifact:sap-cds-dk), CAP Java is a second runtime for the same model, and databases, messaging and AI arrive as plugins. In a project it is one dependency in package.json and the module every server file loads.","reason":"The page opened with its index line alone. Written to say what the runtime answers, and where it stops."},{"date":"2026-09-18","field":"provides","from":null,"to":"capability:destinations","reason":"CAP Node.js 10.1 resolves SAP BTP destinations in the runtime's own fetch client, in beta and within the limits the release note states. Until then the edge belonged to the SAP Cloud SDK packages alone, which is also why the conditional requires on @sap-cloud-sdk/http-client is recorded beside it."},{"date":"2026-09-18","field":"changed_in","from":null,"to":"@sap/cds 10.0 (write result shape, drafts bypassed by default), @sap/cds 10.1 (destinations without the Cloud SDK)","reason":"Read from the June and September 2026 release notes, so a piece written against CAP Node.js 9 can be seen to predate them. The 10.0 date is when the first 10.x reached npm; the release note itself names only the month."},{"date":"2026-09-21","field":"provides","from":null,"to":"capability:retrieval-augmented-generation","reason":"capire's CAP-native Embeddings guide documents the Vector type as built into CDS and vector_embedding, cosine_similarity and l2distance as functions of the query language, with a stored calculated element recomputing an embedding on write. The capability behind the CAP door carried no core edge and read community-only because of it. The edge is scoped to that modelled half in what_it_does: chunking and prompt assembly stay with the plugins and the application."},{"date":"2026-09-22","field":"requires","from":"sap-cloud-sdk-http-client","to":"+btp-hana-cloud","reason":"npm run check:usecases listed the path of answer-a-question-from-records-in-a-cap-service this entry is a part of with no edge between its parts. capire's databases overview names SAP HANA as the production default and the embeddings guide bases the vector functions on its implementations, quoted now; conditional because SQLite and PostgreSQL are named as the other databases."},{"date":"2026-09-23","field":"requires","from":"sap-cloud-sdk-http-client, btp-hana-cloud","to":"sap-cloud-sdk-http-client","reason":"The edge to SAP HANA Cloud, entered 2026-09-22, is removed: capire names SAP HANA as a CAP application's default database, not as a dependency of this package, whose own entry says databases arrive as plugins. The database service, @cap-js/hana, carries the edge since 2026-09-23, as cds-feature-hana does on the Java side."},{"date":"2026-09-27","field":"provides[service-integration].facets.protocols, provides[odata].facets.protocols","from":"not stated","to":"HTTP, OData V4, OData V2 consumed; HTTP, OData V4 served","reason":"The option states the protocols it speaks for this concern, from its documentation's sentence (docs/concepts/design-roles-and-interfaces.md, P2). Both facets cite the published capire pages, and each value carries the sentence that names it. What it serves rests on cds.protocols, which names OData V4 and REST outright. What it consumes rests on the Remote Services page, which names OData and plain REST, and, for the OData versions, on the Consuming Services guide, the one capire page that enumerates them; that guide says it is outdated and kept for archival purposes, so the entry dates the reading. HCQL, which CAP-level Service Integration calls CAP's native protocol, is not in the atlas's protocol list and stays out until it is."}],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"released this month"},{"label":"Continuity","tier":"fair","evidence":"2 publishers on npm"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"is the line, v10.2.1"},{"label":"Survived majors","tier":"good","evidence":"released before and after @sap/cds 10"},{"label":"Maintainer's CI","tier":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"not crawled"},{"label":"Docs","tier":"good","evidence":"docs site, README 1 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the package"}],"reach":[{"value":137171,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"10.2.1","majors":{"1":{"version":"1.14.1","date":"2020-06-11"},"2":{"version":"2.8.0","date":"2020-06-11"},"3":{"version":"3.18.1","date":"2020-06-11"},"4":{"version":"4.1.5","date":"2020-08-05"},"5":{"version":"5.0.4","date":"2021-04-07"},"6":{"version":"6.0.1","date":"2022-07-05"},"7":{"version":"7.0.0","date":"2023-06-22"},"8":{"version":"8.0.3","date":"2024-07-12"},"9":{"version":"9.0.2","date":"2025-06-02"},"10":{"version":"10.0.3","date":"2026-07-02"}},"license":"SEE LICENSE IN LICENSE","first_release":"2020-06-11","last_release":"2026-10-21","releases":248,"cadence_days":10,"maintainers":2,"repository":null,"peer_cds":null,"test_script":false,"types":false,"downloads_weekly":137171,"months_since_release":0,"dormant":false,"repository_directory":null,"npm_document_version":"10.1.1","npm_document_integrity":"sha512-0F2R0BqQS6q463WlDlkSqPaV8WK/YXDCKgVmAWcvYSRwcbJUFDBK1X4RF5obHFWjqOO1rXsf9Jh105inHXU3/g==","npm_document_tarball":"https://registry.npmjs.org/@sap/cds/-/cds-10.1.1.tgz","readme_path":"README.md","readme_bytes":519,"readme_source":"npm","changelog":true,"changelog_path":"CHANGELOG.md","license_file":true,"license_path":"LICENSE","license_name":"SAP DEVELOPER LICENSE AGREEMENT 3.2 CAP","dependencies":4,"node_engine":">=22.12","downloads_monthly":887698},"release_notes":{"license":"SAP DEVELOPER LICENSE AGREEMENT 3.2 CAP","quotable":false,"source":{"kind":"npm","path":"CHANGELOG.md","version":"10.2.1","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"10.2.1","date":"2026-10-20","date_source":"heading","heading":"Version 10.2.1 - 2026-10-20","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"61d359785b872ee2"},{"version":"10.2.0","date":"2026-10-19","date_source":"heading","heading":"Version 10.2.0 - 2026-10-19","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"change","heading":"Changed","items":5},{"kind":"fix","heading":"Fixed","items":18},{"kind":"removal","heading":"Removed","items":1}],"hash":"c475ce2486002d36"},{"version":"10.1.1","date":"2026-09-17","date_source":"heading","heading":"Version 10.1.1 - 2026-09-17","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":14}],"hash":"ca431c2cdc342d5c"},{"version":"10.1.0","date":"2026-09-02","date_source":"heading","heading":"Version 10.1.0 - 2026-09-02","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"change","heading":"Changed","items":3},{"kind":"fix","heading":"Fixed","items":11},{"kind":"removal","heading":"Removed","items":1}],"hash":"fb7529019ef341d5"},{"version":"10.0.6","date":"2026-08-18","date_source":"heading","heading":"Version 10.0.6 - 2026-08-18","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":6}],"hash":"b68ff71daf4ee05a"},{"version":"10.0.5","date":"2026-07-28","date_source":"heading","heading":"Version 10.0.5 - 2026-07-28","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"32e20b3d13474639"},{"version":"10.0.4","date":"2026-07-21","date_source":"heading","heading":"Version 10.0.4 - 2026-07-21","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":4}],"hash":"043bad4e18eab6e8"},{"version":"10.0.3","date":"2026-07-02","date_source":"heading","heading":"Version 10.0.3 - 2026-07-02","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"3beafef804e6568e"},{"version":"10.0.2","date":"2026-06-29","date_source":"heading","heading":"Version 10.0.2 - 2026-06-29","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":6}],"hash":"d78d2b28888d7b59"},{"version":"10.0.1","date":"2026-06-19","date_source":"heading","heading":"Version 10.0.1 - 2026-06-19","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":7}],"hash":"53dd9f8be78375fe"},{"version":"10.0.0","date":"2026-06-01","date_source":"heading","heading":"Version 10.0.0 - 2026-06-01","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":7},{"kind":"change","heading":"Changed","items":18},{"kind":"fix","heading":"Fixed","items":10},{"kind":"removal","heading":"Removed","items":14}],"hash":"3ae20b0c9cc68980"},{"version":"9.9.3","date":"2026-07-21","date_source":"heading","heading":"Version 9.9.3 - 2026-07-21","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"887b24b632e6d476"},{"version":"9.9.2","date":"2026-06-29","date_source":"heading","heading":"Version 9.9.2 - 2026-06-29","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"de42843f3174f5c8"},{"version":"9.9.1","date":"2026-04-29","date_source":"heading","heading":"Version 9.9.1 - 2026-04-29","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"a8fe0bc5372d8f58"},{"version":"9.9.0","date":"2026-04-22","date_source":"heading","heading":"Version 9.9.0 - 2026-04-22","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":10},{"kind":"change","heading":"Changed","items":2},{"kind":"fix","heading":"Fixed","items":10}],"hash":"3f930d368e38a6ae"},{"version":"9.8.5","date":"2026-04-08","date_source":"heading","heading":"Version 9.8.5 - 2026-04-08","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":4}],"hash":"4e46547aa3b98adf"},{"version":"9.8.4","date":"2026-03-26","date_source":"heading","heading":"Version 9.8.4 - 2026-03-26","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"54f67968d6232006"},{"version":"9.8.3","date":"2026-03-12","date_source":"heading","heading":"Version 9.8.3 - 2026-03-12","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"0a3a69b463287738"},{"version":"9.8.2","date":"2026-03-10","date_source":"heading","heading":"Version 9.8.2 - 2026-03-10","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"9cbff63b2c6760b7"},{"version":"9.8.1","date":"2026-03-09","date_source":"heading","heading":"Version 9.8.1 - 2026-03-09","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"050cfa82aec730a5"},{"version":"9.8.0","date":"2026-03-06","date_source":"heading","heading":"Version 9.8.0 - 2026-03-06","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":8},{"kind":"change","heading":"Changed","items":4},{"kind":"fix","heading":"Fixed","items":11}],"hash":"43923029b7684bb7"},{"version":"9.7.1","date":"2026-02-06","date_source":"heading","heading":"Version 9.7.1 - 2026-02-06","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"34e64167aa90f52c"},{"version":"9.7.0","date":"2026-02-02","date_source":"heading","heading":"Version 9.7.0 - 2026-02-02","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":6},{"kind":"change","heading":"Changed","items":4},{"kind":"fix","heading":"Fixed","items":13},{"kind":"removal","heading":"Removed","items":1}],"hash":"d8ab011a101c5e37"},{"version":"9.6.4","date":"2026-01-20","date_source":"heading","heading":"Version 9.6.4 - 2026-01-20","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"1b6e5be50c3506e0"},{"version":"9.6.3","date":"2026-01-14","date_source":"heading","heading":"Version 9.6.3 - 2026-01-14","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"6491627f9cb34e98"},{"version":"9.6.2","date":"2026-01-08","date_source":"heading","heading":"Version 9.6.2 - 2026-01-08","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"6ab73eb3c990c7d5"},{"version":"9.6.1","date":"2025-12-18","date_source":"heading","heading":"Version 9.6.1 - 2025-12-18","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"62fdec943e13b577"},{"version":"9.6.0","date":"2025-12-16","date_source":"heading","heading":"Version 9.6.0 - 2025-12-16","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":4},{"kind":"change","heading":"Changed","items":2},{"kind":"fix","heading":"Fixed","items":11}],"hash":"6f4f6a8dcd7fc218"},{"version":"9.5.2","date":"2025-12-09","date_source":"heading","heading":"Version 9.5.2 - 2025-12-09","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"3e59ccc00cd2831d"},{"version":"9.5.1","date":"2025-12-01","date_source":"heading","heading":"Version 9.5.1 - 2025-12-01","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"47d430d505d52f60"},{"version":"9.5.0","date":"2025-11-26","date_source":"heading","heading":"Version 9.5.0 - 2025-11-26","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":10},{"kind":"change","heading":"Changed","items":3},{"kind":"fix","heading":"Fixed","items":11}],"hash":"532fba8cb63daea1"},{"version":"9.4.5","date":"2025-11-07","date_source":"heading","heading":"Version 9.4.5 - 2025-11-07","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"b947e19b79ab6931"},{"version":"9.4.4","date":"2025-10-23","date_source":"heading","heading":"Version 9.4.4 - 2025-10-23","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":4}],"hash":"7390a0be622a0fa7"},{"version":"9.4.3","date":"2025-10-10","date_source":"heading","heading":"Version 9.4.3 - 2025-10-10","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":4}],"hash":"e591cf92d19428e9"},{"version":"9.4.2","date":"2025-10-08","date_source":"heading","heading":"Version 9.4.2 - 2025-10-08","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"c389e2c0a080c88e"},{"version":"9.4.1","date":"2025-10-06","date_source":"heading","heading":"Version 9.4.1 - 2025-10-06","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"af58385f3b8caf0b"},{"version":"9.4.0","date":"2025-09-30","date_source":"heading","heading":"Version 9.4.0 - 2025-09-30","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":6},{"kind":"change","heading":"Changed","items":4},{"kind":"fix","heading":"Fixed","items":7}],"hash":"6204e1f5e2c7f22c"},{"version":"9.3.1","date":"2025-09-03","date_source":"heading","heading":"Version 9.3.1 - 2025-09-03","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"37fa7e2dc8a289d6"},{"version":"9.3.0","date":"2025-08-29","date_source":"heading","heading":"Version 9.3.0 - 2025-08-29","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":11},{"kind":"change","heading":"Changed","items":5},{"kind":"fix","heading":"Fixed","items":7},{"kind":"removal","heading":"Removed","items":3}],"hash":"13c991017e179286"},{"version":"9.2.1","date":"2025-08-15","date_source":"heading","heading":"Version 9.2.1 - 2025-08-15","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"7da3ce4fd4d97a59"},{"version":"9.2.0","date":"2025-07-29","date_source":"heading","heading":"Version 9.2.0 - 2025-07-29","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":6},{"kind":"change","heading":"Changed","items":3},{"kind":"fix","heading":"Fixed","items":7}],"hash":"559a34f0de2ad61e"},{"version":"9.1.0","date":"2025-06-30","date_source":"heading","heading":"Version 9.1.0 - 2025-06-30","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"change","heading":"Changed","items":3},{"kind":"fix","heading":"Fixed","items":8}],"hash":"a10829415601a293"},{"version":"9.0.4","date":"2025-06-18","date_source":"heading","heading":"Version 9.0.4 - 2025-06-18","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":6}],"hash":"a8f679fdcc3d2f41"},{"version":"9.0.3","date":"2025-06-04","date_source":"heading","heading":"Version 9.0.3 - 2025-06-04","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"76453de09cfa77e2"},{"version":"9.0.2","date":"2025-05-28","date_source":"heading","heading":"Version 9.0.2 - 2025-05-28","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"change","heading":"Changed","items":1},{"kind":"fix","heading":"Fixed","items":1}],"hash":"9e26104bb0ab8b77"},{"version":"9.0.1","date":"2025-05-26","date_source":"heading","heading":"Version 9.0.1 - 2025-05-26","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"change","heading":"Changed","items":2},{"kind":"fix","heading":"Fixed","items":9}],"hash":"8e7fee5d7673f4f3"},{"version":"9.0.0","date":"2025-05-07","date_source":"heading","heading":"Version 9.0.0 - 2025-05-07","url":"https://unpkg.com/@sap/cds@10.2.1/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":8},{"kind":"change","heading":"Changed","items":13},{"kind":"fix","heading":"Fixed","items":7},{"kind":"removal","heading":"Removed","items":20}],"hash":"da4d067c77557eb0"}],"versions":[{"version":"10.2.1","date":"2026-10-21"},{"version":"9.9.4","date":"2026-10-21"},{"version":"10.1.1","date":"2026-09-17"},{"version":"10.1.0","date":"2026-09-07"},{"version":"10.0.6","date":"2026-08-18"},{"version":"10.0.5","date":"2026-07-28"},{"version":"10.0.4","date":"2026-07-21"},{"version":"9.9.3","date":"2026-07-21"},{"version":"10.0.3","date":"2026-07-02"},{"version":"9.9.2","date":"2026-06-29"},{"version":"9.9.1","date":"2026-04-28"},{"version":"8.9.10","date":"2026-04-28","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"9.9.0","date":"2026-04-23"},{"version":"9.8.5","date":"2026-04-08"},{"version":"9.8.4","date":"2026-03-26"},{"version":"9.8.3","date":"2026-03-12"},{"version":"8.9.9","date":"2026-03-12","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"9.8.2","date":"2026-03-10"},{"version":"9.8.1","date":"2026-03-09"},{"version":"9.8.0","date":"2026-03-09"},{"version":"9.7.1","date":"2026-02-06"},{"version":"9.7.0","date":"2026-02-02"},{"version":"9.6.4","date":"2026-01-20"},{"version":"9.6.3","date":"2026-01-15"},{"version":"9.6.2","date":"2026-01-08"},{"version":"9.6.1","date":"2025-12-18"},{"version":"8.9.8","date":"2025-12-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"9.6.0","date":"2025-12-16"},{"version":"9.5.2","date":"2025-12-09"},{"version":"9.5.1","date":"2025-12-01"},{"version":"9.4.5","date":"2025-11-10"},{"version":"8.9.7","date":"2025-11-10","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"9.4.4","date":"2025-10-23"},{"version":"9.4.3","date":"2025-10-10"},{"version":"9.4.2","date":"2025-10-08"},{"version":"9.3.1","date":"2025-09-03"},{"version":"9.3.0","date":"2025-09-01"},{"version":"9.2.1","date":"2025-08-15"},{"version":"9.2.0","date":"2025-07-31"},{"version":"8.9.6","date":"2025-07-29","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.9.5","date":"2025-07-25","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"9.1.0","date":"2025-07-02"},{"version":"9.0.4","date":"2025-06-18"},{"version":"9.0.3","date":"2025-06-04"},{"version":"9.0.2","date":"2025-06-02"},{"version":"8.9.4","date":"2025-05-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.9.3","date":"2025-05-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.9.2","date":"2025-04-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.9.1","date":"2025-04-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.9.0","date":"2025-03-31","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.8.3","date":"2025-03-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.8.2","date":"2025-03-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.8.1","date":"2025-03-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.8.0","date":"2025-03-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.7.2","date":"2025-02-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.7.1","date":"2025-02-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.7.0","date":"2025-01-28","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.6.2","date":"2025-01-28","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.6.1","date":"2025-01-10","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.6.0","date":"2024-12-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.5.1","date":"2024-12-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.5.0","date":"2024-11-26","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.4.2","date":"2024-11-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.4.1","date":"2024-11-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.4.0","date":"2024-10-29","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.3.1","date":"2024-10-08","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.3.0","date":"2024-10-01","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.2.3","date":"2024-09-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.2.2","date":"2024-09-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.5","date":"2024-09-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.2.1","date":"2024-09-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.2.0","date":"2024-09-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.1.1","date":"2024-08-08","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.1.0","date":"2024-07-29","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.0.4","date":"2024-07-19","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.4","date":"2024-07-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"8.0.3","date":"2024-07-12","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.3","date":"2024-06-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.2","date":"2024-05-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.1","date":"2024-05-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.9.0","date":"2024-05-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.8.2","date":"2024-04-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.8.1","date":"2024-04-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.8.0","date":"2024-03-26","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.7.3","date":"2024-03-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.7.2","date":"2024-03-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.7.1","date":"2024-03-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.7.0","date":"2024-02-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.6.4","date":"2024-02-21","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.6.3","date":"2024-02-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.6.2","date":"2024-02-09","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.6.1","date":"2024-01-31","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.5.3","date":"2024-01-23","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.5.2","date":"2024-01-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.5.1","date":"2023-12-21","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.5.0","date":"2023-12-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.4.2","date":"2023-11-30","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.4.1","date":"2023-11-23","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.4.0","date":"2023-11-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"1.18.2","date":"2023-11-08"},{"version":"1.17.0","date":"2023-11-08"},{"version":"7.3.1","date":"2023-10-24","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.3.0","date":"2023-10-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.2.1","date":"2023-09-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.2.0","date":"2023-09-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.1.2","date":"2023-08-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.1.1","date":"2023-08-01","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.1.0","date":"2023-07-31","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.0.3","date":"2023-07-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.0.2","date":"2023-07-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.0.1","date":"2023-07-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"7.0.0","date":"2023-06-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.8.4","date":"2023-06-15","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.8.3","date":"2023-06-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.8.2","date":"2023-05-30","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.8.1","date":"2023-05-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.7.2","date":"2023-04-24","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.7.1","date":"2023-04-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.7.0","date":"2023-03-29","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.6.2","date":"2023-03-17","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.6.1","date":"2023-03-09","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.6.0","date":"2023-02-28","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.5.0","date":"2023-01-30","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.4.1","date":"2023-01-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.4.0","date":"2022-12-15","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.3.2","date":"2022-11-21","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.3.1","date":"2022-11-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.2.4","date":"2022-11-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.3.0","date":"2022-11-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.2.3","date":"2022-10-21","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.2.2","date":"2022-10-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.2.1","date":"2022-10-10","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.1.3","date":"2022-09-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.1.2","date":"2022-09-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.1.1","date":"2022-08-25","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.1.0","date":"2022-08-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.0.4","date":"2022-07-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.0.3","date":"2022-07-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.0.2","date":"2022-07-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"6.0.1","date":"2022-07-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.8","date":"2022-06-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.7","date":"2022-06-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.6","date":"2022-05-24","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.5","date":"2022-05-09","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.4","date":"2022-05-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.3","date":"2022-04-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.2","date":"2022-04-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.1","date":"2022-03-31","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.9.0","date":"2022-03-28","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.8.4","date":"2022-03-17","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.8.3","date":"2022-03-01","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.8.2","date":"2022-02-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.8.1","date":"2022-02-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.8.0","date":"2022-01-31","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.7.5","date":"2022-01-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.7.4","date":"2021-12-22","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.7.3","date":"2021-12-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.7.2","date":"2021-12-09","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.7.1","date":"2021-12-06","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.6.4","date":"2021-11-23","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.6.3","date":"2021-11-15","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.6.2","date":"2021-11-08","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.6.1","date":"2021-11-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.6.0","date":"2021-11-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.5","date":"2021-10-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.4","date":"2021-10-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.3","date":"2021-10-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.2","date":"2021-09-29","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.1","date":"2021-09-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.5.0","date":"2021-09-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.6","date":"2021-09-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.5","date":"2021-09-15","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.4","date":"2021-09-09","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.3","date":"2021-08-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.2","date":"2021-08-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.1","date":"2021-08-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.4.0","date":"2021-08-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.3.2","date":"2021-07-19","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.3.1","date":"2021-07-13","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.3.0","date":"2021-07-12","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.1.5","date":"2021-05-25","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.1.4","date":"2021-05-12","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.1.3","date":"2021-05-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.1.2","date":"2021-05-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.1.1","date":"2021-05-10","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.6.6","date":"2021-05-10","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.0.6","date":"2021-04-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"5.0.4","date":"2021-04-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.6.5","date":"2021-03-15","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.6.4","date":"2021-03-02","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.5.3","date":"2021-02-19","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.5.2","date":"2021-02-17","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.5.1","date":"2021-02-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.10","date":"2021-01-20","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.9","date":"2021-01-12","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.7","date":"2020-12-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.3.2","date":"2020-12-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.6","date":"2020-12-08","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.5","date":"2020-12-07","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.4.4","date":"2020-12-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.3.1","date":"2020-11-23","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.3.0","date":"2020-11-04","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.2.8","date":"2020-10-27","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.2.7","date":"2020-10-26","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.2.6","date":"2020-10-26","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.2.4","date":"2020-10-16","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.2.3","date":"2020-10-14","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.1.9","date":"2020-09-03","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.1.7","date":"2020-08-18","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"4.1.5","date":"2020-08-05","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.34.3","date":"2020-06-24","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.34.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.34.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.33.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.31.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.31.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.21.3","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.21.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.21.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.21.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.20.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.20.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.18.4","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.18.3","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.18.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.17.4","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.16.3","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.16.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.16.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.13.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.10.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.7.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.5.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.5.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.5.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"3.0.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.10.3","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.10.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.10.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.9.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.8.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.8.0","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.3.2","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"2.3.1","date":"2020-06-11","deprecated":"This version is no longer supported. Use the latest version instead."},{"version":"1.15.1","date":"2020-06-11"},{"version":"1.15.0","date":"2020-06-11"},{"version":"1.14.1","date":"2020-06-11"},{"version":"1.14.0","date":"2020-06-11"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[],"contributors":[],"explained_by":[{"ref":"content:devtoberfest-2026-cap-the-road-ahead","name":"CAP: The Road Ahead - Simplicity in an AI Era","json":"/content/devtoberfest-2026-cap-the-road-ahead.json"},{"ref":"content:hello-react-and-vue-caps-new-ui-layer","name":"Hello React & Vue : SAP CAP’s New UI Layer is Here!","json":"/content/hello-react-and-vue-caps-new-ui-layer.json"},{"ref":"content:cap-developers-call-to-action-for-sap-note-3747787","name":"CAP Developers - Call to Action to mitigate and Apply Solution provided in SAP Note 3747787","json":"/content/cap-developers-call-to-action-for-sap-note-3747787.json"},{"ref":"content:cap-rap-or-both-stop-hiding-behind-it-depends","name":"CAP, RAP, or Both: Stop Hiding Behind 'It Depends'","json":"/content/cap-rap-or-both-stop-hiding-behind-it-depends.json"},{"ref":"content:whats-new-in-cap-january-2026","name":"What's new in SAP Cloud Application Programming Model – January 2026","json":"/content/whats-new-in-cap-january-2026.json"},{"ref":"content:cap-heaven-not-yet-but-you-can-see-it-from-here","name":"CAP Heaven? Not Yet — But You Can See It from Here","json":"/content/cap-heaven-not-yet-but-you-can-see-it-from-here.json"},{"ref":"content:declarative-programming-in-cap-less-code-more-value","name":"Declarative Programming in CAP: Less Code, More Value","json":"/content/declarative-programming-in-cap-less-code-more-value.json"},{"ref":"content:whats-new-in-cap-november-2025","name":"What's new in SAP Cloud Application Programming Model – November 2025","json":"/content/whats-new-in-cap-november-2025.json"},{"ref":"content:whats-new-in-cap-september-2025","name":"What's new in SAP Cloud Application Programming Model – September 2025","json":"/content/whats-new-in-cap-september-2025.json"},{"ref":"content:don-t-let-it-crash-is-this-the-new-cap-guideline","name":"Don't \"let it crash\", is this the new CAP guideline?","json":"/content/don-t-let-it-crash-is-this-the-new-cap-guideline.json"},{"ref":"content:sap-capv7-node-js-highlights-and-experiences","name":"SAP CAPv7 - Node.js Highlights and Experiences","json":"/content/sap-capv7-node-js-highlights-and-experiences.json"},{"ref":"content:getting-started-with-cds-ql-in-nodejs-for-cap-101-on-how-to-query-data","name":"Getting started with cds.ql in NodeJS for CAP - 101 on how to query data","json":"/content/getting-started-with-cds-ql-in-nodejs-for-cap-101-on-how-to-query-data.json"},{"ref":"content:cap-is-important-because-its-not-important","name":"CAP is important because it's not important","json":"/content/cap-is-important-because-its-not-important.json"},{"ref":"content:sap-cloud-application-programming-model-start-here","name":"SAP Cloud Application Programming Model (CAP) - start here","json":"/content/sap-cloud-application-programming-model-start-here.json"},{"ref":"content:teched-2026-ad162","name":"Everything new: Try out the latest features in CAP","json":"/content/teched-2026-ad162.json"},{"ref":"content:teched-2026-ct1136","name":"AI needs a foundation: A map of the plug-in ecosystem for CAP","json":"/content/teched-2026-ct1136.json"}],"alternative_to_this":[],"needed_by":[{"ref":"artifact:cap-js-community-odata-v2-adapter","name":"@cap-js-community/odata-v2-adapter","json":"/artifacts/cap-js-community-odata-v2-adapter.json","requirement":"required"},{"ref":"artifact:cap-js-ai","name":"@cap-js/ai","json":"/artifacts/cap-js-ai.json","requirement":"required"},{"ref":"artifact:cap-js-hana","name":"@cap-js/hana","json":"/artifacts/cap-js-hana.json","requirement":"required"},{"ref":"artifact:cap-js-mcp-server","name":"@cap-js/mcp-server","json":"/artifacts/cap-js-mcp-server.json","requirement":"required","role":"cds-runtime"},{"ref":"artifact:cap-js-telemetry","name":"@cap-js/telemetry","json":"/artifacts/cap-js-telemetry.json","requirement":"required","role":"framework"},{"ref":"artifact:rizing-cds-extension","name":"@rizing/cds-extension","json":"/artifacts/rizing-cds-extension.json","requirement":"required","role":"framework"},{"ref":"artifact:shahid-la-cds-db-nlquery-mcp","name":"@shahid.la/cds-db-nlquery-mcp","json":"/artifacts/shahid-la-cds-db-nlquery-mcp.json","requirement":"required","role":"cap-runtime"},{"ref":"artifact:lemaiwo-btp-agent","name":"btp-agent","json":"/artifacts/lemaiwo-btp-agent.json","requirement":"required","role":"framework"},{"ref":"artifact:sleibach-cap-companion","name":"cap-companion","json":"/artifacts/sleibach-cap-companion.json","requirement":"required","role":"framework"},{"ref":"artifact:cds-caching","name":"cds-caching","json":"/artifacts/cds-caching.json","requirement":"required","role":"runtime"},{"ref":"artifact:cdse","name":"cdse","json":"/artifacts/cdse.json","requirement":"required","role":"runtime"},{"ref":"artifact:kamilkov-supply-chain-rescue","name":"Supply Chain Rescue","json":"/artifacts/kamilkov-supply-chain-rescue.json","requirement":"required"},{"ref":"artifact:lemaiwo-ui5-cap-serverside-rendering-demo","name":"ui5-cap-serverside-rendering-demo","json":"/artifacts/lemaiwo-ui5-cap-serverside-rendering-demo.json","requirement":"required","role":"framework"},{"ref":"artifact:ui5-community-ui5-middleware-cap","name":"ui5-middleware-cap","json":"/artifacts/ui5-community-ui5-middleware-cap.json","requirement":"required"},{"ref":"artifact:akatuoro-vite-plugin-cds","name":"vite-plugin-cds","json":"/artifacts/akatuoro-vite-plugin-cds.json","requirement":"required"},{"ref":"artifact:sap-vscode-ui5-language-assistant","name":"vscode-ui5-language-assistant","json":"/artifacts/sap-vscode-ui5-language-assistant.json","requirement":"conditional","condition":"the workspace is a CAP project"}],"available_via":[],"parts":[],"add_ons":[{"ref":"artifact:cap-js-telemetry","name":"@cap-js/telemetry","json":"/artifacts/cap-js-telemetry.json"},{"ref":"artifact:rizing-cds-extension","name":"@rizing/cds-extension","json":"/artifacts/rizing-cds-extension.json"},{"ref":"artifact:lemaiwo-btp-agent","name":"btp-agent","json":"/artifacts/lemaiwo-btp-agent.json"},{"ref":"artifact:sleibach-cap-companion","name":"cap-companion","json":"/artifacts/sleibach-cap-companion.json"},{"ref":"artifact:lemaiwo-ui5-cap-serverside-rendering-demo","name":"ui5-cap-serverside-rendering-demo","json":"/artifacts/lemaiwo-ui5-cap-serverside-rendering-demo.json"}],"answered_through_parts":[]}}