Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ Below you will find a list of examples that will help you learn OpenFin Deployme

If you need to self-host the runtime and rvm then the following example shows you an express server that hosts a runtime/rvm and an application that takes advantage of that custom setup once you have modified
the RVM's registry settings.

## [Health-check Example](deployment-health-check/README.md)

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

3 changes: 3 additions & 0 deletions deployment-health-check/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Copyright 2021-2022 OpenFin Inc.

You may not run or in any way utilize the code in this package, unless you have executed an enterprise license directly with OpenFin. You can learn more about OpenFin licensing by emailing us at [email protected] with questions.
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