@cap-js/cds-dbs
The monorepo behind CAP's SQL database services — the base service, SQLite, PostgreSQLPostgreSQLA relational database. For CAP it is the production database when the answer is not HANA, reached through an adapter that translates CDS queries into its SQL. and HANA all live here, which is why they version together.
A monorepo, not a package: nothing installs from its root. Four modules live in it — @cap-js/db-service@cap-js/db-serviceThe base every CAP database service is built on: the shared query translation and pooling that SQLite, PostgreSQL and HANA specialise rather than reimplement.sap official, cap, the base, and @cap-js/sqlite@cap-js/sqliteThe SQLite service, in memory during the inner loop — which is why a CAP project runs before anyone has provisioned a database.sap official, cap, @cap-js/postgres@cap-js/postgresThe PostgreSQL database service — the production option for running CAP off HANA, sharing the base service with the other three.sap official, cap and @cap-js/hana@cap-js/hanaThe HANA database service — the production default, on the same streamlined architecture as the SQLite and PostgreSQL services.sap official, cap, which implement that interface for their own database — each in its own subfolder with its own README, each published to npm on its own. A project adds one of those packages; the repository is where their issues are filed and where the shared code sits.
Facts
Who is behind it
In the atlas: maintains 34@cap-jsmaintainerJohannes VogtContributes to this
In the atlas: maintains 1, contributes to 28, wrote 10@AkatuoroArley Triana MorinContributes to this
In the atlas: contributes to 9, wrote 1@arleytmAndreas SchmidtContributes to this
In the atlas: contributes to 6@aschmidt93Bob den OsContributes to this
In the atlas: contributes to 13@BobdenOsAndre MeyeringContributes to this
In the atlas: contributes to 10@bugwelleCAP BotContributes to this
In the atlas: contributes to 5@cap-botsChristian GeorgiContributes to this
In the atlas: maintains 1, contributes to 53@chgeoChristian SchüringsContributes to this
In the atlas: contributes to 25@cschueringsDaniel HutzelContributes to this
In the atlas: contributes to 32, wrote 3@danjoaDaniel O'GradyContributes to this
In the atlas: contributes to 10@daogrady35 contributors
What it declares
Every artifact
- Type
- Package
- Origin
- By SAP
As a package
- Where it runs
- does not say
- Distributed through
- npm
Parts and add-ons
Parts 4
Connections
Connecting a data model and its queries to a database
Base service shared by CAP's SQLite, PostgreSQL and HANA services
SAP HANA database service for CAP
PostgreSQL database service for CAP
SQLite database service for CAP, in memory during development
Download
README
quoted from cap-js/cds-dbs under Apache-2.0, readWelcome to the @cap-js/cds-dbs Monorepo
This is a monorepo for our SQL Database Services.
It contains subfolders for the base database service implementation as well as the implementation of this interface for SQLite, PostgreSQL and SAP HANA. Each of the subfolders is published as individual npm module.
Documentation can be found at cap.cloud.sap.
Prerequisites
See Getting Started on how to jumpstart your development and grow as you go with SAP Cloud Application Programming Model.
Setup
In general, all you need to do is to install one of the database packages, as follows:
Using SQLite for development:
npm add @cap-js/sqlite -D
Learn more about setup and usage in the respective database guides.
Support
This project is open to feature requests/suggestions, bug reports etc. via GitHub issues.
Contribution
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.
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 2024 SAP SE or an SAP affiliate company and cds-dbs 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.
History
Notes
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.11.2 to ^2.11.3
- dependencies
- The following workspace dependencies were updated
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.11.2 to ^2.11.3
- dependencies
- The following workspace dependencies were updated
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.11.1 to ^2.11.2
- dependencies
- The following workspace dependencies were updated
Notes
Added
Fixed
- cqn4sql: reject overly nested query expressions instead of crashing (#1712) (29a45b7)
- don't throw when releasing/destroying a resource that's no longer in the pool (#1696) (5d3b277)
- exclude cds.Vector from wildcard select expansion (#1716) (398bacc)
- INSERT.from(SELECT) used non-existent
value(#1565) (fd98844) - pool: recover lost connection after stale acquire timeout (#1724) (cf6af99)
- pql groupby path expression (#1700) (82b5e03)
Notes
Added
Fixed
- cqn4sql: reject overly nested query expressions instead of crashing (#1712) (29a45b7)
- don't throw when releasing/destroying a resource that's no longer in the pool (#1696) (5d3b277)
- exclude cds.Vector from wildcard select expansion (#1716) (398bacc)
- INSERT.from(SELECT) used non-existent
value(#1565) (fd98844) - pool: recover lost connection after stale acquire timeout (#1724) (cf6af99)
- pql groupby path expression (#1700) (82b5e03)
Notes
Added
Fixed
- cqn4sql: reject overly nested query expressions instead of crashing (#1712) (29a45b7)
- don't throw when releasing/destroying a resource that's no longer in the pool (#1696) (5d3b277)
- exclude cds.Vector from wildcard select expansion (#1716) (398bacc)
- INSERT.from(SELECT) used non-existent
value(#1565) (fd98844) - pool: recover lost connection after stale acquire timeout (#1724) (cf6af99)
- pql groupby path expression (#1700) (82b5e03)
Notes
Added
Fixed
- cqn4sql: reject overly nested query expressions instead of crashing (#1712) (29a45b7)
- don't throw when releasing/destroying a resource that's no longer in the pool (#1696) (5d3b277)
- exclude cds.Vector from wildcard select expansion (#1716) (398bacc)
- INSERT.from(SELECT) used non-existent
value(#1565) (fd98844) - pool: recover lost connection after stale acquire timeout (#1724) (cf6af99)
- pql groupby path expression (#1700) (82b5e03)
Notes
⚠ BREAKING CHANGES
- require cds10 (#1628)
Added
- own flag for db service results (#1630) (3946e59)
- pool: make builtin pool the default (#1537) (919dfe6)
- require cds10 (#1628) (93e8305)
Fixed
- builtin-pool: ignore released/destroyed resource if already draining (#1631) (de37489)
- calc element with exists through association (#1608) (0d24b28)
- InsertResult for keyless entities (#1617) (2efe922)
- InsertResult is broken if entity has assoc keys (#1616) (9925d22)
- query results fixed gaps (#1625) (5d60e7f)
- resolve
$selfin infix filters with path expressions and nested exists (#1604) (baa3528) - resolve nested assoc-into-assoc inline path resolution (#1602) (ec6fba0)
- we can't return keys for
INSERT.from(SELECT.from(...))(#1622) (ccc9f88)
Notes
⚠ BREAKING CHANGES
- require cds10 (#1628)
Added
- own flag for db service results (#1630) (3946e59)
- pool: make builtin pool the default (#1537) (919dfe6)
- require cds10 (#1628) (93e8305)
Fixed
- builtin-pool: ignore released/destroyed resource if already draining (#1631) (de37489)
- calc element with exists through association (#1608) (0d24b28)
- InsertResult for keyless entities (#1617) (2efe922)
- InsertResult is broken if entity has assoc keys (#1616) (9925d22)
- query results fixed gaps (#1625) (5d60e7f)
- resolve
$selfin infix filters with path expressions and nested exists (#1604) (baa3528) - resolve nested assoc-into-assoc inline path resolution (#1602) (ec6fba0)
- we can't return keys for
INSERT.from(SELECT.from(...))(#1622) (ccc9f88)
Notes
⚠ BREAKING CHANGES
- require cds10 (#1628)
Added
- own flag for db service results (#1630) (3946e59)
- pool: make builtin pool the default (#1537) (919dfe6)
- require cds10 (#1628) (93e8305)
Fixed
- builtin-pool: ignore released/destroyed resource if already draining (#1631) (de37489)
- calc element with exists through association (#1608) (0d24b28)
- InsertResult for keyless entities (#1617) (2efe922)
- InsertResult is broken if entity has assoc keys (#1616) (9925d22)
- query results fixed gaps (#1625) (5d60e7f)
- resolve
$selfin infix filters with path expressions and nested exists (#1604) (baa3528) - resolve nested assoc-into-assoc inline path resolution (#1602) (ec6fba0)
- we can't return keys for
INSERT.from(SELECT.from(...))(#1622) (ccc9f88)
Notes
⚠ BREAKING CHANGES
- require cds10 (#1628)
Added
- own flag for db service results (#1630) (3946e59)
- pool: make builtin pool the default (#1537) (919dfe6)
- require cds10 (#1628) (93e8305)
Fixed
- builtin-pool: ignore released/destroyed resource if already draining (#1631) (de37489)
- calc element with exists through association (#1608) (0d24b28)
- InsertResult for keyless entities (#1617) (2efe922)
- InsertResult is broken if entity has assoc keys (#1616) (9925d22)
- query results fixed gaps (#1625) (5d60e7f)
- resolve
$selfin infix filters with path expressions and nested exists (#1604) (baa3528) - resolve nested assoc-into-assoc inline path resolution (#1602) (ec6fba0)
- we can't return keys for
INSERT.from(SELECT.from(...))(#1622) (ccc9f88)
Notes
Added
tuple expansion: allow structs with exactly one element/fk in comparison (#1291) (75ea826)- cds.db.foreach uses real object mode streaming (#1318) (cd28b53)
Fixed
assoc2join: target side access detection (#1282) (6f9befa)cqn4sql: only considerownproperty[@cds](https://github.com/cds).persistence.skip(#1324) (bd1f52f)exists: do not loose custom where (#1322) (644918c)- arithmetic operators can only be used with scalar operands (#1307) (d58d335)
- detect path expression inside nested xpr after
exists(#1292) (852d915), closes #1225 - reject comparison of two empty structures (#1306) (d97304d)
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.9.0 to ^2.10.0
- dependencies
- The following workspace dependencies were updated
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.9.0 to ^2.10.0
- dependencies
- The following workspace dependencies were updated
Notes
Added
Fixed
exists: detect join relevant path after exists (#1412) (c5bad06), closes #1407- cqn2sql: Relied on inconstistent behavior of cds.ql.cloned queries (#1500) (f9cb201)
- enable expressions for
inline(#1512) (65f78e1) - path expressions for scoped queries (#1507) (0f1e234)
- reject duplicated wildcards (#1511) (b483062)
- the combination of
iteratorandSELECT.one(#1514) (4b28579) - wildcard on inlined assoc (#1513) (e520b97)
Notes
Added
tuple expansion: allow structs with exactly one element/fk in comparison (#1291) (75ea826)- cds.db.foreach uses real object mode streaming (#1318) (cd28b53)
Fixed
assoc2join: target side access detection (#1282) (6f9befa)cqn4sql: only considerownproperty[@cds](https://github.com/cds).persistence.skip(#1324) (bd1f52f)exists: do not loose custom where (#1322) (644918c)- arithmetic operators can only be used with scalar operands (#1307) (d58d335)
- detect path expression inside nested xpr after
exists(#1292) (852d915), closes #1225 - reject comparison of two empty structures (#1306) (d97304d)
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2 to ^2.6.0
- dependencies
- The following workspace dependencies were updated
Notes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @cap-js/db-service bumped from ^2.5.1 to ^2.6.0
- dependencies
- The following workspace dependencies were updated
Notes
Added
tuple expansion: allow structs with exactly one element/fk in comparison (#1291) (75ea826)- cds.db.foreach uses real object mode streaming (#1318) (cd28b53)
Fixed
assoc2join: target side access detection (#1282) (6f9befa)cqn4sql: only considerownproperty[@cds](https://github.com/cds).persistence.skip(#1324) (bd1f52f)exists: do not loose custom where (#1322) (644918c)- arithmetic operators can only be used with scalar operands (#1307) (d58d335)
- detect path expression inside nested xpr after
exists(#1292) (852d915), closes #1225 - reject comparison of two empty structures (#1306) (d97304d)
Details
Sources
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
Flavors
“npm add @cap-js/sqlite -D” — cap-js/cds-dbs — README
Contributors
History in the atlas
- The repository's README titles itself 'Welcome to the @cap-js/cds-dbs Monorepo', and that scope is not on npm — a request for @cap-js/cds-dbs returns 404. The bare name is taken: npm's cds-dbs is one release, 1.3.1 of 2024-12-10, published by cosmo83 (arava@sat-infotech.com) with the description 'This is a monorepo for our SQL Database Services.' copied from this README. Because the crawler resolves a package by the entry's name, that stranger's record is what data/crawled/health.json carries for this artifact today: latest_version 1.3.1, one release, four weekly downloads, one maintainer and a 'SEE LICENSE' licence, beside GitHub facts read from cap-js/cds-dbs. The repository's own name ends the mis-join.
- The monorepo is not an option anyone adds to a project. Its README states what is: 'Each of the subfolders is published as individual npm module', and 'In general, all you need to do is to install one of the database packages, as follows:'. The four packages carry the capability edge; the repository listed beside them made five options out of four. It stays a node — the four now point up at it with part_of.
- A monorepo, not a package: nothing installs from its root. Four modules live in it — @cap-js/db-service, the base, and @cap-js/sqlite, @cap-js/postgres and @cap-js/hana, which implement that interface for their own database — each in its own subfolder with its own README, each published to npm on its own. A project adds one of those packages; the repository is where their issues are filed and where the shared code sits.
- Typed cds-plugin by placement, which defaults every candidate to that. It is not one.
- The monorepo behind CAP's SQL database services — the base service, SQLite, PostgreSQL and HANA all live here, which is why they version together.
- First seen.
For your agent
- Ref
artifact:cap-js-cds-dbs- JSON
- /artifacts/cap-js-cds-dbs.json
- MCP
- Connecting an agent