deploy bookshop
This commit is contained in:
2329
app/router/package-lock.json
generated
Normal file
2329
app/router/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
12
app/router/package.json
Normal file
12
app/router/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "approuter",
|
||||||
|
"dependencies": {
|
||||||
|
"@sap/approuter": "^17.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^20"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "node node_modules/@sap/approuter/approuter.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
app/router/xs-app.json
Normal file
21
app/router/xs-app.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"source": "^/app/(.*)$",
|
||||||
|
"target": "$1",
|
||||||
|
"localDir": ".",
|
||||||
|
"cacheControl": "no-cache, no-store, must-revalidate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "^/appconfig/",
|
||||||
|
"localDir": ".",
|
||||||
|
"cacheControl": "no-cache, no-store, must-revalidate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "^/(.*)$",
|
||||||
|
"target": "$1",
|
||||||
|
"destination": "bookshop-api",
|
||||||
|
"csrfProtection": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -14,8 +14,22 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sap/cds": ">=7",
|
"@sap/cds": ">=7",
|
||||||
|
"@sap/xssec": "^4",
|
||||||
|
"@cap-js/hana": "^1",
|
||||||
"express": "^4.17.1"
|
"express": "^4.17.1"
|
||||||
},
|
},
|
||||||
|
"cds": {
|
||||||
|
"requires": {
|
||||||
|
"[production]": {
|
||||||
|
"auth": "xsuaa",
|
||||||
|
"db": "hana",
|
||||||
|
"messaging": "enterprise-messaging"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sql": {
|
||||||
|
"native_hana_associations": false
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"genres": "cds serve test/genres.cds",
|
"genres": "cds serve test/genres.cds",
|
||||||
"start": "cds-serve",
|
"start": "cds-serve",
|
||||||
|
|||||||
139
db/src/.hdiconfig
Normal file
139
db/src/.hdiconfig
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
{
|
||||||
|
"file_suffixes": {
|
||||||
|
"csv": {
|
||||||
|
"plugin_name": "com.sap.hana.di.tabledata.source"
|
||||||
|
},
|
||||||
|
"hdbafllangprocedure": {
|
||||||
|
"plugin_name": "com.sap.hana.di.afllangprocedure"
|
||||||
|
},
|
||||||
|
"hdbanalyticprivilege": {
|
||||||
|
"plugin_name": "com.sap.hana.di.analyticprivilege"
|
||||||
|
},
|
||||||
|
"hdbcalculationview": {
|
||||||
|
"plugin_name": "com.sap.hana.di.calculationview"
|
||||||
|
},
|
||||||
|
"hdbcollection": {
|
||||||
|
"plugin_name": "com.sap.hana.di.collection"
|
||||||
|
},
|
||||||
|
"hdbconstraint": {
|
||||||
|
"plugin_name": "com.sap.hana.di.constraint"
|
||||||
|
},
|
||||||
|
"hdbdropcreatetable": {
|
||||||
|
"plugin_name": "com.sap.hana.di.dropcreatetable"
|
||||||
|
},
|
||||||
|
"hdbflowgraph": {
|
||||||
|
"plugin_name": "com.sap.hana.di.flowgraph"
|
||||||
|
},
|
||||||
|
"hdbfunction": {
|
||||||
|
"plugin_name": "com.sap.hana.di.function"
|
||||||
|
},
|
||||||
|
"hdbgraphworkspace": {
|
||||||
|
"plugin_name": "com.sap.hana.di.graphworkspace"
|
||||||
|
},
|
||||||
|
"hdbhadoopmrjob": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualfunctionpackage.hadoop"
|
||||||
|
},
|
||||||
|
"hdbindex": {
|
||||||
|
"plugin_name": "com.sap.hana.di.index"
|
||||||
|
},
|
||||||
|
"hdblibrary": {
|
||||||
|
"plugin_name": "com.sap.hana.di.library"
|
||||||
|
},
|
||||||
|
"hdbmigrationtable": {
|
||||||
|
"plugin_name": "com.sap.hana.di.table.migration"
|
||||||
|
},
|
||||||
|
"hdbprocedure": {
|
||||||
|
"plugin_name": "com.sap.hana.di.procedure"
|
||||||
|
},
|
||||||
|
"hdbprojectionview": {
|
||||||
|
"plugin_name": "com.sap.hana.di.projectionview"
|
||||||
|
},
|
||||||
|
"hdbprojectionviewconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.projectionview.config"
|
||||||
|
},
|
||||||
|
"hdbreptask": {
|
||||||
|
"plugin_name": "com.sap.hana.di.reptask"
|
||||||
|
},
|
||||||
|
"hdbresultcache": {
|
||||||
|
"plugin_name": "com.sap.hana.di.resultcache"
|
||||||
|
},
|
||||||
|
"hdbrole": {
|
||||||
|
"plugin_name": "com.sap.hana.di.role"
|
||||||
|
},
|
||||||
|
"hdbroleconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.role.config"
|
||||||
|
},
|
||||||
|
"hdbsearchruleset": {
|
||||||
|
"plugin_name": "com.sap.hana.di.searchruleset"
|
||||||
|
},
|
||||||
|
"hdbsequence": {
|
||||||
|
"plugin_name": "com.sap.hana.di.sequence"
|
||||||
|
},
|
||||||
|
"hdbstatistics": {
|
||||||
|
"plugin_name": "com.sap.hana.di.statistics"
|
||||||
|
},
|
||||||
|
"hdbstructuredprivilege": {
|
||||||
|
"plugin_name": "com.sap.hana.di.structuredprivilege"
|
||||||
|
},
|
||||||
|
"hdbsynonym": {
|
||||||
|
"plugin_name": "com.sap.hana.di.synonym"
|
||||||
|
},
|
||||||
|
"hdbsynonymconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.synonym.config"
|
||||||
|
},
|
||||||
|
"hdbsystemversioning": {
|
||||||
|
"plugin_name": "com.sap.hana.di.systemversioning"
|
||||||
|
},
|
||||||
|
"hdbtable": {
|
||||||
|
"plugin_name": "com.sap.hana.di.table"
|
||||||
|
},
|
||||||
|
"hdbtabledata": {
|
||||||
|
"plugin_name": "com.sap.hana.di.tabledata"
|
||||||
|
},
|
||||||
|
"hdbtabletype": {
|
||||||
|
"plugin_name": "com.sap.hana.di.tabletype"
|
||||||
|
},
|
||||||
|
"hdbtrigger": {
|
||||||
|
"plugin_name": "com.sap.hana.di.trigger"
|
||||||
|
},
|
||||||
|
"hdbview": {
|
||||||
|
"plugin_name": "com.sap.hana.di.view"
|
||||||
|
},
|
||||||
|
"hdbvirtualfunction": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualfunction"
|
||||||
|
},
|
||||||
|
"hdbvirtualfunctionconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualfunction.config"
|
||||||
|
},
|
||||||
|
"hdbvirtualpackagehadoop": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualpackage.hadoop"
|
||||||
|
},
|
||||||
|
"hdbvirtualpackagesparksql": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualpackage.sparksql"
|
||||||
|
},
|
||||||
|
"hdbvirtualprocedure": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualprocedure"
|
||||||
|
},
|
||||||
|
"hdbvirtualprocedureconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualprocedure.config"
|
||||||
|
},
|
||||||
|
"hdbvirtualtable": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualtable"
|
||||||
|
},
|
||||||
|
"hdbvirtualtableconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.virtualtable.config"
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"plugin_name": "com.sap.hana.di.tabledata.properties"
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"plugin_name": "com.sap.hana.di.tabledata.properties"
|
||||||
|
},
|
||||||
|
"txt": {
|
||||||
|
"plugin_name": "com.sap.hana.di.copyonly"
|
||||||
|
},
|
||||||
|
"hdbeshconfig": {
|
||||||
|
"plugin_name": "com.sap.hana.di.eshconfig"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
7
db/undeploy.json
Normal file
7
db/undeploy.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[
|
||||||
|
"src/gen/**/*.hdbview",
|
||||||
|
"src/gen/**/*.hdbindex",
|
||||||
|
"src/gen/**/*.hdbconstraint",
|
||||||
|
"src/gen/**/*_drafts.hdbtable",
|
||||||
|
"src/gen/**/*.hdbcalculationview"
|
||||||
|
]
|
||||||
31
event-mesh.json
Normal file
31
event-mesh.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"emname": "samples-emname",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"namespace": "default/samples/1",
|
||||||
|
"options": {
|
||||||
|
"management": true,
|
||||||
|
"messagingrest": true,
|
||||||
|
"messaging": true
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"topicRules": {
|
||||||
|
"publishFilter": [
|
||||||
|
"${namespace}/*"
|
||||||
|
],
|
||||||
|
"subscribeFilter": [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"queueRules": {
|
||||||
|
"publishFilter": [
|
||||||
|
"${namespace}/*"
|
||||||
|
],
|
||||||
|
"subscribeFilter": [
|
||||||
|
"${namespace}/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"authorities": [
|
||||||
|
"$ACCEPT_GRANTED_AUTHORITIES"
|
||||||
|
]
|
||||||
|
}
|
||||||
79
mta.yaml
Normal file
79
mta.yaml
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
_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 --for hana --production --ws
|
||||||
|
- npx cds build ./bookshop --for nodejs --production --ws-pack
|
||||||
|
modules:
|
||||||
|
- name: bookshop-srv
|
||||||
|
type: nodejs
|
||||||
|
path: bookshop/gen/srv
|
||||||
|
parameters:
|
||||||
|
buildpack: nodejs_buildpack
|
||||||
|
readiness-health-check-type: http
|
||||||
|
readiness-health-check-http-endpoint: /health
|
||||||
|
build-parameters:
|
||||||
|
builder: npm
|
||||||
|
provides:
|
||||||
|
- name: bookshop-api # required by consumers of CAP services (e.g. approuter)
|
||||||
|
properties:
|
||||||
|
srv-url: ${default-url}
|
||||||
|
requires:
|
||||||
|
- name: samples-messaging
|
||||||
|
- name: samples-db
|
||||||
|
- name: samples-auth
|
||||||
|
|
||||||
|
- name: samples-db-deployer
|
||||||
|
type: hdb
|
||||||
|
path: gen/db
|
||||||
|
parameters:
|
||||||
|
buildpack: nodejs_buildpack
|
||||||
|
requires:
|
||||||
|
- name: samples-db
|
||||||
|
|
||||||
|
- name: samples
|
||||||
|
type: approuter.nodejs
|
||||||
|
path: app/router
|
||||||
|
parameters:
|
||||||
|
keep-existing-routes: true
|
||||||
|
disk-quota: 256M
|
||||||
|
memory: 256M
|
||||||
|
requires:
|
||||||
|
- name: bookshop-api
|
||||||
|
group: destinations
|
||||||
|
properties:
|
||||||
|
name: bookshop-api # must be used in xs-app.json as well
|
||||||
|
url: ~{srv-url}
|
||||||
|
forwardAuthToken: true
|
||||||
|
- name: samples-auth
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- name: samples-messaging
|
||||||
|
type: org.cloudfoundry.managed-service
|
||||||
|
parameters:
|
||||||
|
service: enterprise-messaging
|
||||||
|
service-plan: default
|
||||||
|
path: ./event-mesh.json
|
||||||
|
- name: samples-db
|
||||||
|
type: com.sap.xs.hdi-container
|
||||||
|
parameters:
|
||||||
|
service: hana
|
||||||
|
service-plan: hdi-shared
|
||||||
|
- name: samples-auth
|
||||||
|
type: org.cloudfoundry.managed-service
|
||||||
|
processed-after:
|
||||||
|
- samples-messaging
|
||||||
|
parameters:
|
||||||
|
service: xsuaa
|
||||||
|
service-plan: application
|
||||||
|
path: ./xs-security.json
|
||||||
|
config:
|
||||||
|
xsappname: samples-${org}-${space}
|
||||||
|
tenant-mode: dedicated
|
||||||
6432
package-lock.json
generated
6432
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
101
package.json
101
package.json
@@ -1,51 +1,54 @@
|
|||||||
{
|
{
|
||||||
"name": "@capire/samples",
|
"name": "@capire/samples",
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"description": "A monorepo with several samples for CAP.",
|
"description": "A monorepo with several samples for CAP.",
|
||||||
"repository": "https://github.com/sap-samples/cloud-cap-samples.git",
|
"repository": "https://github.com/sap-samples/cloud-cap-samples.git",
|
||||||
"author": "daniel.hutzel@sap.com",
|
"author": "daniel.hutzel@sap.com",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sap/cds": ">=8"
|
"@sap/cds": ">=8"
|
||||||
},
|
},
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"./bookshop",
|
"./bookshop",
|
||||||
"./bookstore",
|
"./bookstore",
|
||||||
"./common",
|
"./common",
|
||||||
"./data-viewer",
|
"./data-viewer",
|
||||||
"./fiori",
|
"./fiori",
|
||||||
"./hello",
|
"./hello",
|
||||||
"./media",
|
"./media",
|
||||||
"./orders",
|
"./orders",
|
||||||
"./loggers",
|
"./loggers",
|
||||||
"./reviews"
|
"./reviews"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cap-js/cds-types": "^0",
|
"@cap-js/cds-types": "^0",
|
||||||
"@cap-js/sqlite": "^1",
|
"@cap-js/sqlite": "^1",
|
||||||
"axios": "^1",
|
"axios": "^1",
|
||||||
"chai": "^4.3.4",
|
"chai": "^4.3.4",
|
||||||
"chai-as-promised": "^7.1.1",
|
"chai-as-promised": "^7.1.1",
|
||||||
"chai-subset": "^1.6.0",
|
"chai-subset": "^1.6.0",
|
||||||
"eslint": "^9",
|
"eslint": "^9",
|
||||||
"semver": "^7"
|
"semver": "^7"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"bookshop": "cds watch bookshop",
|
"build": "mbt build -t gen --mtar mta.tar",
|
||||||
"start": "cds watch fiori",
|
"deploy": "cf deploy gen/mta.tar",
|
||||||
"fiori": "cds watch fiori",
|
"undeploy": "cf undeploy capire.samples --delete-services --delete-service-keys --delete-service-brokers",
|
||||||
"hello": "cds watch hello",
|
"bookshop": "cds watch bookshop",
|
||||||
"media": "cds watch media",
|
"start": "cds watch fiori",
|
||||||
"lint": "eslint",
|
"fiori": "cds watch fiori",
|
||||||
"test": "npx jest --silent",
|
"hello": "cds watch hello",
|
||||||
"jest": "npx jest --silent",
|
"media": "cds watch media",
|
||||||
"mocha": "CDS_TEST_SILENT=y npx mocha",
|
"lint": "eslint",
|
||||||
"test:hello": "cd hello && npm test"
|
"test": "npx jest --silent",
|
||||||
},
|
"jest": "npx jest --silent",
|
||||||
"mocha": {
|
"mocha": "CDS_TEST_SILENT=y npx mocha",
|
||||||
"recursive": true,
|
"test:hello": "cd hello && npm test"
|
||||||
"parallel": true,
|
},
|
||||||
"timeout": 6666
|
"mocha": {
|
||||||
},
|
"recursive": true,
|
||||||
"license": "SEE LICENSE IN LICENSE",
|
"parallel": true,
|
||||||
"private": true
|
"timeout": 6666
|
||||||
|
},
|
||||||
|
"license": "SEE LICENSE IN LICENSE",
|
||||||
|
"private": true
|
||||||
}
|
}
|
||||||
|
|||||||
22
xs-security.json
Normal file
22
xs-security.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"scopes": [
|
||||||
|
{
|
||||||
|
"name": "$XSAPPNAME.emcallback",
|
||||||
|
"description": "Enterprise-Messaging Callback Access",
|
||||||
|
"grant-as-authority-to-apps": [
|
||||||
|
"$XSSERVICENAME(samples-messaging)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$XSAPPNAME.emmanagement",
|
||||||
|
"description": "Enterprise-Messaging Management Access"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"attributes": [],
|
||||||
|
"role-templates": [],
|
||||||
|
"authorities-inheritance": false,
|
||||||
|
"authorities": [
|
||||||
|
"$XSAPPNAME.emmanagement",
|
||||||
|
"$XSAPPNAME.mtcallback"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user