@sap/cds-dk 6.7.2 → 6.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/bin/deploy/index.js +1 -1
- package/bin/import.js +5 -3
- package/bin/login.js +29 -9
- package/bin/watch.js +4 -0
- package/lib/bind/bindingUtil.js +2 -2
- package/lib/bind/userCdsrcJsonStorageProvider.js +1 -1
- package/lib/client/auth_manager.js +3 -1
- package/lib/client/helper/errors.js +6 -1
- package/lib/client/params.js +22 -20
- package/lib/client/settings_manager.js +17 -3
- package/lib/compile/openapi/csdl2openapi.js +2 -1
- package/lib/import/asyncapi/importAsyncAPI.js +32 -0
- package/lib/import/asyncapi/index.js +15 -0
- package/lib/import/asyncapi/parserContext.js +351 -0
- package/lib/import/asyncapi/utils.js +18 -0
- package/lib/import/common.js +21 -67
- package/lib/import/importapi.js +23 -2
- package/lib/import/message.js +11 -1
- package/lib/import/odata/index.js +14 -11
- package/lib/import/odata/metadataconverter/MetadataConverter.js +35 -35
- package/lib/import/odata/util/MultiMap.js +5 -5
- package/lib/import/odata/v2parser.js +1 -0
- package/lib/import/odata/v4parser.js +1281 -1139
- package/lib/init/constants.js +10 -3
- package/lib/init/template/_merging/registry-mta.js +33 -36
- package/lib/init/template/approuter/files/mtxs-configmap-java.yaml +20 -0
- package/lib/init/template/approuter/files/mtxs-configmap-nodejs.yaml +12 -0
- package/lib/init/template/approuter/index.js +24 -33
- package/lib/init/template/auditlog/files/package.json.hbs +27 -0
- package/lib/init/template/auditlog/index.js +12 -6
- package/lib/init/template/cf-manifest/index.js +1 -1
- package/lib/init/template/connectivity/index.js +1 -1
- package/lib/init/template/destinations/index.js +4 -2
- package/lib/init/template/enterprise-messaging/files/package.json.hbs +19 -0
- package/lib/init/template/enterprise-messaging/index.js +15 -13
- package/lib/init/template/enterprise-messaging-shared/files/event-mesh.json.hbs +31 -0
- package/lib/init/template/enterprise-messaging-shared/files/mta.yaml.hbs +15 -0
- package/lib/init/template/enterprise-messaging-shared/files/package.json.hbs +22 -0
- package/lib/init/template/enterprise-messaging-shared/files/values.yaml +7 -0
- package/lib/init/template/enterprise-messaging-shared/index.js +51 -0
- package/lib/init/template/extensibility/files/package.json.hbs +20 -0
- package/lib/init/template/extensibility/index.js +4 -16
- package/lib/init/template/file-based-messaging/files/package.json.hbs +19 -0
- package/lib/init/template/file-based-messaging/index.js +25 -0
- package/lib/init/template/hana/files/package.json.hbs +33 -0
- package/lib/init/template/hana/index.js +38 -65
- package/lib/init/template/helm/chart/templates/_deployment_helpers.tpl +0 -12
- package/lib/init/template/helm/chart/templates/_helpers.tpl +1 -121
- package/lib/init/template/helm/index.js +1 -1
- package/lib/init/template/html5-repo/index.js +1 -1
- package/lib/init/template/java/index.js +2 -2
- package/lib/init/template/kibana-logging/files/package.json.hbs +17 -0
- package/lib/init/template/kibana-logging/index.js +6 -19
- package/lib/init/template/lint/index.js +1 -1
- package/lib/init/template/mta/index.js +2 -2
- package/lib/init/template/multitenancy/files/mtxs-configmap-java.yaml +3 -5
- package/lib/init/template/multitenancy/files/mtxs-configmap-nodejs.yaml +3 -10
- package/lib/init/template/multitenancy/files/package.json.hbs +5 -4
- package/lib/init/template/multitenancy/index.js +22 -19
- package/lib/init/template/nodejs/files/.vscode/launch.json +11 -3
- package/lib/init/template/nodejs/index.js +1 -1
- package/lib/init/template/pipeline/index.js +1 -1
- package/lib/init/template/redis-messaging/files/mta.yaml.hbs +14 -0
- package/lib/init/template/redis-messaging/files/package.json.hbs +22 -0
- package/lib/init/template/redis-messaging/index.js +50 -0
- package/lib/init/template/samples/index.js +3 -3
- package/lib/init/template/sqlite/files/package.json.hbs +12 -4
- package/lib/init/template/sqlite/index.js +5 -1
- package/lib/init/template/toggles/files/package.json.hbs +20 -0
- package/lib/init/template/toggles/index.js +3 -9
- package/lib/init/template/xsuaa/files/package.json.hbs +28 -0
- package/lib/init/template/xsuaa/index.js +8 -23
- package/lib/init/util/{md5Tracking.js → md5.js} +1 -1
- package/lib/init/util/merge.js +4 -9
- package/lib/init/util/{mvnArchetypeUtil.js → mvn.js} +3 -0
- package/lib/init/util/projectReader.js +25 -107
- package/lib/init/util/xml.js +56 -0
- package/lib/lint/checks.js +1 -1
- package/lib/lint/io.js +1 -1
- package/lib/{init/util/commandUtil.js → util/command.js} +4 -2
- package/lib/{init/util/fsUtil.js → util/fs.js} +2 -2
- package/npm-shrinkwrap.json +29 -28
- package/package.json +5 -4
- package/lib/init/template/approuter/files/cds.cdsrc.json +0 -7
- package/lib/init/template/approuter/files/cds.cdsrc.json.hbs +0 -9
- package/lib/init/template/approuter/files/cds.package.json +0 -9
- package/lib/init/template/approuter/files/cds.package.json.hbs +0 -11
- package/lib/init/template/auditlog/files/dependencies.package.json +0 -5
- package/lib/init/template/enterprise-messaging/files/cds.package.json +0 -9
- package/lib/init/template/enterprise-messaging/files/cds.profile.package.json.hbs +0 -11
- package/lib/init/template/enterprise-messaging/files/cdsrc.json +0 -7
- package/lib/init/template/enterprise-messaging/files/cdsrc.json.hbs +0 -9
- package/lib/init/template/extensibility/files/cds.package.json +0 -7
- package/lib/init/template/extensibility/files/cds.package.json.hbs +0 -9
- package/lib/init/template/extensibility/files/cdsrc.json +0 -5
- package/lib/init/template/extensibility/files/cdsrc.json.hbs +0 -7
- package/lib/init/template/hana/files/java/cds.json.hbs +0 -7
- package/lib/init/template/hana/files/java/cds.profile.json.hbs +0 -12
- package/lib/init/template/hana/files/java/cds.shortcut.json.hbs +0 -5
- package/lib/init/template/hana/files/java/cds.shortcut.profile.json.hbs +0 -8
- package/lib/init/template/hana/files/nodejs/cds.json.hbs +0 -9
- package/lib/init/template/hana/files/nodejs/cds.profile.json.hbs +0 -14
- package/lib/init/template/hana/files/nodejs/cds.shortcut.json.hbs +0 -7
- package/lib/init/template/hana/files/nodejs/cds.shortcut.profile.json.hbs +0 -10
- package/lib/init/template/hana/files/nodejs/dependencies.package.json +0 -5
- package/lib/init/template/helm/chart/templates/_sapcp_helpers.tpl +0 -103
- package/lib/init/template/kibana-logging/files/cds.profile.package.json.hbs +0 -9
- package/lib/init/template/toggles/files/cds.package.json +0 -7
- package/lib/init/template/toggles/files/cds.package.json.hbs +0 -9
- package/lib/init/template/toggles/files/cdsrc.json +0 -5
- package/lib/init/template/toggles/files/cdsrc.json.hbs +0 -7
- package/lib/init/template/xsuaa/files/cds.cdsrc.json +0 -7
- package/lib/init/template/xsuaa/files/cds.cdsrc.json.hbs +0 -9
- package/lib/init/template/xsuaa/files/cds.package.json +0 -9
- package/lib/init/template/xsuaa/files/cds.package.json.hbs +0 -11
- package/lib/init/template/xsuaa/files/dependencies.package.json +0 -6
- package/lib/init/util/versionCompare.js +0 -73
- /package/lib/init/template/hana/files/{java/db → db}/package.json +0 -0
- /package/lib/init/template/hana/files/{common/src → src}/.hdiconfig +0 -0
- /package/lib/init/template/hana/files/{common/undeploy.json → undeploy.json} +0 -0
- /package/lib/init/util/{templateUtil.js → template.js} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
{{#cap.isNodejs}}
|
|
3
|
+
"dependencies": {
|
|
4
|
+
"@sap/cds-mtxs": "^1"
|
|
5
|
+
},
|
|
6
|
+
"cds": {
|
|
7
|
+
{{/cap.isNodejs}}
|
|
8
|
+
"requires": {
|
|
9
|
+
{{#cap.for}}
|
|
10
|
+
"[{{cap.for}}]": {
|
|
11
|
+
{{/cap.for}}
|
|
12
|
+
"extensibility": true
|
|
13
|
+
{{#cap.for}}
|
|
14
|
+
}
|
|
15
|
+
{{/cap.for}}
|
|
16
|
+
}
|
|
17
|
+
{{#cap.isNodejs}}
|
|
18
|
+
}
|
|
19
|
+
{{/cap.isNodejs}}
|
|
20
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const cds = require('../../../cds')
|
|
2
|
-
const {
|
|
2
|
+
const { exists } = cds.utils
|
|
3
3
|
const { join } = require('path')
|
|
4
4
|
const { readProject } = require('../../util/projectReader')
|
|
5
5
|
const { mergeJSON } = require('../../util/merge')
|
|
@@ -18,25 +18,13 @@ module.exports = class ExtensibilityTemplate extends require('../templateBase')
|
|
|
18
18
|
|
|
19
19
|
async run() {
|
|
20
20
|
const projectDescriptor = await readProject(this.options)
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
const cdsTemplateFile = forProfile ? (isJava ? 'cdsrc.json.hbs' : 'cds.package.json.hbs') : (isJava ? 'cdsrc.json' : 'cds.package.json')
|
|
24
|
-
await mergeJSON(cdsConfigPath, join(__dirname, 'files', cdsTemplateFile), projectDescriptor)
|
|
25
|
-
if (hasSidecar) {
|
|
26
|
-
const out = join('mtx', 'sidecar', 'package.json')
|
|
27
|
-
const config = await read(out)
|
|
28
|
-
if (!config.cds) config.cds = {}
|
|
29
|
-
if (!config.cds.requires) config.cds.requires = {}
|
|
30
|
-
if (!('cds.xt.ExtensibilityService' in config.cds.requires)) {
|
|
31
|
-
config.cds.requires['cds.xt.ExtensibilityService'] = true
|
|
32
|
-
await write(out, config, { spaces: 2 })
|
|
33
|
-
}
|
|
34
|
-
}
|
|
21
|
+
const { configFile } = projectDescriptor.cap
|
|
22
|
+
await mergeJSON(configFile, join(__dirname, 'files', 'package.json.hbs'), projectDescriptor)
|
|
35
23
|
await this.runDependentMerging()
|
|
36
24
|
}
|
|
37
25
|
|
|
38
26
|
async runDependentMerging() {
|
|
39
|
-
const projectDescriptor = await readProject()
|
|
27
|
+
const projectDescriptor = await readProject(this.options)
|
|
40
28
|
const { hasXsuaa, hasApprouter } = projectDescriptor.cap
|
|
41
29
|
if (hasXsuaa) {
|
|
42
30
|
await mergeJSON(
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
{{#cap.isNodejs}}
|
|
3
|
+
"cds": {
|
|
4
|
+
{{/cap.isNodejs}}
|
|
5
|
+
"requires": {
|
|
6
|
+
{{#cap.for}}
|
|
7
|
+
"[{{cap.for}}]": {
|
|
8
|
+
{{/cap.for}}
|
|
9
|
+
"messaging": {
|
|
10
|
+
"kind": "file-based-messaging"
|
|
11
|
+
}
|
|
12
|
+
{{#cap.for}}
|
|
13
|
+
}
|
|
14
|
+
{{/cap.for}}
|
|
15
|
+
}
|
|
16
|
+
{{#cap.isNodejs}}
|
|
17
|
+
}
|
|
18
|
+
{{/cap.isNodejs}}
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const { join } = require('path')
|
|
2
|
+
const cds = require('../../../cds'), { read } = cds.utils
|
|
3
|
+
const { readProject } = require('../../util/projectReader')
|
|
4
|
+
const { mergeJSON } = require('../../util/merge')
|
|
5
|
+
|
|
6
|
+
module.exports = class FileBasedMessagingTemplate extends require('../templateBase') {
|
|
7
|
+
|
|
8
|
+
async canRun() {
|
|
9
|
+
const projectDescriptor = await readProject(this.options)
|
|
10
|
+
const { isJava } = projectDescriptor.cap
|
|
11
|
+
if (isJava) throw `'cds add file-based-messaging' is not available for Java yet`
|
|
12
|
+
return true
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static hasFacet(env) {
|
|
16
|
+
return env.requires?.messaging?.kind === 'file-based-messaging'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async run() {
|
|
20
|
+
const projectDescriptor = await readProject(this.options)
|
|
21
|
+
const { configFile } = projectDescriptor.cap
|
|
22
|
+
projectDescriptor.cap.shortcut = !(await read(configFile)).cds?.requires?.messaging?.kind
|
|
23
|
+
await mergeJSON(configFile, join(__dirname, 'files', 'package.json.hbs'), projectDescriptor)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
{{#cap.isNodejs}}
|
|
3
|
+
"dependencies": {
|
|
4
|
+
"hdb": "^0.19.0"
|
|
5
|
+
},
|
|
6
|
+
"cds": {
|
|
7
|
+
{{/cap.isNodejs}}
|
|
8
|
+
"requires": {
|
|
9
|
+
{{#cap.for}}
|
|
10
|
+
"[{{cap.for}}]": {
|
|
11
|
+
{{#cap.shortcut}}
|
|
12
|
+
"db": "hana-cloud"
|
|
13
|
+
{{/cap.shortcut}}
|
|
14
|
+
{{^cap.shortcut}}
|
|
15
|
+
"db": {
|
|
16
|
+
"kind": "hana-cloud"
|
|
17
|
+
}
|
|
18
|
+
{{/cap.shortcut}}
|
|
19
|
+
},
|
|
20
|
+
{{/cap.for}}
|
|
21
|
+
{{#cap.shortcut}}
|
|
22
|
+
"db": "{{^cap.for}}hana-cloud{{/cap.for}}{{#cap.for}}sql{{/cap.for}}"
|
|
23
|
+
{{/cap.shortcut}}
|
|
24
|
+
{{^cap.shortcut}}
|
|
25
|
+
"db": {
|
|
26
|
+
"kind": "sql"
|
|
27
|
+
}
|
|
28
|
+
{{/cap.shortcut}}
|
|
29
|
+
}
|
|
30
|
+
{{#cap.isNodejs}}
|
|
31
|
+
}
|
|
32
|
+
{{/cap.isNodejs}}
|
|
33
|
+
}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
const { join } = require('path');
|
|
2
2
|
const cds = require('../../../cds')
|
|
3
3
|
const { read, write, exists, rmdir } = cds.utils
|
|
4
|
-
const commandUtil = require('
|
|
5
|
-
const mvnArchetypes = require('../../util/
|
|
4
|
+
const commandUtil = require('../../../util/command');
|
|
5
|
+
const mvnArchetypes = require('../../util/mvn');
|
|
6
6
|
const term = require('../../../util/term');
|
|
7
7
|
const { mergeJSON, mergeYAML, removeFromYAML, removeFromYAMLArray } = require('../../util/merge')
|
|
8
|
-
const { parseMd5File, writeMd5File } = require('../../util/
|
|
9
|
-
const { copyFiles } = require('../../util/
|
|
8
|
+
const { parseMd5File, writeMd5File } = require('../../util/md5')
|
|
9
|
+
const { copyFiles } = require('../../util/template')
|
|
10
10
|
const { readProject } = require('../../util/projectReader');
|
|
11
|
-
const versionCompare = require('../../util/versionCompare');
|
|
12
11
|
|
|
13
|
-
const {
|
|
12
|
+
const { OPTION_JAVA, URLS } = require('../../constants');
|
|
14
13
|
|
|
15
|
-
const {
|
|
14
|
+
const { srvNode4, srvJava4, hdbDeployer, serviceManager, hdiContainer, mtxSidecar4 } = require('../_merging/registry-mta');
|
|
16
15
|
|
|
17
16
|
module.exports = class HanaTemplate extends require('../templateBase') {
|
|
18
17
|
|
|
@@ -20,38 +19,44 @@ module.exports = class HanaTemplate extends require('../templateBase') {
|
|
|
20
19
|
return env.requires?.db?.kind === 'hana'
|
|
21
20
|
}
|
|
22
21
|
|
|
22
|
+
// REVISIT: Remove with CDS 7
|
|
23
23
|
async canRun() {
|
|
24
24
|
const cds = require('../../../cds')
|
|
25
|
-
|
|
25
|
+
const [major, minor] = cds.version.split('.').map(Number)
|
|
26
|
+
if (major < 5 || major === 5 && minor < 9) {
|
|
26
27
|
cds.error('The added configuration requires @sap/cds 5.9.0 or higher. Please update @sap/cds to the latest version and run \x1b[1mcds add hana\x1b[0m again.')
|
|
27
28
|
}
|
|
28
29
|
return true
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
async run() {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
await
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
33
|
+
const projectDescriptor = await readProject(this.options)
|
|
34
|
+
const { isJava, configFile } = projectDescriptor.cap
|
|
35
|
+
projectDescriptor.cap.shortcut = !(await read(configFile)).cds?.requires?.db?.kind
|
|
36
|
+
|
|
37
|
+
const env = await this.getEnv() // REVISIT: Get info from projectDescriptor
|
|
38
|
+
|
|
39
|
+
// REVISIT: Let cds build generate by default
|
|
40
|
+
const hdiConfigPath = join(env.folders.db, 'src', '.hdiconfig')
|
|
41
|
+
const hdiConfigTemplatePath = join(__dirname, 'files', 'src', '.hdiconfig')
|
|
42
|
+
await mergeJSON(hdiConfigPath, hdiConfigTemplatePath)
|
|
43
|
+
|
|
44
|
+
// REVISIT: Let csd build generate by default
|
|
45
|
+
const undeployJSONPath = join(env.folders.db, 'undeploy.json')
|
|
46
|
+
const undeployJSONTemplatePath = join(__dirname, 'files', 'undeploy.json')
|
|
47
|
+
await mergeJSON(undeployJSONPath, undeployJSONTemplatePath)
|
|
48
|
+
|
|
49
|
+
if (isJava) {
|
|
50
|
+
await copyFiles(join(__dirname, 'files', 'db'), env.folders.db, {}, this.options.force)
|
|
51
|
+
await this._updatePomXml()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
await mergeJSON(configFile, join(__dirname, 'files', 'package.json.hbs'), projectDescriptor, { forceOverwrite: true })
|
|
55
|
+
|
|
56
|
+
const packageJson = exists('package.json') ? await read('package.json') : undefined
|
|
57
|
+
if (packageJson?.dependencies) {
|
|
58
|
+
delete packageJson.dependencies['@sap/hana-client']
|
|
59
|
+
await write('package.json', packageJson, { spaces: 2 })
|
|
55
60
|
}
|
|
56
61
|
await this.runDependentMerging()
|
|
57
62
|
}
|
|
@@ -74,12 +79,9 @@ module.exports = class HanaTemplate extends require('../templateBase') {
|
|
|
74
79
|
const projectDescriptor = await readProject(this.options)
|
|
75
80
|
const { hasMta, hasHelm, hasHtml5Repo, isJava, isMultitenant, srvPath } = projectDescriptor.cap
|
|
76
81
|
|
|
77
|
-
if (isMultitenant) {
|
|
78
|
-
await this._updateCdsConfiguration()
|
|
79
|
-
}
|
|
80
82
|
|
|
81
83
|
if (hasMta) {
|
|
82
|
-
const srv = (isJava ?
|
|
84
|
+
const srv = (isJava ? srvJava4 : srvNode4)(srvPath)
|
|
83
85
|
const db = isMultitenant ? serviceManager : hdiContainer
|
|
84
86
|
const deletions = isMultitenant ? [{
|
|
85
87
|
item: hdbDeployer,
|
|
@@ -210,6 +212,7 @@ module.exports = class HanaTemplate extends require('../templateBase') {
|
|
|
210
212
|
cwd: cds.root
|
|
211
213
|
});
|
|
212
214
|
} catch (err) {
|
|
215
|
+
// REVISIT: This should not have to be checked and tested in a facet implementation, move to Maven util
|
|
213
216
|
if (err.code === 'ENOENT' && err.path === 'mvn') {
|
|
214
217
|
throw new Error(`Maven executable 'mvn' not found, follow ${term.info(URLS.MAVEN_INSTALL_HELP)} and install Maven on your machine.`);
|
|
215
218
|
}
|
|
@@ -217,34 +220,4 @@ module.exports = class HanaTemplate extends require('../templateBase') {
|
|
|
217
220
|
}
|
|
218
221
|
}
|
|
219
222
|
}
|
|
220
|
-
|
|
221
|
-
async _updatePackageJson() {
|
|
222
|
-
const packageJsonPath = join('package.json')
|
|
223
|
-
const dependenciesTemplatePath = join(__dirname, 'files', 'nodejs', 'dependencies.package.json');
|
|
224
|
-
await mergeJSON(packageJsonPath, dependenciesTemplatePath);
|
|
225
|
-
|
|
226
|
-
const packageJson = await read(packageJsonPath);
|
|
227
|
-
if ('@sap/hana-client' in packageJson.dependencies) {
|
|
228
|
-
delete packageJson.dependencies['@sap/hana-client'];
|
|
229
|
-
await write(packageJsonPath, packageJson, { spaces: 2 });
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
await this._updateCdsConfiguration()
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
async _updateCdsConfiguration(configPath) {
|
|
236
|
-
const projectType = this.getProjectType();
|
|
237
|
-
const configFile = projectType === PROJECT_TYPE.nodejs ? 'package.json' : '.cdsrc.json';
|
|
238
|
-
configPath = configPath ?? configFile
|
|
239
|
-
const projectDescriptor = await readProject(this.options);
|
|
240
|
-
const { for: forProfile } = projectDescriptor.cap;
|
|
241
|
-
let json; try { json = await read(configPath, 'utf8') } catch { /* ignore */ }
|
|
242
|
-
const _cds = projectType === PROJECT_TYPE.nodejs ? json?.cds : json;
|
|
243
|
-
const shortcut = typeof _cds?.requires?.db === 'string' || !json ? 'shortcut.' : '';
|
|
244
|
-
const profile = forProfile ? 'profile.' : '';
|
|
245
|
-
const cdsTemplateFile = `cds.${shortcut}${profile}json.hbs`
|
|
246
|
-
const { language } = projectDescriptor.cap;
|
|
247
|
-
const cdsTemplatePath = join(__dirname, 'files', language, cdsTemplateFile);
|
|
248
|
-
await mergeJSON(configPath, cdsTemplatePath, projectDescriptor, { forceOverwrite: true })
|
|
249
|
-
}
|
|
250
223
|
}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
{{/*
|
|
2
|
-
Add custom env variables
|
|
3
|
-
*/}}
|
|
4
|
-
{{- define "cap.env" -}}
|
|
5
|
-
{{- if . -}}
|
|
6
|
-
{{- range $name, $value := . }}
|
|
7
|
-
- name: {{ $name | quote }}
|
|
8
|
-
value: {{ $value | quote }}
|
|
9
|
-
{{- end -}}
|
|
10
|
-
{{- end -}}
|
|
11
|
-
{{- end -}}
|
|
12
|
-
|
|
13
1
|
{{/*
|
|
14
2
|
Get list of deployment names
|
|
15
3
|
*/}}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
{{/*
|
|
2
|
-
Check for mandatory configuration options
|
|
3
|
-
*/}}
|
|
4
|
-
{{- define "cap.expect" -}}
|
|
5
|
-
{{- $root := first . -}}
|
|
6
|
-
{{- $vars := rest . -}}
|
|
7
|
-
{{- range $path := $vars -}}
|
|
8
|
-
{{- $var := $root.Values -}}
|
|
9
|
-
{{- $segments := regexSplit "\\." $path -1 -}}
|
|
10
|
-
{{- $context := (dict "var" $var) -}}
|
|
11
|
-
{{- range $segment := $segments -}}
|
|
12
|
-
{{- $var := (get $context "var") -}}
|
|
13
|
-
{{- $var := get $var $segment -}}
|
|
14
|
-
{{- if empty $var -}}
|
|
15
|
-
{{- fail (join "" (list "Expect .Values." $path)) -}}
|
|
16
|
-
{{- end -}}
|
|
17
|
-
{{- $context := set $context "var" $var -}}
|
|
18
|
-
{{- end -}}
|
|
19
|
-
{{- end -}}
|
|
20
|
-
{{- end -}}
|
|
21
|
-
|
|
22
1
|
{{/*
|
|
23
2
|
Labels for a component
|
|
24
3
|
*/}}
|
|
@@ -33,105 +12,6 @@ app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
|
|
33
12
|
{{- end }}
|
|
34
13
|
{{- end -}}
|
|
35
14
|
|
|
36
|
-
{{/*
|
|
37
|
-
Labels to select a component
|
|
38
|
-
*/}}
|
|
39
|
-
{{- define "cap.selectorLabels" -}}
|
|
40
|
-
app.kubernetes.io/name: {{ .name }}
|
|
41
|
-
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
42
|
-
{{- end -}}
|
|
43
|
-
|
|
44
|
-
{{/*
|
|
45
|
-
Image
|
|
46
|
-
*/}}
|
|
47
|
-
{{- define "cap.image" -}}
|
|
48
|
-
{{- if .image.tag -}}
|
|
49
|
-
{{ .image.repository }}:{{ .image.tag }}
|
|
50
|
-
{{- else -}}
|
|
51
|
-
{{ .image.repository }}
|
|
52
|
-
{{- end -}}
|
|
53
|
-
{{- end -}}
|
|
54
|
-
|
|
55
|
-
{{/*
|
|
56
|
-
Image Pull Policy
|
|
57
|
-
*/}}
|
|
58
|
-
{{- define "cap.imagePullPolicy" -}}
|
|
59
|
-
{{- if and (.image.tag) (ne .image.tag "latest") -}}
|
|
60
|
-
IfNotPresent
|
|
61
|
-
{{- else -}}
|
|
62
|
-
Always
|
|
63
|
-
{{- end -}}
|
|
64
|
-
{{- end -}}
|
|
65
|
-
|
|
66
|
-
{{/*
|
|
67
|
-
Image Pull Secrets
|
|
68
|
-
*/}}
|
|
69
|
-
{{- define "cap.imagePullSecrets" -}}
|
|
70
|
-
{{- if (and .Values.global.imagePullSecret .Values.global.imagePullSecret.name) }}
|
|
71
|
-
imagePullSecrets:
|
|
72
|
-
- name: {{ .Values.global.imagePullSecret.name | quote }}
|
|
73
|
-
{{- end -}}
|
|
74
|
-
{{- end -}}
|
|
75
|
-
|
|
76
|
-
{{/*
|
|
77
|
-
Service Instance NEW
|
|
78
|
-
ternary dict ($.Files.Get $.service.config | fromJson)
|
|
79
|
-
*/}}
|
|
80
|
-
{{- define "cap.service-instance" -}}
|
|
81
|
-
{{- $key := .Template.Name | lower | regexFind "[a-zA-Z0-9_-]+.yaml" | replace ".yaml" "" | replace "-" "_" }}
|
|
82
|
-
{{- $service := get .Values $key }}
|
|
83
|
-
{{- if $service }}
|
|
84
|
-
{{- if or (not (hasKey $service "enabled")) $service.enabled }}
|
|
85
|
-
{{- $name := $key | replace "_" "-" }}
|
|
86
|
-
{{- $serviceParameters := $service.parameters | default (dict) }}
|
|
87
|
-
{{- $configParameters := (dict) }}
|
|
88
|
-
{{- if $service.config }}
|
|
89
|
-
{{- $configString := $.Files.Get $service.config }}
|
|
90
|
-
{{- if not $configString }}
|
|
91
|
-
{{- fail (print "Config file " $service.config " not found") }}
|
|
92
|
-
{{- end }}
|
|
93
|
-
{{- $_ := merge $configParameters (fromJson $configString) }}
|
|
94
|
-
{{- end }}
|
|
95
|
-
{{- $defaultParameters := $.defaultParameters | default dict }}
|
|
96
|
-
{{ $parameters := merge $serviceParameters $configParameters $defaultParameters }}
|
|
97
|
-
apiVersion: services.cloud.sap.com/v1alpha1
|
|
98
|
-
kind: ServiceInstance
|
|
99
|
-
metadata:
|
|
100
|
-
name: {{ include "cap.service-instance.serviceInstanceName" (dict "root" . "name" $name "service" $service) }}
|
|
101
|
-
namespace: {{ .Release.Namespace }}
|
|
102
|
-
labels: {{- include "cap.labels" (merge (dict "name" $name) .) | nindent 4 }}
|
|
103
|
-
spec:
|
|
104
|
-
serviceOfferingName: {{ $service.serviceOfferingName }}
|
|
105
|
-
servicePlanName: {{ $service.servicePlanName }}
|
|
106
|
-
externalName: {{ .Release.Namespace }}-{{ include "cap.service-instance.serviceInstanceName" (dict "root" . "name" $name "service" $service) }}
|
|
107
|
-
parameters:
|
|
108
|
-
{{ toYaml $parameters | indent 4 }}
|
|
109
|
-
{{- end -}}
|
|
110
|
-
{{- end -}}
|
|
111
|
-
{{- end -}}
|
|
112
|
-
|
|
113
|
-
{{/*
|
|
114
|
-
Service Instance
|
|
115
|
-
from web-application helm chart
|
|
116
|
-
*/}}
|
|
117
|
-
{{- define "cap.service-instance.serviceInstanceName" -}}
|
|
118
|
-
{{- if .service.fullnameOverride }}
|
|
119
|
-
{{- if gt (len .service.fullnameOverride) 63 }}
|
|
120
|
-
{{- fail (printf "name exceeds 63 characters: '%s'" .service.fullnameOverride) }}
|
|
121
|
-
{{- end }}
|
|
122
|
-
{{- .service.fullnameOverride }}
|
|
123
|
-
{{- else }}
|
|
124
|
-
{{- $name := .name }}
|
|
125
|
-
{{- if not (hasPrefix .root.Release.Name $name)}}
|
|
126
|
-
{{- $name = printf "%s-%s" .root.Release.Name $name }}
|
|
127
|
-
{{- end }}
|
|
128
|
-
{{- if gt (len $name) 63 }}
|
|
129
|
-
{{- fail (printf "name exceeds 63 characters: '%s'" $name) }}
|
|
130
|
-
{{- end }}
|
|
131
|
-
{{- $name }}
|
|
132
|
-
{{- end }}
|
|
133
|
-
{{- end }}
|
|
134
|
-
|
|
135
15
|
{{/*
|
|
136
16
|
Saas Registry Parameters
|
|
137
17
|
*/}}
|
|
@@ -145,4 +25,4 @@ spec:
|
|
|
145
25
|
{{- $_ := set $appUrls "getDependencies" (printf "https://%s%s" $srvHostFull $appUrls.getDependencies) }}
|
|
146
26
|
{{- $_ := set $appUrls "onSubscription" (printf "https://%s%s" $srvHostFull $appUrls.onSubscription) }}
|
|
147
27
|
{{- $parameters | mustToJson }}
|
|
148
|
-
{{- end }}
|
|
28
|
+
{{- end }}
|
|
@@ -2,7 +2,7 @@ const { join } = require('path');
|
|
|
2
2
|
const { exists, rimraf } = require('../../../cds').utils;
|
|
3
3
|
const { readProject } = require('../../util/projectReader');
|
|
4
4
|
const { mergeYAML } = require('../../util/merge')
|
|
5
|
-
const { parseMd5File, writeMd5File, copyAndTrack } = require('../../util/
|
|
5
|
+
const { parseMd5File, writeMd5File, copyAndTrack } = require('../../util/md5')
|
|
6
6
|
|
|
7
7
|
module.exports = class HelmTemplate extends require('../templateBase') {
|
|
8
8
|
constructor(generator, oldTrackingData = undefined, newTrackingData = {}) {
|
|
@@ -2,7 +2,7 @@ const { join } = require('path')
|
|
|
2
2
|
const { exists } = require('../../../cds').utils
|
|
3
3
|
const { readProject } = require('../../util/projectReader')
|
|
4
4
|
const { mergeYAML } = require('../../util/merge')
|
|
5
|
-
const { copyAndTrack, parseMd5File, writeMd5File } = require('../../util/
|
|
5
|
+
const { copyAndTrack, parseMd5File, writeMd5File } = require('../../util/md5')
|
|
6
6
|
const { OPTION_DESTINATIONS } = require('../../constants')
|
|
7
7
|
|
|
8
8
|
module.exports = class Html5RepoTemplate extends require('../templateBase') {
|
|
@@ -2,8 +2,8 @@ const fs = require('fs').promises;
|
|
|
2
2
|
const os = require('os');
|
|
3
3
|
const { join, relative } = require('path');
|
|
4
4
|
|
|
5
|
-
const commandUtil = require('
|
|
6
|
-
const mvnArchetypeUtil = require('../../util/
|
|
5
|
+
const commandUtil = require('../../../util/command');
|
|
6
|
+
const mvnArchetypeUtil = require('../../util/mvn');
|
|
7
7
|
const term = require('../../../util/term');
|
|
8
8
|
const cds = require('../../../cds')
|
|
9
9
|
const { exists, copy } = cds.utils
|
|
@@ -2,8 +2,7 @@ const { join } = require('path')
|
|
|
2
2
|
const cds = require('../../../cds')
|
|
3
3
|
const { readProject } = require('../../util/projectReader')
|
|
4
4
|
const { mergeJSON, mergeYAML } = require('../../util/merge')
|
|
5
|
-
const {
|
|
6
|
-
const { srvNode, srvJava, kibanaLogging } = require('../_merging/registry-mta')
|
|
5
|
+
const { srvNode4, srvJava4, kibanaLogging } = require('../_merging/registry-mta')
|
|
7
6
|
|
|
8
7
|
module.exports = class KibanaLoggingTemplate extends require('../templateBase') {
|
|
9
8
|
|
|
@@ -17,22 +16,10 @@ module.exports = class KibanaLoggingTemplate extends require('../templateBase')
|
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
async run() {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
default:
|
|
25
|
-
cds.error(`kibana-logging is not implemented for project type '${projectType}' yet`)
|
|
26
|
-
// TODO: implement
|
|
27
|
-
break
|
|
28
|
-
case PROJECT_TYPE.nodejs: {
|
|
29
|
-
const projectDescriptor = await readProject(this.options);
|
|
30
|
-
const { for: forProfile } = projectDescriptor.cap
|
|
31
|
-
const cdsTemplateFile = forProfile ? 'cds.profile.package.json.hbs' : 'cds.package.json'
|
|
32
|
-
const cdsTemplatePath = join(__dirname, 'files', cdsTemplateFile)
|
|
33
|
-
await mergeJSON('package.json', cdsTemplatePath, projectDescriptor)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
19
|
+
const projectDescriptor = await readProject(this.options)
|
|
20
|
+
const { isJava } = projectDescriptor.cap
|
|
21
|
+
if (isJava) cds.error(`kibana-logging is not implemented for project type Java yet`)
|
|
22
|
+
await mergeJSON('package.json', join(__dirname, 'files', 'package.json.hbs'), projectDescriptor)
|
|
36
23
|
await this.runDependentMerging()
|
|
37
24
|
}
|
|
38
25
|
|
|
@@ -41,7 +28,7 @@ module.exports = class KibanaLoggingTemplate extends require('../templateBase')
|
|
|
41
28
|
const { hasMta, isNodejs, srvPath } = projectDescriptor.cap
|
|
42
29
|
|
|
43
30
|
if (hasMta) {
|
|
44
|
-
const srv = (isNodejs ?
|
|
31
|
+
const srv = (isNodejs ? srvNode4 : srvJava4)(srvPath)
|
|
45
32
|
await mergeYAML(
|
|
46
33
|
'mta.yaml',
|
|
47
34
|
join(__dirname, 'files', 'mta.yaml.hbs'),
|
|
@@ -5,7 +5,7 @@ const term = require("../../../util/term");
|
|
|
5
5
|
const checks = require("../../../lint/checks");
|
|
6
6
|
const io = require("../../../lint/io");
|
|
7
7
|
const readline = require("readline");
|
|
8
|
-
const { copyFiles } = require('../../util/
|
|
8
|
+
const { copyFiles } = require('../../util/template')
|
|
9
9
|
const { OPTION_LINT_DEV, OPTION_LINT_GLOBAL } = require("../../constants");
|
|
10
10
|
const { getConfigPath, getFileExtensions } = require("@sap/eslint-plugin-cds/lib/api");
|
|
11
11
|
const cds = require("../../../cds");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { join } = require('path');
|
|
2
2
|
const cds = require('../../../cds')
|
|
3
3
|
const { exists } = cds.utils
|
|
4
|
-
const { copyFiles } = require('../../util/
|
|
4
|
+
const { copyFiles } = require('../../util/template')
|
|
5
5
|
const { readProject } = require('../../util/projectReader');
|
|
6
6
|
|
|
7
7
|
module.exports = class MtaTemplate extends require('../templateBase') {
|
|
@@ -18,7 +18,7 @@ module.exports = class MtaTemplate extends require('../templateBase') {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// Re-applying the dependent merging part of other facets if necessary.
|
|
21
|
-
const dependentFacets = ['approuter', 'hana', 'xsuaa', 'multitenancy', 'extensibility', 'enterprise-messaging']
|
|
21
|
+
const dependentFacets = ['approuter', 'hana', 'xsuaa', 'multitenancy', 'extensibility', 'enterprise-messaging', 'enterprise-messaging-shared', 'redis-messaging']
|
|
22
22
|
for (const facet of dependentFacets) {
|
|
23
23
|
const Template = require('../'+facet)
|
|
24
24
|
const template = new Template(this.generator)
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# Please do not modify this file. This file may be overwritten.
|
|
2
2
|
|
|
3
|
-
{{- $
|
|
4
|
-
{{- $ :=
|
|
5
|
-
{{- $approuterUrl := (include "cap.deploymentHostFull" $ )}}
|
|
3
|
+
{{- $ := merge (dict "name" "approuter" "deployment" .Values.srv ) . }}
|
|
4
|
+
{{- $srvUrl := (include "cap.deploymentHostFull" $ )}}
|
|
6
5
|
|
|
7
|
-
{{- $sidecarDeployment := .Values.sidecar }}
|
|
8
6
|
{{- $ = merge (dict "name" "sidecar" "deployment" .Values.sidecar ) . }}
|
|
9
7
|
{{- $sidecarUrl := (include "cap.deploymentHostFull" $ )}}
|
|
10
8
|
|
|
@@ -15,6 +13,6 @@ metadata:
|
|
|
15
13
|
namespace: "{{ .Release.Namespace }}"
|
|
16
14
|
data:
|
|
17
15
|
CDS_MULTITENANCY_APPUI_TENANTSEPARATOR: "-"
|
|
16
|
+
CDS_MULTITENANCY_APPUI_URL: {{ printf "https://%s" $srvUrl }}
|
|
18
17
|
CDS_MULTITENANCY_MTXS_ENABLED: "true"
|
|
19
|
-
CDS_MULTITENANCY_APPUI_URL: {{ printf "https://%s" $approuterUrl }}
|
|
20
18
|
CDS_MULTITENANCY_SIDECAR_URL: {{ printf "https://%s" $sidecarUrl }}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
# Please do not modify this file. This file may be overwritten.
|
|
2
2
|
|
|
3
|
-
{{- $
|
|
4
|
-
{{- $ :=
|
|
5
|
-
{{- $approuterUrl := (include "cap.deploymentHostFull" $ )}}
|
|
6
|
-
|
|
7
|
-
{{- $sidecarDeployment := .Values.sidecar }}
|
|
8
|
-
{{- $ = merge (dict "name" "sidecar" "deployment" .Values.sidecar ) . }}
|
|
9
|
-
{{- $sidecarUrl := (include "cap.deploymentHostFull" $ )}}
|
|
3
|
+
{{- $ := merge (dict "name" "srv" "deployment" .Values.srv ) . }}
|
|
4
|
+
{{- $srvUrl := (include "cap.deploymentHostFull" $ )}}
|
|
10
5
|
|
|
11
6
|
apiVersion: v1
|
|
12
7
|
kind: ConfigMap
|
|
@@ -14,6 +9,4 @@ metadata:
|
|
|
14
9
|
name: "{{ .Release.Name }}-mtxs-configmap"
|
|
15
10
|
namespace: "{{ .Release.Namespace }}"
|
|
16
11
|
data:
|
|
17
|
-
|
|
18
|
-
CDS_MULTITENANCY_APPUI_URL: {{ printf "https://%s" $approuterUrl }}
|
|
19
|
-
SUBSCRIPTION_URL: {{ printf "https://${tenant_subdomain}-%s" $approuterUrl }}
|
|
12
|
+
SUBSCRIPTION_URL: {{ printf "https://${tenant_subdomain}-%s" $srvUrl }}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"dependencies": {
|
|
4
4
|
"@sap/cds-mtxs": "^1"
|
|
5
5
|
},
|
|
6
|
-
{{/cap.isNodejs}}
|
|
7
6
|
"cds": {
|
|
7
|
+
{{/cap.isNodejs}}
|
|
8
8
|
{{#cap.isJava}}
|
|
9
9
|
"profiles": ["with-mtx-sidecar", "java"],
|
|
10
10
|
"build": {
|
|
@@ -17,12 +17,13 @@
|
|
|
17
17
|
"requires": {
|
|
18
18
|
{{#cap.for}}
|
|
19
19
|
"[{{cap.for}}]": {
|
|
20
|
+
{{/cap.for}}
|
|
20
21
|
"multitenancy": true
|
|
22
|
+
{{#cap.for}}
|
|
21
23
|
}
|
|
22
24
|
{{/cap.for}}
|
|
23
|
-
{{^cap.for}}
|
|
24
|
-
"multitenancy": true
|
|
25
|
-
{{/cap.for}}
|
|
26
25
|
}
|
|
26
|
+
{{#cap.isNodejs}}
|
|
27
27
|
}
|
|
28
|
+
{{/cap.isNodejs}}
|
|
28
29
|
}
|