232 lines
6.5 KiB
YAML
232 lines
6.5 KiB
YAML
_schema-version: 3.3.0
|
|
ID: capire.samples
|
|
version: 2.1.0
|
|
description: "A monorepo with several samples for CAP."
|
|
parameters:
|
|
enable-parallel-deployments: true
|
|
build-parameters:
|
|
before-all:
|
|
- builder: custom
|
|
commands:
|
|
- npm ci
|
|
- npx cds build --production
|
|
- npx cds build orders --for nodejs --production --ws-pack
|
|
- npx cds build reviews --for nodejs --production
|
|
- npx cds build bookstore --for nodejs --production --ws-pack
|
|
modules:
|
|
- name: orders-srv
|
|
type: nodejs
|
|
path: orders/gen/srv
|
|
parameters:
|
|
buildpack: nodejs_buildpack
|
|
readiness-health-check-type: http
|
|
readiness-health-check-http-endpoint: /health
|
|
disk-quota: 256M
|
|
memory: 256M
|
|
build-parameters:
|
|
builder: npm
|
|
provides:
|
|
- name: orders-api
|
|
properties:
|
|
srv-url: ${default-url}
|
|
requires:
|
|
- name: samples-messaging
|
|
- name: samples-db
|
|
- name: samples-auth
|
|
|
|
- name: reviews-srv
|
|
type: nodejs
|
|
path: reviews/gen/srv
|
|
parameters:
|
|
buildpack: nodejs_buildpack
|
|
readiness-health-check-type: http
|
|
readiness-health-check-http-endpoint: /health
|
|
disk-quota: 256M
|
|
memory: 256M
|
|
build-parameters:
|
|
builder: npm
|
|
provides:
|
|
- name: reviews-api
|
|
properties:
|
|
srv-url: ${default-url}
|
|
requires:
|
|
- name: samples-messaging
|
|
- name: samples-db
|
|
- name: samples-auth
|
|
|
|
- name: bookstore-srv
|
|
type: nodejs
|
|
path: bookstore/gen/srv
|
|
parameters:
|
|
buildpack: nodejs_buildpack
|
|
readiness-health-check-type: http
|
|
readiness-health-check-http-endpoint: /health
|
|
disk-quota: 256M
|
|
memory: 256M
|
|
properties:
|
|
cds_requires_ReviewsService_credentials: {"destination": "reviews-dest","path": "/reviews"}
|
|
cds_requires_OrdersService_credentials: {"destination": "orders-dest","path": "/odata/v4/orders"}
|
|
build-parameters:
|
|
builder: npm
|
|
provides:
|
|
- name: bookstore-api
|
|
properties:
|
|
srv-url: ${default-url}
|
|
requires:
|
|
- name: samples-messaging
|
|
- name: samples-db
|
|
- name: samples-auth
|
|
- name: samples-destination
|
|
|
|
- name: samples
|
|
type: approuter.nodejs
|
|
path: .deploy/app-router
|
|
parameters:
|
|
keep-existing-routes: true
|
|
disk-quota: 256M
|
|
memory: 256M
|
|
properties:
|
|
TENANT_HOST_PATTERN: "^(.*)-${default-uri}"
|
|
requires:
|
|
- name: orders-api
|
|
group: destinations
|
|
properties:
|
|
name: orders-api # must be used in xs-app.json as well
|
|
url: ~{srv-url}
|
|
forwardAuthToken: true
|
|
- name: reviews-api
|
|
group: destinations
|
|
properties:
|
|
name: reviews-api # must be used in xs-app.json as well
|
|
url: ~{srv-url}
|
|
forwardAuthToken: true
|
|
- name: bookstore-api
|
|
group: destinations
|
|
properties:
|
|
name: bookstore-api # must be used in xs-app.json as well
|
|
url: ~{srv-url}
|
|
forwardAuthToken: true
|
|
- name: mtx-api
|
|
group: destinations
|
|
properties:
|
|
name: mtx-api # must be used in xs-app.json as well
|
|
url: ~{mtx-url}
|
|
- name: samples-auth
|
|
provides:
|
|
- name: app-api
|
|
properties:
|
|
app-protocol: ${protocol}
|
|
app-uri: ${default-uri}
|
|
|
|
- name: destination-content
|
|
type: com.sap.application.content
|
|
requires:
|
|
- name: orders-api
|
|
- name: reviews-api
|
|
- name: bookstore-api
|
|
- name: samples-auth
|
|
parameters:
|
|
service-key:
|
|
name: xsuaa-service-key
|
|
- name: samples-destination
|
|
parameters:
|
|
content-target: true
|
|
build-parameters:
|
|
no-source: true
|
|
parameters:
|
|
content:
|
|
instance:
|
|
existing_destinations_policy: update
|
|
destinations:
|
|
- Name: orders-dest
|
|
URL: ~{orders-api/srv-url}
|
|
Authentication: OAuth2ClientCredentials
|
|
TokenServiceInstanceName: samples-auth
|
|
TokenServiceKeyName: xsuaa-service-key
|
|
- Name: reviews-dest
|
|
URL: ~{reviews-api/srv-url}
|
|
Authentication: OAuth2ClientCredentials
|
|
TokenServiceInstanceName: samples-auth
|
|
TokenServiceKeyName: xsuaa-service-key
|
|
|
|
- name: samples-mtx
|
|
type: nodejs
|
|
path: gen/mtx/sidecar
|
|
build-parameters:
|
|
builder: npm
|
|
parameters:
|
|
instances: 1
|
|
memory: 256M
|
|
disk-quota: 512M
|
|
provides:
|
|
- name: mtx-api
|
|
properties:
|
|
mtx-url: ${default-url}
|
|
requires:
|
|
- name: samples-db
|
|
- name: samples-registry
|
|
- name: samples-auth
|
|
- name: app-api
|
|
properties:
|
|
SUBSCRIPTION_URL: ~{app-protocol}://\${tenant_subdomain}-~{app-uri}
|
|
|
|
resources:
|
|
- name: samples-messaging
|
|
type: org.cloudfoundry.managed-service
|
|
parameters:
|
|
service: enterprise-messaging
|
|
service-plan: default
|
|
path: ./event-mesh.json
|
|
config:
|
|
emname: bookstore-${org}-${space}
|
|
namespace: cap/samples/${space}
|
|
- name: samples-db
|
|
type: org.cloudfoundry.managed-service
|
|
parameters:
|
|
service: service-manager
|
|
service-plan: container
|
|
|
|
- name: samples-auth
|
|
type: org.cloudfoundry.managed-service
|
|
processed-after:
|
|
- samples-messaging
|
|
requires:
|
|
- name: app-api
|
|
parameters:
|
|
service: xsuaa
|
|
service-plan: application
|
|
path: ./xs-security.json
|
|
config:
|
|
xsappname: samples-${org}-${space}
|
|
tenant-mode: shared
|
|
oauth2-configuration:
|
|
redirect-uris:
|
|
- https://*-~{app-api/app-uri}/**
|
|
|
|
- name: samples-destination
|
|
type: org.cloudfoundry.managed-service
|
|
parameters:
|
|
service: destination
|
|
service-plan: lite
|
|
|
|
- name: samples-registry
|
|
type: org.cloudfoundry.managed-service
|
|
requires:
|
|
- name: mtx-api
|
|
parameters:
|
|
service: saas-registry
|
|
service-plan: application
|
|
config:
|
|
xsappname: samples-${org}-${space}
|
|
appName: samples-${org}-${space}
|
|
displayName: samples-shared-db
|
|
description: CAP Samples with shared-db and multitenancy
|
|
category: 'Samples shared-db'
|
|
appUrls:
|
|
getDependencies: ~{mtx-api/mtx-url}/-/cds/saas-provisioning/dependencies
|
|
onSubscription: ~{mtx-api/mtx-url}/-/cds/saas-provisioning/tenant/{tenantId}
|
|
onSubscriptionAsync: true
|
|
onUnSubscriptionAsync: true
|
|
onUpdateDependenciesAsync: true
|
|
callbackTimeoutMillis: 300000 # Increase if your deployments are taking longer than that
|