assay-workflow 0.1.8

Durable workflow engine with REST+SSE API, PostgreSQL/SQLite backends. Embeddable library or standalone server.
Documentation
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>__PAGE_TITLE__</title>
  __FAVICON_LINK__
  <link rel="stylesheet" href="/workflow/theme.css?v=__ASSETV__">
  <link rel="stylesheet" href="/workflow/style.css?v=__ASSETV__">
  __EXTRA_CSS_LINK__
</head>
<body__DEFAULT_NAMESPACE_ATTR__>
  <div class="layout">
    <aside class="sidebar" id="sidebar">
      <div class="sidebar-header">
        <h1 class="logo">
          __BRAND_LOGO_IMG__
          <span class="logo-mark" aria-hidden="true">__BRAND_MARK__</span>
          <span class="logo-text">
            <span class="logo-full">__BRAND_NAME__</span>
            __BRAND_SUBTITLE__
          </span>
        </h1>
        <button type="button" class="header-icon-btn" id="sidebar-collapse" title="Collapse sidebar" aria-label="Toggle sidebar">
          <!--
            Chevron icons replace the ASCII `<` / `>` that used to live
            here — same toggle behaviour, cleaner visual. The two icons
            swap via `.sidebar.collapsed` CSS rules so the button always
            points at the direction the sidebar is about to move.
          -->
          <svg class="icon-collapse" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M15 18l-6-6 6-6"/>
          </svg>
          <svg class="icon-expand" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M9 18l6-6-6-6"/>
          </svg>
        </button>
      </div>
      <div class="sidebar-section">
        <label class="sidebar-label" for="namespace-select">Namespace</label>
        <select id="namespace-select" class="namespace-select"></select>
      </div>
      <nav class="sidebar-nav">
        <a href="#" class="nav-link active" data-view="workflows">
          <span class="nav-icon">&#9654;</span> <span class="nav-label">Workflows</span>
        </a>
        <a href="#" class="nav-link" data-view="schedules">
          <span class="nav-icon">&#9200;</span> <span class="nav-label">Schedules</span>
        </a>
        <a href="#" class="nav-link" data-view="workers">
          <span class="nav-icon">&#9881;</span> <span class="nav-label">Workers</span>
        </a>
        <a href="#" class="nav-link" data-view="queues">
          <span class="nav-icon">&#9776;</span> <span class="nav-label">Queues</span>
        </a>
        <a href="#" class="nav-link" data-view="settings">
          <span class="nav-icon">&#9881;</span> <span class="nav-label">Settings</span>
        </a>
      </nav>
      <div class="sidebar-footer">
        __PARENT_BACK_LINK__
        __API_DOCS_LINK__
        <button type="button" class="nav-link nav-link-button nav-link-icon" id="theme-toggle" title="Toggle theme" aria-label="Toggle theme">
          <span class="nav-icon icon-sun">&#9788;</span>
          <span class="nav-icon icon-moon">&#9790;</span>
        </button>
      </div>
    </aside>

    <main id="content" class="main-content"></main>

    <div id="detail-panel" class="detail-panel"></div>
  </div>

  <footer class="status-bar">
    <span class="status-item" id="status-connection">
      <span class="status-dot" id="connection-dot"></span>
      <span id="connection-text">Connecting...</span>
    </span>
    <span class="status-item">
      Namespace:
      <!--
        Clickable shortcut to the namespace selector. Users spending
        time in a single namespace see this value all the time; making
        it a live switcher avoids the round-trip up to the sidebar
        dropdown.
      -->
      <button type="button" id="status-namespace-btn" class="status-namespace-btn"
              title="Switch namespace">
        <strong id="status-namespace">main</strong>
        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <path d="M6 9l6 6 6-6"/>
        </svg>
      </button>
    </span>
    <span class="status-item">
      Workers: <strong id="status-workers">0</strong>
    </span>
    <span class="status-item status-version">
      __ENGINE_FOOTER__
    </span>
  </footer>

  <button class="sidebar-toggle" id="sidebar-toggle" title="Toggle sidebar">&#9776;</button>

  <script src="https://unpkg.com/htmx.org@2.0.4"></script>
  <script src="/workflow/components/workflows.js?v=__ASSETV__"></script>
  <script src="/workflow/components/detail.js?v=__ASSETV__"></script>
  <script src="/workflow/components/schedules.js?v=__ASSETV__"></script>
  <script src="/workflow/components/workers.js?v=__ASSETV__"></script>
  <script src="/workflow/components/queues.js?v=__ASSETV__"></script>
  <script src="/workflow/components/settings.js?v=__ASSETV__"></script>
  <script src="/workflow/app.js?v=__ASSETV__"></script>
</body>
</html>