@amag-ch/sap_cap_common_runtime

1.16.2 • Public • Published

sap_cap_common_runtime

npm version npm downloads

NodeJS library to add additional cds runtime features

Table of Contents

Features

  • Register /health endpoint for monitoring (cds < 7.8.0)
  • Add middleware to use user id from http header x-sender in case of system user
  • Provides ApplicationService with extensions
  • Default features configuration
  • Default i18n configuration
  • Default log configuration
  • Default auth configuration
  • Default hana configuration
  • Add possiblity of usage of pseudos in db statements ($now, $user, $uuid)
  • Fix handling calculated fields in case of draft activate
  • Fix handling calculated boolean fields in case of draft read

Configuration

Features

{
    "cds": {
        "features": {
            "assert_integrity": "db"
        }        
    }
}

Localization

{
    "cds": {
        "i18n": {
            "default_language": "de",
            "languages": [
                "en",
                "de",
                "fr",
                "it"
            ],
            "for_sqlite": [
                "en",
                "de",
                "fr",
                "it"
            ],
            "for_sql": [
                "en",
                "de",
                "fr",
                "it"
            ]
        }
    } 
}

Logging

{
    "cds": {
        "log": {
            "levels": {
                "odata": "warn",
                "rest": "warn",
                "[development]": {
                    "odata": "info",
                    "rest": "info",
                    "auth": "debug"
                }
            }
        }
    } 
}

Authentication

{
    "cds": {
        "requires": {
            "kinds": {
                "mocked-auth": {
                    "users": {
                        "system-user": {
                            "roles": [
                                "system-user"
                            ]
                        }
                    }
                }
            }
        }
    }
}

HANA Configuration

{
    "cds": {
        "requires": {
            "kinds": {
                "hana": {
                    "deploy-format": "hdbtable",
                    "pool": {
                        "acquireTimeoutMillis": 60000
                    }
                }
            }
        }
    }
}

Installing

Using npm:

$ npm install @amag-ch/sap_cap_common_runtime

Using yarn:

$ yarn add @amag-ch/sap_cap_common_runtime

Implementation

Custom express endpoints with parameters

@protocol : ['odata', 'rest']
service APIService {
    function checkAvailability(partnerId : String) returns {
        valid: Boolean
    }
}
const { ApplicationService } = require('@amag-ch/sap_cap_common_runtime')

module.exports = class APIService extends ApplicationService {

    async init() {

        this.on('/partners/:partnerId/availability/check', 'checkAvailability')

        this.on('checkAvailability', async (req) => {
            return {
                valid: !!req.data.partnerId
            }
        })

        return super.init()
    }    
}
// Standard call over rest adapter
GET http://localhost:4004/rest/api/checkAvailability(partnerId='123456789')

// Same call, but with custom route (/partners/:partnerId/availability/check)
GET http://localhost:4004/rest/api/partner/123456789/availability/check

// Standard call over odata v4 adapter
GET http://localhost:4004/odata/v4/api/checkAvailability(partnerId='123456789')

// Same call, but with custom route (/partners/:partnerId/availability/check)
GET http://localhost:4004/odata/v4/api/partner/123456789/availability/check

The own on handler only reacts, if path starts with / and the second parameter is a string. Otherwise it will be forwarded to cds standard implementation.

Pseudos in db statements

    await cds.create(Books, { ID: '$uuid', name: 'Test' })
    await cds.update(Books).set({ errorAt: '$now', responsable: '$user' })

License

MIT

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.16.217latest

Version History

VersionDownloads (Last 7 Days)Published
1.16.217
1.16.111
1.16.00
1.15.00
1.14.00
1.13.00
1.12.00
1.11.00
1.10.00
1.9.40
1.9.30
1.9.20
1.9.11
1.9.01
1.8.00
1.7.01
1.6.23
1.6.10
1.6.01
1.5.10
1.5.00
1.4.01
1.3.00
1.2.01
1.1.00
1.0.11
1.0.00

Package Sidebar

Install

npm i @amag-ch/sap_cap_common_runtime

Weekly Downloads

38

Version

1.16.2

License

MIT

Unpacked Size

16.9 kB

Total Files

18

Last publish

Collaborators

  • thju-amag-ch
  • integration-amag-ch