CDS pluginCDS plugintypeInstalls into a CAP project and extends the runtime. CAP loads it through cds.requires or the plugin hook.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

cds-federation-synonyms

An experimental CAP plugin for CAP-to-CAP data federation over SAP HANA synonyms, so one project reads another's tables without the rows being copied.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Provides
Data federationCAPData federationcapabilityReading data that lives in another system as if it were local — by federating the query, by copying the rows, or by caching what was read. Three different answers to one question, and the choice is about how stale you can afford to be.Native SAP HANA artifactsCAPNative SAP HANA artifactscapabilityUsing native SAP HANA database objects alongside an application’s generated data model, including objects and database features the modelling layer cannot express. Choosing a database is [database connectors](capability:database-connectors); changing an existing schema is [schema evolution](capability:schema-evolution).
Flavors
Requires
SAP HANA CloudSAP HANA CloudartifactBoth applications must run on SAP HANA in the same instance, because the federation is a database synonym from one schema to another.@sap/xssec@sap/xssecartifactA component the plugin uses, under SAP's proprietary licence, which the README asks the consumer to review and accept.

Who is behind it

SAP Cloud Application Programming ModelSAP Cloud Application Programming ModelOrganisationMaintains this
In the atlas: maintains 34
@cap-js
maintainerSteffen WeinstockPersonContributes to this
In the atlas: contributes to 14
@stewsk
1 contributor

Before choosing this

Conditions

LicenceSAP Developer License Agreement 3.2 CAP§ 1, 2, 3A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.
  • § 2 Intellectual Property. The agreement retains SAP's rights in the covered materials and limits making APIs, tools or software available to third parties, while preserving ownership of customer applications subject to SAP's underlying rights.
  • § 3 Artificial Intelligence Training. The agreement prohibits use of the covered materials and customer applications for training artificial-intelligence models or systems.
SAP Developer License Agreement 3.2 CAP →

Also, from Data federation§ 1: Section 1 restricts mass extraction to a non-SAP product and states a scoped interoperability exception. That boundary is central to a replication design and must be checked against the actual use.

PracticalFunctional boundary

When your adoption policy excludes experimental dependencies: the maintainer’s README explicitly labels this plugin experimental.

What it declares

Every artifact

Type
CDS plugin
Origin
By SAP

As a CDS plugin

Distributed through
npm

For data federation

Approach
Delta handlingWrites reach the source
Strategy
federate
Refresh
on read
Reads from
CAP serviceSAP HANA schema
Writes to
SAP HANA synonym
property statedstated nonot said

Connections4

Learn more1

Readings
  1. CAP-level Data FederationSAP Developers, YouTube — SAP Developers playlists

Where it sits in your app

Download
Your CAP applicationYour SAP BTP subaccountdocumentedrequiresdocumentedrequirescds-federation-synonyms, modulecds-federation-synon…@sap/xssec, module@sap/xssecSAP HANA Cloud, service instanceSAP HANA Cloud
SAPnot SAP's, or the project's owndocumented only

README

quoted from cap-js/cds-federation-synonyms under Apache-2.0, read
cap-js/cds-federation-synonyms/README.mdOn GitHub

Welcome to @cap-js/cds-federation-synonyms

REUSE status

About this project

CDS plugin for SAP HANA synonym-based data federation.

This plugin is still experimental.

For CAP applications using SAP HANA as database, this plugin enables CAP-to-CAP data federation by integration on the database layer via synonyms.

In the database schema of the application that consumes the data ("consumer"), the imported entities are represented as synonyms that point to the respective tables or views in the database schema of the application that provides the data ("provider"). Acess to the producer is read-only.

Visit CAP-level Data Federation to learn about the basics.

Requirements

  • @sap/cds-dk version 9.9 or higher.
  • Both "provider" and "consumer" are CAP apps, using SAP HANA as database.
  • Both "provider" and "consumer" run in the same SAP HANA instance, and, if Native Multitenancy in SAP HANA Cloud is switched on, live in the same tenant.

The plugin uses two components which are under SAP properity licesenses. You need to review and accept them if you consume the plugin:

