Skip to content

Commit

Permalink
Serve appconfig live
Browse files Browse the repository at this point in the history
  • Loading branch information
oklemenz2 committed Feb 11, 2025
1 parent 9f37d79 commit 1e5518f
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 55 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,8 @@ server welcome page. For productive usage, UIs should be served via HTML5 repo:
- Disable serving UIs in server: `cds.requires.sap-afc-sdk.ui: false`
- `cds add html5-repo`
### Additional Setup
#### Redis
You can scale the application by adding a Redis cache to distribute workload across application instances:
Expand Down
39 changes: 21 additions & 18 deletions cds-plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,25 +94,8 @@ function serveUIs() {
cds.app.serve(`${uiPath}/flp.html`).from(process.env.CDS_PLUGIN_PACKAGE, "/app/flp.html");
cds.app.use(`/appconfig`, express.static(`${packageRoot}/app/appconfig`));
} else {
serveAppConfig(packageRoot, uiPath);
uiShowFlp = false;
const projectFioriSandboxConfig = require(`${cds.root}/app/appconfig/fioriSandboxConfig.json`);
const packageFioriSandboxConfig = require(`${packageRoot}/app/appconfig/fioriSandboxConfig.json`);
if (uiPath) {
for (const name in packageFioriSandboxConfig.applications ?? {}) {
const application = packageFioriSandboxConfig.applications[name];
application.url = `${uiPath}/${application.url}`;
}
for (const name in packageFioriSandboxConfig.services?.ClientSideTargetResolution?.adapter?.config?.inbounds ??
{}) {
const inbound =
packageFioriSandboxConfig.services?.ClientSideTargetResolution?.adapter?.config?.inbounds[name];
inbound.resolutionResult.url = `${uiPath}/${inbound.resolutionResult.url}`;
}
}
const mergedFioriSandboxConfig = mergeDeep(packageFioriSandboxConfig, projectFioriSandboxConfig);
cds.app.use(`/appconfig/fioriSandboxConfig.json`, (req, res) => {
res.send(mergedFioriSandboxConfig);
});
}
}
const uiShowSchedulingMonitoringJob = cds.env.requires?.["sap-afc-sdk"]?.ui?.["scheduling.monitoring.job"];
Expand All @@ -126,6 +109,26 @@ function serveUIs() {
}
}

function serveAppConfig(packageRoot, uiPath) {
cds.app.use(`/appconfig/fioriSandboxConfig.json`, (req, res) => {
const projectFioriSandboxConfig = require(`${cds.root}/app/appconfig/fioriSandboxConfig.json`);
const packageFioriSandboxConfig = require(`${packageRoot}/app/appconfig/fioriSandboxConfig.json`);
if (uiPath) {
for (const name in packageFioriSandboxConfig.applications ?? {}) {
const application = packageFioriSandboxConfig.applications[name];
application.url = `${uiPath}/${application.url}`;
}
for (const name in packageFioriSandboxConfig.services?.ClientSideTargetResolution?.adapter?.config?.inbounds ??
{}) {
const inbound = packageFioriSandboxConfig.services?.ClientSideTargetResolution?.adapter?.config?.inbounds[name];
inbound.resolutionResult.url = `${uiPath}/${inbound.resolutionResult.url}`;
}
}
const mergedFioriSandboxConfig = mergeDeep(packageFioriSandboxConfig, projectFioriSandboxConfig);
res.send(mergedFioriSandboxConfig);
});
}

function serveSwaggerUI() {
const router = express.Router();
cds.on("serving", (service) => {
Expand Down
73 changes: 37 additions & 36 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"@cap-js/sqlite": "^1.8.0",
"@sap/cds": "^8.7.1",
"@sap/cds-dk": "^8.7.0",
"eslint": "^9.20.0",
"eslint": "^9.20.1",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-jest": "^28.11.0",
"eslint-plugin-n": "^17.15.1",
Expand Down

0 comments on commit 1e5518f

Please sign in to comment.