Because its’ core is open, avoids tech-stack lock-in, behaves non-intrusive and is platform agnostic: all key characteristics for enabling the framework to run ouside SAPverse.
Given that SAP HANA cloud is only available in SAP world (more specifically, in SAP Cloud Platform, SCP), there’s a contradiction to resolve – how do we get CAP to run outside of SAP?
On the persistence level, extending CAP to support a popular Open Source database is the first step to proverbial shake off SAP-inflicted technology restraints –
and the CAP community has taken the leap and created a PostgreSQL storage adapter named “cds-pg” (
cds == “core data services”,
pg == PostgreSQL).
cds-pg extends the official
cds.Service-API by wrapping
node-pg, a PostgreSQL client for Node.js.
The project has been set up so that all the groundwork is layed out:
the adapter fits in with @sap/cds (the Node.js module of CAP),
is ready to be included in CAP-projects and -most importantly-
is equiped code-wise so that anybody can contribute features to
cds-pg at the time of this writing is in an alpha state. It supports basic
SELECT statements mapping to OData
GET for entitysets and single entities.
But the code base provides a standalone dockerized PostgreSQL server, an example CAP project connecting to it and several tests for yet missing features plus a detailed description of how to set up the development environment – so it is literally a matter of minutes (!) for anyone to set up shop and contribute to
We have even put in a SQLite-based variant of the example CAP project (
npm run test:as-sqlite) so you can compare results between an SQLite- and the
cds-pg-based persistence adapter 😀
the road ahead
make no mistake:
cds-pg is nothing SAP as a company will officially support any time soon.
But it has the full consulting support of the CAP core development team, following the notion of striving towards making CAP itself open-source! 💪
So it is up to us as the CAP community 🧍♀️🧍🧍♂️ to pick up the playball, drive it across the playfield and score the metaphoric goal of getting all’em CRUD features into
cds-pg – so we can use CAP with PostgreSQL in addition to SAP HANA-cloud, allowing productive applications to run on additional platforms than SCP.
So, calling out to you, the CAP community: fork, code, pull-request
(tech tl;dr for this:
# first, fork the repo: https://github.com/sapmentors/cds-pg git clone https://github.com/<you>/cds-pg cd cds-pg nvm use # lts/erbium npm i npm run test:pg:up-nobg # dockerized postgres ./node_modules/.bin/jest --watch # morph into TDD mode code . # open vs code npm run test:as-sqlite # start sqlite-based version for result comparison # pick some test.todo(...) or test.skip(...) from __tests__/odata.js # and implement functionality ... # head over to gh for creating a PR # or use git request-pull from the cmd line :)
|Volker is the self-proclaimed “Head of bar and beverage consumption on the CAP Open Sourcing party”.|
|Gregor in many aspects is the voice of the CAP community and a CAP earlier-than-early adopter.|