Usage

Install the plugin both in the provider and in the consumer app. If the consumer uses multi-tenancy, install the plugin in the consumer's MTX sidecar, too.

npm install git+https://github.com/cap-js/cds-federation-synonyms.git
Provider

Define an API package with a data service annotated with @data.product: 'via-synonym' and export it. For more information on API packages, see CAP-level Data Federation.

Consumer

Import the API package, define consumption views on top of the imported entities and use them in your app's CDS model as described in CAP-level Data Federation.

On HANA, the entities in the imported data service are represented by synonyms that can either point to local mock tables (synonyms are "unconnected"), or to the respective tables/views in the provider app (synonyms are "connected").

The choice between connected and unconnected is made on service level. For a single tenant app, it is a deployment decision. For the tenants of a multi tenant app, you can use a static configuration or the synonyms can alternatively also be switched between connected and unconnected during runtime via an API provided by the plugin.

Schematic example

Consumer app:

// --- consumption view
@federated entity consumption.Books as projection on datasrv.Books { /* ... */ }

// --- imported API
@data.product: 'via-synonym' @cds.external
service datasrv {
  @readonly entity Books { /*...*/};
  // ...
}

Provider app:

// --- API definition / data service
@data.product: 'via-synonym'
service datasrv {
  @readonly entity Books as projection on bookshop.Books
  // ...
}

// --- base entity
entity bookshop.Books {
  // ...
}

Database objects:
Database schemas

In the producer app, table bookshop.Books is exposed in service datasrv via the synonym technique. For access control, a HANA role datasrv is generated that grants SELECT privileges to all entities in the service.

In the consumer app, the imported entity datasrv.books is represented by a synonym. The synonym can point to a local mock table ("unconnected") or to the corresponding view in the producer app ("connected").

Walkthrough

For a detailed example, go to Walkthrough.

Support, Feedback, Contributing

This project is open to feature requests/suggestions, bug reports etc. via GitHub issues. Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines.

Security / Disclosure

If you find any bug that may be a security problem, please follow the instructions found in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.

Code of Conduct

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.

Licensing

Copyright 2026 SAP SE or an SAP affiliate company and cds-federation-synonyms contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.

Apache-2.0, read

History

Latest

v1.0.0

Removed, Features, Changed, Fixes

Notes
Added
Changed
Fixed
Removed

Others providing7

Data federation
  1. @cap-js-community/commonSix CAP features in one package, from replication cache to rate limits
  2. cds-data-federationData federation for CAP via delegation, caching and replication
  3. cds-data-pipelineScheduled READ, MAP, WRITE pipelines between CAP services
  4. @sap/cdsCAP Node.js runtime
Native SAP HANA artifacts
  1. @sap/cds-dkCommand line client and development toolkit for CAP
  2. @sap/cdsCAP Node.js runtime
  3. @sap/hdi-deployNode.js deployer for SAP HANA Deployment Infrastructure containers
  4. SAP-samples/hana-developer-cli-tool-exampleDeveloper-centric command line for SAP HANA

Details

Sources4
npm registrydiscovered herechecked
The discovery passdiscovered herechecked
github.com/cap-js/cds-federation-synonymstree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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

Compatibility and provenance
discovered vianpm registry, The discovery pass
first seen in the atlas
ecosystem and domaincap, data-and-persistence
Flavors1
Node.js
“npm install git+https://github.com/cap-js/cds-federation-synonyms.git” — cap-js/cds-federation-synonyms — READMEchecked
Contributors1

From the repository’s contributor list, .

History in the atlas3
  1. When your adoption policy excludes experimental dependencies: the [maintainer’s README](https://github.com/cap-js/cds-federation-synonyms#about-this-project) explicitly labels this plugin experimental.
  2. CAP-to-CAP data federation over SAP HANA synonyms, so one project reads another's tables without the rows being copied.
  3. First seen.
For your agent
Ref
artifact:cap-js-cds-federation-synonyms
JSON
/artifacts/cap-js-cds-federation-synonyms.json
MCP
Connecting an agent