49 lines
2.3 KiB
HTML
49 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>HYBX OMNL — status</title>
|
|
<style>
|
|
body { font-family: system-ui, sans-serif; margin: 1.5rem; max-width: 56rem; }
|
|
h1 { font-size: 1.25rem; }
|
|
pre { background: #111; color: #eee; padding: 1rem; overflow: auto; border-radius: 6px; font-size: 12px; }
|
|
.err { color: #f66; }
|
|
a { color: #6cf; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>OMNL API snapshot</h1>
|
|
<p><a href="/omnl/compliance"><strong>→ OMNL Compliance Console</strong></a> (posture, pending actions, Safe tx download)</p>
|
|
<p>Reads <code>/api/v1/omnl/ipsas/registry</code> and <code>/api/v1/omnl/ipsas/fineract-compare</code> (503 if Fineract env missing; 401 if <code>OMNL_API_KEY</code> is set and no <code>access_token</code> in this page URL).</p>
|
|
<p><a href="/api/v1/omnl/openapi.json">OpenAPI 3 JSON</a> · <a href="/api/v1/omnl/catalog">OMNL API catalog</a> · <a href="/api/v1/omnl/integration-status">integration status</a> · <a href="/api/v1/omnl/ipsas/registry">registry JSON</a> · <a href="/api/v1/omnl/ipsas/matrix">matrix JSON</a> · <a href="/api/v1/omnl/ipsas/fineract-health">Fineract health</a></p>
|
|
<h2>IPSAS registry</h2>
|
|
<pre id="reg">Loading…</pre>
|
|
<h2>Fineract compare</h2>
|
|
<pre id="fin">Loading…</pre>
|
|
<script>
|
|
(function () {
|
|
const params = new URLSearchParams(window.location.search);
|
|
const accessToken = params.get('access_token') || '';
|
|
const apiHeaders = accessToken ? { Authorization: 'Bearer ' + accessToken } : {};
|
|
async function load() {
|
|
try {
|
|
const r = await fetch('/api/v1/omnl/ipsas/registry');
|
|
document.getElementById('reg').textContent = JSON.stringify(await r.json(), null, 2);
|
|
} catch (e) {
|
|
document.getElementById('reg').innerHTML = '<span class="err">' + e + '</span>';
|
|
}
|
|
try {
|
|
const f = await fetch('/api/v1/omnl/ipsas/fineract-compare', { headers: apiHeaders });
|
|
const t = await f.text();
|
|
document.getElementById('fin').textContent = t;
|
|
} catch (e) {
|
|
document.getElementById('fin').innerHTML = '<span class="err">' + e + '</span>';
|
|
}
|
|
}
|
|
load();
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|