--- _schema-version: '3.1' ID: capire.bookshop version: 1.0.0 description: "A simple self-contained bookshop service." parameters: enable-parallel-deployments: true build-parameters: before-all: - builder: custom commands: - npx -p @sap/cds-dk cds build --production modules: - name: bookshop-srv type: nodejs path: gen/srv parameters: buildpack: nodejs_buildpack build-parameters: builder: npm-ci provides: - name: srv-api # required by consumers of CAP services (e.g. approuter) properties: srv-url: ${default-url} - name: mtx-api # potentially required by approuter properties: mtx-url: ${default-url} requires: - name: bookshop-auth - name: bookshop-db - name: bookshop-registry properties: SUBSCRIPTION_URL: ${protocol}://\${tenant_subdomain}-${default-uri} SUBSCRIPTION_URL_REPLACEMENT_RULES: [ [ '-srv', '' ] ] - name: bookshop type: approuter.nodejs path: app/ # from cds.env.folders. Consider also cds.env.build.target -> gen/app parameters: keep-existing-routes: true disk-quota: 256M memory: 256M requires: - name: srv-api group: destinations properties: name: srv-api # must be used in xs-app.json as well url: ~{srv-url} forwardAuthToken: true - name: bookshop-auth - name: mtx-api group: destinations properties: name: mtx-api # must be used in xs-app.json as well url: ~{mtx-url} properties: TENANT_HOST_PATTERN: "^(.*)-${default-uri}" resources: - name: bookshop-auth type: org.cloudfoundry.managed-service parameters: service: xsuaa service-plan: application path: ./xs-security.json config: xsappname: bookshop-${org}-${space} tenant-mode: shared - name: bookshop-db type: org.cloudfoundry.managed-service parameters: service: service-manager service-plan: container properties: hdi-service-name: ${service-name} - name: bookshop-registry type: org.cloudfoundry.managed-service requires: - name: mtx-api parameters: service: saas-registry service-plan: application config: xsappname: bookshop-${org}-${space} appName: bookshop-${org}-${space} displayName: bookshop description: A simple CAP project. category: 'Category' appUrls: getDependencies: ~{mtx-api/mtx-url}/mtx/v1/provisioning/dependencies onSubscription: ~{mtx-api/mtx-url}/mtx/v1/provisioning/tenant/{tenantId} onSubscriptionAsync: false onUnSubscriptionAsync: false callbackTimeoutMillis: 300000