tem/tenant/httpx-toolkit.sql

              SELECT 'dynamic' AS component, sqlpage.run_sql('shell/shell.sql') AS properties;
              -- not including breadcrumbs from sqlpage_aide_navigation
              -- not including page title from sqlpage_aide_navigation
              

              SELECT 'title' AS component, (SELECT COALESCE(title, caption)
    FROM sqlpage_aide_navigation
   WHERE namespace = 'prime' AND path = 'tem/tenant/httpx-toolkit.sql/index.sql') as contents;
    ;
  --- Display breadcrumb
  SELECT
      'breadcrumb' AS component;
  SELECT
      'Home' AS title,
      sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/'    AS link;
  SELECT
      'Threat Exposure Management' AS title,
      sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/tem/index.sql' AS link;  
  SELECT 'Attack Surface Mapping By Tenant' AS title,
      sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/tem/attack_surface_mapping_tenant.sql' AS link;
  SELECT tenant_name AS title,
      sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/tem/tenant/attack_surface_mapping_inner.sql?tenant_id=' || $tenant_id AS link FROM tem_tenant WHERE tenant_id=$tenant_id;
  SELECT 'Findings' AS title,
          sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/tem/tenant/finding.sql?tenant_id=' || $tenant_id AS link;
  SELECT 'HTTPX Toolkit Results' AS title,
      '#' AS link;

  --- Display Page Title
  SELECT
    'title'   as component,
    'HTTPX Toolkit Results' as contents;

  SELECT
    'text' as component,
    'This page displays results from the httpx-toolkit. It provides insights into HTTP/HTTPS endpoints, including status codes, response times, content type, IP resolution, and digests. This helps identify live services, exposed endpoints, and potential security issues.' as contents;

  SELECT 'table' AS component,
  TRUE AS sort,
  TRUE AS search;

  SET total_rows = (SELECT COUNT(*) FROM tem_httpx_result WHERE tenant_id = $tenant_id);
SET limit = COALESCE($limit, 50);
SET offset = COALESCE($offset, 0);
SET total_pages = ($total_rows + $limit - 1) / $limit;
SET current_page = ($offset / $limit) + 1; 
  SELECT
      domain             AS "Domain",
      url                AS "URL",
      scheme             AS "Scheme",
      port               AS "Port",
      (
          SELECT group_concat(value, ', ')
          FROM json_each(ip_addresses)
      )                 AS "IP Addresses",
      status_code        AS "Status Code",
      content_type       AS "Content Type",
      response_time      AS "Response Time",
      http_method        AS "HTTP Method",
      resolved_host      AS "Resolved Host",
      ingest_timestamp   AS "Ingested At"
  FROM tem_httpx_result WHERE tenant_id = $tenant_id;
  SELECT 'text' AS component,
    (SELECT CASE WHEN CAST($current_page AS INTEGER) > 1 THEN '[Previous](?limit=' || $limit || '&offset=' || ($offset - $limit) || COALESCE('&tenant_id=' || replace($tenant_id, ' ', '%20'), '') || ')' ELSE '' END)
    || ' '
    || '(Page ' || $current_page || ' of ' || $total_pages || ") "
    || (SELECT CASE WHEN CAST($current_page AS INTEGER) < CAST($total_pages AS INTEGER) THEN '[Next](?limit=' || $limit || '&offset=' || ($offset + $limit) || COALESCE('&tenant_id=' || replace($tenant_id, ' ', '%20'), '') || ')' ELSE '' END)
    AS contents_md
;
        ;