Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
added health check example
  • Loading branch information
wenjunche committed May 5, 2022
commit 0cf1907e5b941c5213043db7a1167a0a4d76d8e0
21 changes: 21 additions & 0 deletions deployment-health-check/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2021 Wenjun Che

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
11 changes: 11 additions & 0 deletions deployment-health-check/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# OpenFin Service Deployment Health Check

A sample page to show health of some webservices deployed at OpenFin with [@openfin/deployment](https://www.npmjs.com/package/@openfin/deployment) package.

## Files

* https://cdn.openfin.co/tools/deployment/1.0.0/openfin-deployment.js: [@openfin/deployment](https://www.npmjs.com/package/@openfin/deployment) package for checking accessiblity to OpenFin resources. CORS needs to be enabled for any endpoint in order for health check to work properly.
* src/example.ts: example for @openfin/deployment package as ES module. The exmaple can be started with `npm run start`.
* index.html: example for using \<script> tag.

An example of this page is available [here](https://cdn.openfin.co/health/deployment/index.html).
25 changes: 25 additions & 0 deletions deployment-health-check/example.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<h1>Example OpenFin Deployment</h1>

<div>
<span>Result of checkForFinsProtocol:</span><span id="checkForFinsProtocol" style="margin: 0 0 0 10px;"></span>
</div>
<br>
<div>
<span>Result of checkEndpoints:</span>
<ul id="endpointChecks"></ul>
</div>
<br>
<div>
<span>Result of checkEndpoints with custom endpoints:</span>
<ul id="customEndpointChecks"></ul>
</div>

</body>
</html>
Binary file added deployment-health-check/favicon.ico
Binary file not shown.
76 changes: 76 additions & 0 deletions deployment-health-check/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<html>
<head>
<title>OpenFin Deployment Health Check</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico">
<link rel="stylesheet" type="text/css" href="styles.css">
<script src="https://cdn.openfin.co/tools/deployment/1.0.0/openfin-deployment.js"></script>
<script>
document.addEventListener('DOMContentLoaded', async function () {
const resultsDiv = document.getElementById('results');
const rerunBtn = document.getElementById('rerun');

// add cloud url status item
function addEndpointItem(idx, urlInfo) {
const li = document.createElement('li');
li.setAttribute('id', `url_${idx}`);
const led = document.createElement('led');
li.appendChild(led);
const msg = document.createElement('span');
msg.setAttribute('title', urlInfo.url);
msg.innerHTML = urlInfo.displayName;
li.classList.add((urlInfo.success ? 'good' : 'bad'));
li.appendChild(msg);
resultsDiv.appendChild(li);
}

function launchOpenFinApp() {
window.open('fins://s3.amazonaws.com/ftp.openfin.co/Deployment/Deploymentapp.json');
}

function addProtocolItem(supportInfo, endpointCheckResult) {
const allGood = endpointCheckResult.every((currentValue) => currentValue.success);
if (allGood && supportInfo.isFinsDetectionSupported && supportInfo.isFinsSupported) {
const li = document.createElement('li');
li.setAttribute('id', 'protocol_support');
const led = document.createElement('led');
li.appendChild(led);
const msg = document.createElement('button')
msg.textContent = "RVM detected, launch desktop application";
msg.onclick = launchOpenFinApp;
li.classList.add('good');
li.appendChild(msg);
resultsDiv.appendChild(li);
}
}

async function runIt() {
resultsDiv.innerHTML = '';
const endpointCheckResult = await openfinDeployment.checkEndpoints();
endpointCheckResult.forEach((status, idx) => addEndpointItem(idx, status))

const finsProtocolResult = await openfinDeployment.checkForFinsProtocol();
addProtocolItem(finsProtocolResult, endpointCheckResult);
}

rerunBtn.addEventListener('click', runIt);

runIt()
});
</script>
</head>
<body>
<panel>
<header>
<logo></logo>
<title>Deployment Health Check</title>
</header>
<content>
<ul id="results"></ul>
</content>
<footer>
<button id="rerun">Run Again</button>
</footer>
</panel>
</body>
</html>

Loading