SIMON Master Console Rebuild
True command center for SIMON + WEB360
This rebuild gives you a cleaner production spine: interactive tree, live viewer, guarded editor, dynamic graphics, architecture map, and note storage. It is designed to sit beside your existing
console.php
and become the stronger replacement path.
Dashboard
Tree
Viewer
System Map
File Registry
Notes
Files
15,325
Folders
409
Scanned Size
3.84 GB
PHP Files
885
Editable Text Files
12,586
File viewer
guarded to /htdocs
/connlink/test1/ui/old/webhook_test.php
<?php /* ============================================================ * SIMON · Webhook Test Console * ------------------------------------------------------------ * Upload to: /htdocs/connlink/test1/ui/webhook_test.php * Open in: https://www.gaylordsinclair.com/connlink/test1/ui/webhook_test.php * Lets you: post a test event, view recent events per stream. * ============================================================ */ $INBOX_URL = 'webhook_inbox.php'; $streams = glob(__DIR__.'/data/webhook_*.ndjson'); $streamNames = array_map(function($f){ return preg_replace('/^webhook_|\.ndjson$/','',basename($f)); }, $streams ?: []); $selected = preg_replace('/[^A-Za-z0-9_-]/','', $_GET['stream'] ?? ($streamNames[0] ?? 'default')); if ($selected === '') $selected = 'default'; ?> <!doctype html> <meta charset="utf-8"> <title>SIMON · Webhook Test</title> <style> body{margin:0;padding:24px;background:#0a071c;color:#eef;font:14px ui-monospace,Menlo,monospace} h1{color:#4be3ff;margin:0 0 12px;font-weight:700} .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:8px 0} input,textarea,button,select{background:#12103a;color:#eef;border:1px solid #333668;border-radius:8px;padding:8px 12px;font:inherit} button{background:linear-gradient(90deg,#4be3ff,#7a5cff);color:#0a071c;font-weight:700;cursor:pointer;border:0} .muted{color:#9aa4c4} .box{background:#12103a;border:1px solid #333668;border-radius:12px;padding:12px;margin:8px 0;max-height:60vh;overflow:auto} code{color:#7cff9e} </style> <h1>🪝 SIMON · Webhook Test Console</h1> <div class="row muted"> Stream: <form method="get" style="display:inline"> <select name="stream" onchange="this.form.submit()"> <?php foreach (array_unique(array_merge(['default'], $streamNames)) as $s): ?> <option <?= $s===$selected?'selected':'' ?>><?= htmlspecialchars($s) ?></option> <?php endforeach; ?> </select> </form> · POST URL: <code id="posturl"><?= 'https://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$INBOX_URL.'?stream='.$selected ?></code> <button onclick="navigator.clipboard.writeText(document.getElementById('posturl').textContent)">Copy</button> </div> <div class="box"> <b>Send test payload</b> <div class="row"> <input id="title" placeholder="title" value="SIMON webhook test" style="flex:1;min-width:220px"> <input id="summary" placeholder="summary" value="hello from webhook_test.php" style="flex:2;min-width:260px"> <button onclick="sendTest()">POST →</button> </div> <pre id="result" class="muted" style="white-space:pre-wrap"></pre> </div> <div class="box"> <b>Recent events in stream: <code><?= htmlspecialchars($selected) ?></code></b> <pre id="events" style="white-space:pre-wrap"></pre> </div> <script> const INBOX = <?= json_encode($INBOX_URL) ?>; const STREAM = <?= json_encode($selected) ?>; async function loadEvents(){ const r = await fetch(`${INBOX}?stream=${encodeURIComponent(STREAM)}&limit=20`); const j = await r.json(); document.getElementById('events').textContent = JSON.stringify(j, null, 2); } async function sendTest(){ const body = { title: document.getElementById('title').value, summary: document.getElementById('summary').value, url: location.href, at: new Date().toISOString(), source: 'webhook_test.php' }; const r = await fetch(`${INBOX}?stream=${encodeURIComponent(STREAM)}`, { method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify(body) }); document.getElementById('result').textContent = await r.text(); loadEvents(); } loadEvents(); </script>
Save file
Quick jump
open a path
Open